diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..583272a8c --- /dev/null +++ b/.flake8 @@ -0,0 +1,3 @@ +[flake8] +ignore = E501 +exclude = node_modules/* diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..5f48ccff2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +* text eol=lf +*.png binary +*.svg binary +*.mp4 binary +*.ico binary +*.img binary +*.gif binary \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..83c105d4b --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +github: ChinaGodMan +ko_fi: ChinaGodMan +custom: ["http://www.chinacharityfederation.org", "https://www.redcross.org.cn"] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 5e1cd528e..cd26a5cb9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,10 +1,9 @@ --- name: 错误报告md about: 创建一个关于此项目的 Bug 报告 -title: '' +title: "" labels: bug -assignees: '' - +assignees: "" --- ## Bug 描述 @@ -36,10 +35,10 @@ assignees: '' 请提供以下信息: -- 操作系统:Windows 10 / macOS Catalina / Ubuntu 20.04 -- 浏览器:Chrome 91 / Firefox 89 / Safari 14 -- 应用版本:[例如 v1.2.3] -- 其他相关信息: +- 操作系统:Windows 10 / macOS Catalina / Ubuntu 20.04 +- 浏览器:Chrome 91 / Firefox 89 / Safari 14 +- 应用版本:[例如 v1.2.3] +- 其他相关信息: ## 其他信息 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..dd348d504 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,24 @@ +### 变更内容 + +请简要描述本次提交的变更内容(修复了什么问题、增加了什么功能等)。 + +### 相关问题 + +请列出本次 PR 相关的 issue 编号(例如:#123)。 + +### 变更类型 + +- [ ] 修复 Bug +- [ ] 新功能 +- [ ] 代码优化 +- [ ] 文档更新 +- [ ] 其他(请描述) +- [ ] QA + +### 测试情况 + +请描述本次提交的变更是否经过测试,以及测试的方式和结果。 + +### 注意事项 + +是否有需要注意的内容或潜在问题(例如,兼容性、依赖项等)? diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..6ebae6b8e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/pr-badge.yml b/.github/pr-badge.yml new file mode 100644 index 000000000..8f35b2cb8 --- /dev/null +++ b/.github/pr-badge.yml @@ -0,0 +1,28 @@ +- label: "Waiting for" + message: "QA" + color: yellow + when: "$payload.pull_request.body.includes('- [ ] QA')" + +- label: "预览" + message: "PR-$prNumber" + color: "blue" + url: "https://pr-$prNumber.company.com" + +- label: "Passed" + message: "QA" + color: green + when: "$payload.pull_request.body.includes('- [x] QA')" + +- label: "PR Size" + message: "Large" + color: "red" + when: "$additions >= 500" + +- label: "PR Size" + message: "Medium" + color: "yellow" + when: "$additions > 200 && $additions < 500" + +- message: "Work in Progress" + color: "yellow" + when: "$payload.pull_request.title.includes('WIP')" diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml new file mode 100644 index 000000000..150cc3e65 --- /dev/null +++ b/.github/pr-labeler.yml @@ -0,0 +1,88 @@ +# .github/pr-labeler.yml +# The bot always updates the labels, add/remove as necessary [default: false] +alwaysReplace: false +# Treats the text and labels as case sensitive [default: true] +caseSensitive: true +# Array of labels to be applied to the PR [default: []] +customLabels: + # Finds the `text` within the PR title and body and applies the `label` + - text: "#新增" + label: "新功能" + - text: "#feature" + label: "feature" + + - text: "#修复" + label: "修复" + - text: "#fix" + label: "fix" + + - text: "#优化" + label: "优化" + - text: "#improvement" + label: "improvement" + + - text: "#重构" + label: "重构" + - text: "#refactor" + label: "refactor" + + - text: "#文档" + label: "文档" + - text: "#docs" + label: "docs" + + - text: "#测试" + label: "测试" + - text: "#test" + label: "test" + + - text: "#弃用" + label: "弃用" + - text: "#deprecate" + label: "deprecate" + + - text: "#安全" + label: "安全" + - text: "#security" + label: "security" + + - text: "#性能" + label: "性能" + - text: "#performance" + label: "performance" + + - text: "#CI" + label: "CI" + - text: "#ci" + label: "ci" + + - text: "#杂项" + label: "杂项" + - text: "#chore" + label: "chore" + + - text: "#回滚" + label: "回滚" + - text: "#rollback" + label: "rollback" + + - text: "#依赖" + label: "依赖" + - text: "#dependencies" + label: "dependencies" + + - text: "#样式" + label: "样式" + - text: "#style" + label: "style" + - text: "#日志" + label: "日志" + - text: "#log" + label: "log" + +# Search the body of the PR for the `text` [default: true] +searchBody: true +# Search the title of the PR for the `text` [default: true] +searchTitle: true +# Search for whole words only [default: false] +wholeWords: false diff --git a/.github/workflows-bak/1.yml.off b/.github/workflows-bak/1.yml.off deleted file mode 100644 index d78e95afc..000000000 --- a/.github/workflows-bak/1.yml.off +++ /dev/null @@ -1,16 +0,0 @@ -name: Output All Matching Paths - -on: - workflow_dispatch: - -jobs: - output-paths: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Find and output all matching paths - run: | - find ./Script\ details/*/Change\ history/README.md diff --git a/.github/workflows-bak/Updated-replaceText.yml.off b/.github/workflows-bak/Updated-replaceText.yml.off deleted file mode 100644 index 2932fd59d..000000000 --- a/.github/workflows-bak/Updated-replaceText.yml.off +++ /dev/null @@ -1,40 +0,0 @@ -name: Github 替换md文件字符串 - -on: -# schedule: -# - cron: '*/6 * * * *' # 每 6 分钟运行一次 - - workflow_dispatch: # 允许手动触发工作流 - -jobs: - find-and-replace: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - name: 检出代码 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 寻找并替换字符串 - run: | - echo "遍历并替换 .md 文件中的字符串" - find . -name "*.md" -print0 | xargs -0 sed -i 's/qinwuyuan-cn/ChinaGodMan/g' - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 添加更改 - git add . - git commit -m '更新 .md 文件中的字符串' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/actions-clear.yml b/.github/workflows-bak/actions-clear.yml deleted file mode 100644 index df4861801..000000000 --- a/.github/workflows-bak/actions-clear.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Cleanup Actions Runs - -on: - workflow_dispatch: # 允许手动触发 - schedule: # 可以定时触发,比如每周清理一次 - - cron: "0 0 * * 0" # 每周日00:00执行 - -jobs: - cleanup: - runs-on: ubuntu-latest - - steps: - # Checkout 仓库代码 - - name: Checkout repository - uses: actions/checkout@v4 - - # 设置 Python 环境 - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: 3.x - - # 安装依赖 - - name: Install dependencies - run: | - pip install requests - - # 运行清理脚本 - - name: cleanup UserScripts - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 将 GITHUB_TOKEN 传递到脚本环境变量 - REPO_OWNER: ${{ github.repository_owner }} # 仓库所有者 - REPO_NAME: ${{ github.event.repository.name }} # 仓库名称 - run: | - python pythonscr/cleanup_actions.py - - - name: cleanup UserScriptsHistory - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 将 GITHUB_TOKEN 传递到脚本环境变量 - REPO_OWNER: ${{ github.repository_owner }} # 仓库所有者 - REPO_NAME: 'UserScriptsHistory' - run: | - python pythonscr/cleanup_actions.py diff --git a/.github/workflows-bak/auto-close-issue.yml b/.github/workflows-bak/auto-close-issue.yml deleted file mode 100644 index 02fb9969d..000000000 --- a/.github/workflows-bak/auto-close-issue.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: auto-close-and-comment-issue - -on: - push: - paths: - - "Script details/**/*.js" #新的脚本被提交或者被修改了. - workflow_dispatch: # 你可以指定其他分支 - -jobs: - close_issue: - runs-on: ubuntu-latest - - steps: - - name: Check out the code - uses: actions/checkout@v3 - - - name: Extract commit messages - run: | - # 提取最近一次提交的提交信息 - git log -1 --pretty=format:"%s" > commit_message.txt - id: extract_commit - - - name: Find issue references in commit message - id: find_issues - run: | - # 使用正则表达式找到提交信息中的 #issue 号 - issues=$(grep -oE '#[0-9]+' commit_message.txt | sed 's/#//g') - echo "Found issues: $issues" - echo "issues=$issues" >> $GITHUB_ENV - - - name: Close and comment on issues - if: ${{ env.issues != '' }} - run: | - for issue in $issues; do - echo "Closing and commenting on issue #$issue" - # 使用 GitHub CLI 来关闭 Issue 并添加评论 - gh issue comment $issue -b "This issue is being closed by commit: ${{ github.sha }}. Commit message: $(cat commit_message.txt)" - gh issue close $issue - done - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows-bak/auto-close-stale-issues.yml b/.github/workflows-bak/auto-close-stale-issues.yml deleted file mode 100644 index f4f26b4c1..000000000 --- a/.github/workflows-bak/auto-close-stale-issues.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Close Stale Issues - -on: - schedule: - - cron: "0 0 */7 * *" # 每15天午夜运行一次 - workflow_dispatch: # 手动触发 - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v8 # 使用官方的 stale action - with: - repo-token: ${{ secrets.MY_GITHUB_TOKEN }} - stale-issue-message: "🕒 Discussion Activity Reminder 🕒\n\nThis Discussion has been labeled as dormant by an automated system for having no activity in the last 60 days. Please consider one the following actions:\n\n1️⃣ Close as Out of Date: If the topic is no longer relevant, close the Discussion as out of date at the bottom of the page.\n\n2️⃣ Provide More Information: Share additional details or context — or let the community know if you've found a solution on your own.\n\n3️⃣ Mark a Reply as Answer: If your question has been answered by a reply, mark the most helpful reply as the solution.\n\nNote: This dormant notification will only apply to Discussions with the Question label. To learn more, see our recent announcement.\n\nThank you for helping bring this Discussion to a resolution! 💬" - stale-pr-message: "This pull request or issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs." - days-before-stale: 60 # 30天没有活动的 issue 会被标记为陈旧 - days-before-close: 7 # 被标记为陈旧后再经过7天没有活动的 issue 会被自动关闭 - stale-issue-label: "action-stale" # 标记陈旧 issue 的标签 - close-issue-label: "not-completed" - exempt-issue-labels: "keep-open" # 带有这个标签的 issue 不会被标记为陈旧 - diff --git a/.github/workflows-bak/check.yml.off b/.github/workflows-bak/check.yml.off deleted file mode 100644 index 8207a8131..000000000 --- a/.github/workflows-bak/check.yml.off +++ /dev/null @@ -1,44 +0,0 @@ -name: Check for Sensitive Info - -on: [push, pull_request] - -jobs: - check_sensitive_info: - runs-on: ubuntu-latest - env: - GIT_AUTHOR_NAME: ${{ github.event.commits[0].author.name }} - GIT_AUTHOR_EMAIL: ${{ github.event.commits[0].author.email }} - GIT_COMMITTER_NAME: qinwuyuan-sync-bot - GIT_COMMITTER_EMAIL: qinwuyuan-sync-bot@users.noreply.github.com - - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - token: ${{ secrets.MY_GITHUB_TOKEN }} - - - name: Check for email - id: check_email - run: | - git pull - FILES=$(git diff --name-only HEAD^ HEAD) - FOUND=false - for FILE in $FILES; do - if grep -q '123456@gmail.com' "$FILE"; then - echo "Sensitive info found in $FILE!" - FOUND=true - fi - done - if [ "$FOUND" = true ]; then - echo "Sensitive info found, restoring to parent commit." - git reset --hard HEAD^ - # git add . - # git commit -m "Reverted commit due to sensitive information detected" - git push origin HEAD --force - exit 1 - else - echo "No sensitive info found." - fi - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows-bak/format-js.yml.off b/.github/workflows-bak/format-js.yml.off deleted file mode 100644 index a4f206572..000000000 --- a/.github/workflows-bak/format-js.yml.off +++ /dev/null @@ -1,44 +0,0 @@ -name: format-js-branch - -on: - workflow_dispatch: # 允许手动触发工作流 - -jobs: - format-js: - runs-on: ubuntu-latest - - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你的 GitHub Token - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 创建新分支 - run: | - git checkout -b format-js-${{ env.branch }} - echo "新分支: format-js-${{ env.branch }}" - - - name: 安装 Prettier 格式化工具 - run: | - npm install -g prettier - - - name: 格式化所有 JS 文件 - run: | - npx prettier --write "**/*.js" - - - name: 提交和推送更改 - run: | - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - git add . - git commit -m "格式化所有 JavaScript 文件" - git push origin format-js-${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你的 Token 推送更改 diff --git a/.github/workflows-bak/format-userscripts.yml b/.github/workflows-bak/format-userscripts.yml deleted file mode 100644 index 17ecdb7e3..000000000 --- a/.github/workflows-bak/format-userscripts.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: format-userscripts - -on: - # schedule: - # - cron: "0 2 * * 2" # 每周二的 UTC 时间 2 点,即北京时间的早上 10 点 - workflow_dispatch: # 允许手动触发工作流 - - -jobs: - format-js: - runs-on: ubuntu-latest - - steps: - # Step 1: Checkout the repository from bak branch - - name: Checkout repository - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} - - # Step 2: Set up Node.js environment - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: '16' # 可以根据需要调整 - - # Step 3: Run the custom formatting script (1.js) - - name: Run format script - run: node utils/format-monkey-meta.js - - # Step 4: Commit and push changes back to the bak branch (if any) - - name: Commit and push changes - # 在推送时使用 GitHub Token - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git add . - git commit -m "Auto-format UserScripts" || echo "No changes to commit" - - - git push - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows-bak/merge-change-history.yml b/.github/workflows-bak/merge-change-history.yml deleted file mode 100644 index 171c9c59a..000000000 --- a/.github/workflows-bak/merge-change-history.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: merge-change-history - -on: - push: - paths: - - "Script details/**/Change history/README.md" # 增加了新历史说明 - #- 'docs/ScriptsPath.json' # 也在 docs/ScriptsPath.json 文件发生变动时触发 修改了新说明. - workflow_dispatch: # 允许手动触发工作流 - -concurrency: - group: update-qinwuyuan-UserScripts # 将所有运行中的实例放到同一个并发组中 - cancel-in-progress: false # 如果有正在执行的工作流,不取消,而是排队 - -jobs: - run-python: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - fetch-depth: 0 - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: "3.x" - - - name: 安装依赖 - run: | - python -m pip install --upgrade pip - pip install markdown # 安装 markdown 库 - # 如果有其他依赖项,请在这里添加 - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 更新相关脚本 - run: | - python pythonscr/update-about-script/main.py - - - name: 更新小徽章 - run: | - python pythonscr/update-shields/main.py - - - name: 更新帮助 - run: | - python pythonscr/update-help/main.py - - - name: 所有脚本添加到readme - run: | - python pythonscr/update-all-script/main.py - - - name: 更新变更日志 - run: | - python pythonscr/merge-change-history/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - - git pull - - # 添加更改 - git add . - git commit -S -m "集中修改脚本[*.md]文件" \ - -m "合并日志→Script details/**/Change history/README.md → Script details/**/*.md" \ - -m "刷新徽章→pythonscr/update-shields/SHIELDS.md → Script details/**/*.md" \ - -m "刷新帮助→pythonscr/update-help/HELP.md → Script details/**/*.md" \ - -m "作者推荐→docs/ScriptsPath.json[script.relatedscripts] → Script details/**/*.md" \ - -m "作者所有脚本→docs/ScriptsPath.json[script.relatedscripts] → Script details/**/*.md" \ - || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/test-auto.yml.off b/.github/workflows-bak/test-auto.yml.off deleted file mode 100644 index ac8cf3086..000000000 --- a/.github/workflows-bak/test-auto.yml.off +++ /dev/null @@ -1,39 +0,0 @@ -name: Create Random Folder Structure - -on: - # 仅允许手动触发 - workflow_dispatch: - -jobs: - create: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} - - - name: Create random folder and files - run: | - FOLDER_NAME=$(head /dev/urandom | tr -dc a-z0-9 | head -c 8) - mkdir -p "Script details/$FOLDER_NAME" - FILE_NAME=$(head /dev/urandom | tr -dc a-z0-9 | head -c 8) - touch "Script details/$FOLDER_NAME/$FILE_NAME.js" - mkdir -p "Script details/$FOLDER_NAME/Change history" - echo "# Change History" > "Script details/$FOLDER_NAME/Change history/README.md" - - - name: Modify ScriptsPath.json - run: | - RANDOM_STRING=$(head /dev/urandom | tr -dc a-z0-9 | head -c 8) - jq --arg rand "$RANDOM_STRING" '.scripts[0].description += " " + $rand' docs/ScriptsPath.json > tmp.json && mv tmp.json docs/ScriptsPath.json - - - name: Push changes - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add . - git commit -m "Add random folder structure and update description in ScriptsPath.json" - git push - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows-bak/update-Script-version.yml.off b/.github/workflows-bak/update-Script-version.yml.off deleted file mode 100644 index 269600716..000000000 --- a/.github/workflows-bak/update-Script-version.yml.off +++ /dev/null @@ -1,170 +0,0 @@ -name: update-Sc2222ript-version - -on: - schedule: - - cron: '0 2 * * 2' # 每周二的 UTC 时间 2 点,即北京时间的早上 10 点 - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-versions: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - name: 检出代码 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 初始化记录文件 - run: | - echo "[]" > modified_files.json # 初始化记录文件为 JSON 数组 - - - name: 提取当前版本 - id: extract_version - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') # 去除 JSON 中的双引号 - echo "处理文件: \"$file\"" - if [ -f "$file" ]; then - current_version=$(awk '/^\/\/ @version/ {print $NF}' "$file") - echo "文件 $file 的当前版本: $current_version" - - if [ -z "$current_version" ]; then - echo "在脚本文件 $file 中未找到版本号" - exit 1 - fi - - version_number=$(echo "$current_version" | sed 's/\./ /g') - echo "版本号(转换为数字): $version_number" - - version_number=$(echo $version_number | awk '{printf "%d", ($1*1000000 + $2*10000 + $3*100 + $4 + 1)}') - echo "版本号(加1后的数字): $version_number" - - major=$((version_number / 1000000)) - minor=$(( (version_number % 1000000) / 10000 )) - patch=$(( (version_number % 10000) / 100 )) - build=$(( version_number % 100 )) - - new_version="$major.$minor.$patch.$build" - echo "文件 $file 的新版本号: $new_version" - - # 更新文件版本号 - sed -i "s|// @version[ ]\+[0-9]*\([.][0-9]*\)*|// @version $new_version|" "$file" - - # 记录原文件修改信息 - jq --arg file "$file" --arg old_version "$current_version" --arg new_version "$new_version" \ - '. += [{"file": $file, "old_version": $old_version, "new_version": $new_version}]' \ - modified_files.json > modified_files_tmp.json && mv modified_files_tmp.json modified_files.json - - # 读取 backuppath 并复制文件 - backup_path=$(jq -r --arg file "$file" '.scripts[] | select(.path == $file) | .backuppath' docs/ScriptsPath.json) - if [ -n "$backup_path" ]; then - echo "备份路径: $backup_path" - mkdir -p "$backup_path" # 创建备份目录 - cp -f "$file" "$backup_path" # 强制覆盖文件 - echo "文件 $file 备份到 $backup_path" - - # 记录备份文件修改信息(与原文件相同版本) - backup_file="$backup_path/$(basename "$file")" - jq --arg backup_file "$backup_file" --arg old_version "$current_version" --arg new_version "$new_version" \ - '. += [{"file": $backup_file, "old_version": $old_version, "new_version": $new_version}]' \ - modified_files.json > modified_files_tmp.json && mv modified_files_tmp.json modified_files.json - else - echo "未为文件 $file 指定备份路径" - fi - else - echo "未找到脚本文件: $file" - exit 1 - fi - done - - - name: 检查 @version 是否已更新 - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') - echo "检查文件中的版本号: $file" - grep '^// @version' "$file" - done - - - name: 调试环境变量 - run: | - echo "当前环境变量:" - cat $GITHUB_ENV # 打印环境变量以进行调试 - - - - name: 记录操作日志 - run: | - # 获取更新的文件数量 - updated_files_count=$(jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | wc -l) - echo "Updated files count: $updated_files_count" - - # 获取当前日期和时间,精确到秒,24小时制 - current_date=$(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S') - echo "当前日期和时间: $current_date" - - # 如果文件不存在,则创建并初始化为空数组 - if [ ! -f docs/log/updatedUserScripts.json ]; then - echo "[]" > docs/log/updatedUserScripts.json - fi - - # 更新 JSON 文件,先添加新记录 - jq --arg date "$current_date" --argjson count "$updated_files_count" \ - '. += [{"date": $date, "updated_files_count": $count}]' \ - docs/log/updatedUserScripts.json > docs/log/updatedUserScripts.json.tmp - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - - # 计算现有成员数量,排除 member_count 字段 - member_count=$(jq '[.[] | select(has("member_count") | not)] | length' docs/log/updatedUserScripts.json.tmp) - echo "当前成员数量: $member_count" - - # 更新 JSON 文件,修改或添加 member_count 字段 - jq --argjson member_count "$member_count" \ - 'if .[0] | has("member_count") then - .[0].member_count = $member_count - else - [{"member_count": $member_count}] + . - end' \ - docs/log/updatedUserScripts.json.tmp > docs/log/updatedUserScripts.json - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - rm docs/log/updatedUserScripts.json.tmp - # 输出最终结果用于调试 - echo "更新后的 docs/log/updatedUserScripts.json 内容:" - cat docs/log/updatedUserScripts.json - - - - name: 提交和推送更改 - run: | - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 逐个添加文件到 Git - jq -c '.[] | select(.file and .old_version and .new_version)' modified_files.json | while IFS= read -r record; do - file=$(echo "$record" | jq -r '.file') - old_version=$(echo "$record" | jq -r '.old_version') - new_version=$(echo "$record" | jq -r '.new_version') - - echo "添加文件到 Git: $file" - git add "$file" - git commit -m "$old_version → $new_version" || echo "没有需要提交的更改" - done - git add "docs/log/updatedUserScripts.json" - git commit -m "p" - git push origin ${{ env.branch }} # 推送到当前分支 - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 - diff --git a/.github/workflows-bak/update-chinagodman-commit.yml b/.github/workflows-bak/update-chinagodman-commit.yml deleted file mode 100644 index fe54bbb35..000000000 --- a/.github/workflows-bak/update-chinagodman-commit.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: 人民的勤务员更新脚本 - -on: - push: - paths: - - "Script details/**/*.js" #新的脚本被提交或者被修改了. - workflow_dispatch: # 允许手动触发工作流 - -concurrency: - group: u1pdate-qinwuyuan-UserScripts # 将所有运行中的实例放到同一个并发组中 - cancel-in-progress: false # 如果有正在执行的工作流,不取消,而是排队 - -jobs: - update-chinagodman-commit: - runs-on: ubuntu-latest - env: - GIT_AUTHOR_NAME: ${{ github.event.commits[0].author.name }} - GIT_AUTHOR_EMAIL: ${{ github.event.commits[0].author.email }} - GIT_COMMITTER_NAME: qinwuyuan-sync-bot - GIT_COMMITTER_EMAIL: "${{ secrets.GPG_PRIVATE_EMAIL }}" - - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - fetch-depth: 0 - token: ${{ secrets.MY_GITHUB_TOKEN }} - - - name: 获取提交者用户名 - id: get_git_username - run: | - git_username=$(git log -1 --pretty=format:'%cn') # 获取最后一次提交的用户名 - echo "git_username=$git_username" >> $GITHUB_ENV # 将用户名存入环境变量 - echo "最新的提交者用户名是: $git_username" - - - name: 检查提交者是否为 github-actions[bot] - if: ${{ env.git_username != 'github-actions[bot]' }} # 只有当提交者不是 github-actions[bot] 时才执行 自己提交时触发此任务.用于更新触发更新仓库列表流程 - run: echo "提交者不是 github-actions[bot],继续执行工作流。" - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: '16' - - - name: 设置 Python 环境 - if: ${{ env.git_username != 'github-actions[bot]' }} # 只有当提交者不是 github-actions[bot] 时才执行 - uses: actions/setup-python@v2 - with: - python-version: "3.x" - - - name: 获取当前分支 - if: ${{ env.git_username != 'github-actions[bot]' }} # 只有当提交者不是 github-actions[bot] 时才执行 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - if: ${{ env.git_username != 'github-actions[bot]' }} # 只有当提交者不是 github-actions[bot] 时才执行 - run: | - git pull origin ${{ env.branch }} - - - name: Escape backticks in commit msg - env: - COMMIT_MSG: ${{ github.event.head_commit.message }} - run: | - echo "ESCAPED_MSG<> $GITHUB_ENV - echo "$COMMIT_MSG" | sed 's/`/\`/g' >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - - name: 根目录脚本__更新py - if: ${{ env.git_username != 'qinwuyuan-sync-bot' }} # 只有当提交者不是 github-actions[bot] 时才执行 - run: | - # 复制 `Script details` 目录中的所有 .js 文件到根目录,强制覆盖 - python pythonscr/copy_js_files.py - - - name: 提交和推送更改 - if: ${{ env.git_username != 'qinwuyuan-sync-bot' }} # 只有当提交者不是 github-actions[bot] 时才执行 - run: | - - - - # 添加更改 - git pull - - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - - - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" # 配置 GPG 密钥 - git add . - git commit -S -m "$ESCAPED_MSG" || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows-bak/update-contributors.yml b/.github/workflows-bak/update-contributors.yml deleted file mode 100644 index 7dcc264d4..000000000 --- a/.github/workflows-bak/update-contributors.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: update-contributors-list - -on: - push: - branches: - - main - pull_request: - branches: - - main - workflow_dispatch: - -jobs: - update-contributors: - runs-on: ubuntu-latest - steps: - # 1. 检出代码 - - name: Checkout repository - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} - - # 2. 生成贡献者头像列表 - - name: Generate Contributors Images - uses: jaywcjlove/github-action-contributors@v1.3.5 - id: contributors - with: - filter-author: (action-assistant\[bot\]|renovate\[bot\]|renovate-bot|@github-actions-bot|dependabot\[bot\]|ImgBotApp|imgbot\[bot\]) - avatarSize: 42 - - # 3. 修改 docs/README.md 文件 - - name: Modify docs/README.md - run: | - escapedHtmlList=$(echo -e '${{steps.contributors.outputs.htmlList}}' | sed ':a;N;$!ba;s/\n/\\n/g;s/\\n$//') - openDelimiter='' - closeDelimiter='' - sed -i "/$openDelimiter/,/$closeDelimiter/c\\$openDelimiter$escapedHtmlList$closeDelimiter" docs/README.md - git diff --quiet --exit-code docs/README.md || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV - - # 4. 如果文件有改动,设置签名并提交 - - name: Commit changes with GPG signature - if: env.CHANGES_DETECTED == 'true' - run: | - # 导入GPG密钥 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - - # 配置git用户名、邮箱和签名 - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - git pull - - # 确保所有提交都使用GPG签名 - git config --global commit.gpgSign true - - # 添加文件并提交 - git add docs/README.md - git commit -S -m "update contributors→[docs/README.md]" - - # 推送更改 - git push - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows-bak/update-docs-readme-list.yml b/.github/workflows-bak/update-docs-readme-list.yml deleted file mode 100644 index bd8da4db8..000000000 --- a/.github/workflows-bak/update-docs-readme-list.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: update-docs-readme-list - -on: - workflow_run: - workflows: - - "update-scripts-version" #触发了自动更新. - - "merge-change-history" #触发了合并历史记录,可能json文件被改变, - types: - - completed - workflow_dispatch: # 允许手动触发工作流 - - -concurrency: - group: update-qinwuyuan-UserScripts-2 # 将所有运行中的实例放到同一个并发组中 - cancel-in-progress: false # 如果有正在执行的工作流,不取消,而是排队 - -jobs: - update-script-list: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - name: Install dependencies - run: | - pip install requests - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 就这样了,拉一下,防止同时运行多个流程 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 读取 Load.txt 中的脚本名称 - id: read-script - run: | - script_path="pythonscr/update-script-list/update-script-list.py" - echo "script_path=${script_path}" >> $GITHUB_ENV - - - name: 执行README.md更新.刷新greasyfork数据 - run: | - python pythonscr/update-script-list/upadate-greasyfork.py - python ${{ env.script_path }} - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - - git pull - # 添加更改 - git add . - git commit -S -m '更新readme脚本列表[docs/ScriptsPath.json→/docs/README.md]' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 - - diff --git a/.github/workflows-bak/update-help.yml.off b/.github/workflows-bak/update-help.yml.off deleted file mode 100644 index 37c41ff6d..000000000 --- a/.github/workflows-bak/update-help.yml.off +++ /dev/null @@ -1,53 +0,0 @@ -name: update-help - -on: -# schedule: -# - cron: '0 0 * * *' # 每天午夜运行一次,也可以调整为其他频率 - - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-help: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - - - name: 运行更新 - run: | - python pythonscr/update-help/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 添加更改 - git add . - git commit -m '刷新帮助→pythonscr/update-help/HELP.md → Script details/**/*.md' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/update-scripts-version.yml b/.github/workflows-bak/update-scripts-version.yml deleted file mode 100644 index 46c03d04b..000000000 --- a/.github/workflows-bak/update-scripts-version.yml +++ /dev/null @@ -1,159 +0,0 @@ -name: update-scripts-version - -on: - # schedule: - # - cron: "0 2 * * 2" # 每周二的 UTC 时间 2 点,即北京时间的早上 10 点 - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-versions: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - name: 检出代码 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 调试 JSON 文件 - run: | - echo "当前脚本路径列表:" - cat docs/ScriptsPath.json # 打印 JSON 文件内容以进行调试 - - - name: 提取当前版本 - id: extract_version - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') # 去除 JSON 中的双引号 - echo "处理文件: \"$file\"" - if [ -f "$file" ]; then - current_version=$(awk '/^\/\/ @version/ {print $NF}' "$file") - echo "文件 $file 的当前版本: $current_version" - - if [ -z "$current_version" ]; then - echo "在脚本文件 $file 中未找到版本号" - exit 1 - fi - - version_number=$(echo "$current_version" | sed 's/\./ /g') - echo "版本号(转换为数字): $version_number" - - version_number=$(echo $version_number | awk '{printf "%d", ($1*1000000 + $2*10000 + $3*100 + $4 + 1)}') - echo "版本号(加1后的数字): $version_number" - - major=$((version_number / 1000000)) - minor=$(( (version_number % 1000000) / 10000 )) - patch=$(( (version_number % 10000) / 100 )) - build=$(( version_number % 100 )) - - new_version="$major.$minor.$patch.$build" - echo "文件 $file 的新版本号: $new_version" - - sed -i "s|// @version[ ]\+[0-9]*\([.][0-9]*\)*|// @version $new_version|" "$file" - - echo "${file}_NEW_VERSION=$new_version" >> $GITHUB_ENV - - # 读取 backuppath 并复制文件 - backup_path=$(jq -r --arg file "$file" '.scripts[] | select(.path == $file) | .backuppath' docs/ScriptsPath.json) - if [ -n "$backup_path" ]; then - echo "备份路径: $backup_path" - mkdir -p "$backup_path" # 创建备份目录 - cp -f "$file" "$backup_path" # 强制覆盖文件 - echo "文件 $file 备份到 $backup_path" - else - echo "未为文件 $file 指定备份路径" - fi - else - echo "未找到脚本文件: $file" - exit 1 - fi - done - - - name: 检查 @version 是否已更新 - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') - echo "检查文件中的版本号: $file" - grep '^// @version' "$file" - done - - - name: 调试环境变量 - run: | - echo "当前环境变量:" - cat $GITHUB_ENV # 打印环境变量以进行调试 - - - name: 调试更改 - run: | - echo "Git 状态:" - git status - echo "更改的差异:" - git diff # 打印更改的差异以进行调试 - - - name: 记录操作日志 - run: | - # 获取更新的文件数量 - updated_files_count=$(jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | wc -l) - echo "Updated files count: $updated_files_count" - - # 获取当前日期和时间,精确到秒,24小时制 - current_date=$(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S') - echo "当前日期和时间: $current_date" - - # 如果文件不存在,则创建并初始化为空数组 - if [ ! -f docs/log/updatedUserScripts.json ]; then - echo "[]" > docs/log/updatedUserScripts.json - fi - - # 更新 JSON 文件,先添加新记录 - jq --arg date "$current_date" --argjson count "$updated_files_count" \ - '. += [{"date": $date, "updated_files_count": $count}]' \ - docs/log/updatedUserScripts.json > docs/log/updatedUserScripts.json.tmp - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - - # 计算现有成员数量,排除 member_count 字段 - member_count=$(jq '[.[] | select(has("member_count") | not)] | length' docs/log/updatedUserScripts.json.tmp) - echo "当前成员数量: $member_count" - - # 更新 JSON 文件,修改或添加 member_count 字段 - jq --argjson member_count "$member_count" \ - 'if .[0] | has("member_count") then - .[0].member_count = $member_count - else - [{"member_count": $member_count}] + . - end' \ - docs/log/updatedUserScripts.json.tmp > docs/log/updatedUserScripts.json - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - rm docs/log/updatedUserScripts.json.tmp - # 输出最终结果用于调试 - echo "更新后的 docs/log/updatedUserScripts.json 内容:" - cat docs/log/updatedUserScripts.json - - - name: 提交和推送更改 - run: | - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - git add . - current_date=$(TZ='Asia/Shanghai' date '+%Y/%m/%d %H:%M:%S') - commit_message="人民的勤务员Github:ChinaGodMan(UTC+8) $current_date Fix BUG" - echo "提交信息: $commit_message" - git commit -m "FIX" || echo "没有需要提交的更改" - - git push origin ${{ env.branch }} # 推送到当前分支 - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/update-shields.yml.off b/.github/workflows-bak/update-shields.yml.off deleted file mode 100644 index 2668cde68..000000000 --- a/.github/workflows-bak/update-shields.yml.off +++ /dev/null @@ -1,53 +0,0 @@ -name: update-shields - -on: -# schedule: -# - cron: '0 0 * * *' # 每天午夜运行一次,也可以调整为其他频率 - - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-shields: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - - - name: 运行更新 - run: | - python pythonscr/update-shields/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 添加更改 - git add . - git commit -m '刷新徽章→pythonscr/update-shields/SHIELDS.md → Script details/**/*.md' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/update-translate-repo-md.yml b/.github/workflows-bak/update-translate-repo-md.yml deleted file mode 100644 index 0dcc1204d..000000000 --- a/.github/workflows-bak/update-translate-repo-md.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: translate-repo-md - -on: - workflow_run: - workflows: ["update-docs-readme-list"] # 更新了仓库自述文件,触发翻译 - types: - - completed # 在 A 流程完成后触发 - workflow_dispatch: # 添加手动触发 - -jobs: - translate-readme: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - fetch-depth: 0 - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: "3.x" - - - name: 安装依赖 - run: | - python -m pip install --upgrade pip - pip install googletrans==4.0.0-rc1 # 安装 Google Translate API 的 Python 包 - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 读取并翻译 README - run: | - python pythonscr/translate-force-chinese-to-lang/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - - git pull - - # 添加更改 - git add . - git commit -S -m "仓库[README.md]更新" \ - -m "GoogleTranslate→[docs/README.md]↓" \ - -m "[docs/README_xx.md {vi,ko,en,jp,zh-TW}]" \ - || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/update-translate-script-md.yml b/.github/workflows-bak/update-translate-script-md.yml deleted file mode 100644 index 795cb6fc8..000000000 --- a/.github/workflows-bak/update-translate-script-md.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: translate-script-readme -##最后触发更新整个所有脚本的其他语言文档. -on: - workflow_run: - workflows: ["merge-change-history"] # 指定 A 流程的名称 - types: - - completed # 在 A 流程完成后触发 - workflow_dispatch: - -jobs: - translate-script-readme: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - fetch-depth: 0 - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: "3.x" - - - name: 安装依赖 - run: | - python -m pip install --upgrade pip - pip install googletrans==4.0.0-rc1 # 安装 Google Translate API 的 Python 包 - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 读取并翻译 README - run: | - python pythonscr/translate-chinese-to-filelang/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - - git pull - - # 添加更改 - git add . - git commit -S -m "脚本[README{_xx}.md]翻译" \ - -m "GoogleTranslate→[Script details/**/README{_xx}.md]↓" \ - -m "[Script details/**/README{_xx}.md]" \ - || echo "没有更改" - git push origin ${{ env.branch }} - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows-bak/uphis.yml.off b/.github/workflows-bak/uphis.yml.off deleted file mode 100644 index f84e66fec..000000000 --- a/.github/workflows-bak/uphis.yml.off +++ /dev/null @@ -1,53 +0,0 @@ -name: update-hissssss - -on: -# schedule: -# - cron: '0 0 * * *' # 每天午夜运行一次,也可以调整为其他频率 - - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-help: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - - - name: Delete statshistory.png - run: | - find "Script details" -type f -path "*/preview/statshistory.png" -delete - - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 添加更改 - git add . - git commit -m '删除历史图片statshistory.png' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows/actions-clear.yml b/.github/workflows/actions-clear.yml index d4b6f41cd..1234e2831 100644 --- a/.github/workflows/actions-clear.yml +++ b/.github/workflows/actions-clear.yml @@ -1,34 +1,36 @@ name: Cleanup Actions Runs on: - workflow_dispatch: - schedule: - - cron: "0 0 * * 0" # 每周日00:00执行 + workflow_dispatch: + schedule: + - cron: "0 0 * * 0" # 每周日00:00执行 jobs: - cleanup: - runs-on: ubuntu-latest + cleanup: + runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + sparse-checkout: "utils/cleanup_actions.py" - - name: Install dependencies - run: | - pip install requests + - name: Install dependencies + run: | + pip install requests - - name: cleanup UserScripts - env: - GITHUB_TOKEN: ${{ secrets.DELETE_ACTIONS_RUNS }} - REPO_OWNER: ${{ github.repository_owner }} - REPO_NAME: ${{ github.event.repository.name }} - run: | - python pythonscr/cleanup_actions.py + - name: cleanup UserScripts + env: + GITHUB_TOKEN: ${{ secrets.DELETE_ACTIONS_RUNS }} + REPO_OWNER: ${{ github.repository_owner }} + REPO_NAME: ${{ github.event.repository.name }} + run: | + python utils/cleanup_actions.py - - name: cleanup UserScriptsHistory - env: - GITHUB_TOKEN: ${{ secrets.DELETE_ACTIONS_RUNS }} - REPO_OWNER: ${{ github.repository_owner }} - REPO_NAME: "UserScriptsHistory" - run: | - python pythonscr/cleanup_actions.py + - name: cleanup UserScriptsHistory + env: + GITHUB_TOKEN: ${{ secrets.DELETE_ACTIONS_RUNS }} + REPO_OWNER: ${{ github.repository_owner }} + REPO_NAME: "UserScriptsHistory" + run: | + python utils/cleanup_actions.py diff --git a/.github/workflows/add-reviewed-by.yml b/.github/workflows/add-reviewed-by.yml new file mode 100644 index 000000000..b4426b955 --- /dev/null +++ b/.github/workflows/add-reviewed-by.yml @@ -0,0 +1,18 @@ +name: add-reviewed-by +on: + pull_request_review: + branches: + - main + types: + - submitted + +jobs: + approved: + if: github.event.review.state == 'approved' + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - uses: ChinaGodMan/add-reviewed-by-action@main + with: + github-token: ${{ secrets.BOT_TOKEN }} diff --git a/.github/workflows/assign-issue-to-creator.yml b/.github/workflows/assign-issue-to-creator.yml new file mode 100644 index 000000000..d6bc54b91 --- /dev/null +++ b/.github/workflows/assign-issue-to-creator.yml @@ -0,0 +1,22 @@ +name: assign-issue-to-creator + +on: + issues: + types: [opened] + +jobs: + assign-issue: + runs-on: ubuntu-latest + steps: + - name: 自动分配人民的勤务员 + uses: actions/github-script@v7 + with: + #github-token: ${{ secrets.BOT_TOKEN }} + script: | + const issueOwner = context.repo.owner; + github.rest.issues.addAssignees({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + assignees: [issueOwner] + }); diff --git a/.github/workflows/assign-pr-to-creator.yml b/.github/workflows/assign-pr-to-creator.yml new file mode 100644 index 000000000..d209cc0c4 --- /dev/null +++ b/.github/workflows/assign-pr-to-creator.yml @@ -0,0 +1,53 @@ +name: assign-pr-to-creator + +on: + pull_request_target: + types: [opened] + +permissions: + pull-requests: write + contents: read + issues: read + checks: read + actions: read + +jobs: + assign-pr: + runs-on: ubuntu-latest + steps: + - name: 自动分配审查和受理至人民的勤务员 + uses: actions/github-script@v7 + with: + #github-token: ${{ secrets.BO_TOKEN }} + script: | + const prOwner = context.repo.owner; + const pullRequest = context.payload.pull_request; + const pull_number = pullRequest.number; + const prAuthor = pullRequest.user.login; + + // 添加受理人 + await github.rest.issues.addAssignees({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pull_number, + assignees: [prOwner] + }); + + // 请求审阅 + if (prOwner !== prAuthor) { + await github.rest.pulls.requestReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: pull_number, + reviewers: [prOwner] + }); + } else { + console.log(`跳过请求审阅,因为 PR 的作者是 ${prAuthor},也是仓库拥有者,无需审查!`); + } + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pull_number, + body: `@${prAuthor} 你好,人民的勤务员将尽快审查合并此次请求!🚀 [自动回复,请勿跟帖] ` + }); diff --git a/.github/workflows/auto-close-issue.yml b/.github/workflows/auto-close-issue.yml deleted file mode 100644 index e7defc481..000000000 --- a/.github/workflows/auto-close-issue.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: auto-close-and-comment-issue - -on: - push: - paths: - - "Script details/**/*.js" #新的脚本被提交或者被修改了. - workflow_dispatch: # 你可以指定其他分支 - -jobs: - close_issue: - runs-on: ubuntu-latest - - steps: - - name: Check out the code - uses: actions/checkout@v3 - - - name: Extract commit messages - run: | - # 提取最近一次提交的提交信息 - git log -1 --pretty=format:"%s" > commit_message.txt - id: extract_commit - - - name: Find issue references in commit message - id: find_issues - run: | - # 使用正则表达式找到提交信息中的 #issue 号 - issues=$(grep -oE '#[0-9]+' commit_message.txt | sed 's/#//g') - echo "Found issues: $issues" - echo "issues=$issues" >> $GITHUB_ENV - - - name: Close and comment on issues - if: ${{ env.issues != '' }} - run: | - for issue in $issues; do - echo "Closing and commenting on issue #$issue" - # 使用 GitHub CLI 来关闭 Issue 并添加评论 - gh issue comment $issue -b "This issue is being closed by commit: ${{ github.sha }}. Commit message: $(cat commit_message.txt)" - gh issue close $issue - done - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/auto-close-stale-issues.yml b/.github/workflows/auto-close-stale-issues.yml index 7dcdf2bca..4a755da5a 100644 --- a/.github/workflows/auto-close-stale-issues.yml +++ b/.github/workflows/auto-close-stale-issues.yml @@ -1,22 +1,21 @@ name: Close Stale Issues on: - schedule: - - cron: "0 0 */7 * *" # 每15天午夜运行一次 - workflow_dispatch: # 手动触发 + schedule: + - cron: "0 0 */7 * *" # 每15天午夜运行一次 + workflow_dispatch: # 手动触发 jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v8 # 使用官方的 stale action - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: "🕒 Discussion Activity Reminder 🕒\n\nThis Discussion has been labeled as dormant by an automated system for having no activity in the last 60 days. Please consider one the following actions:\n\n1️⃣ Close as Out of Date: If the topic is no longer relevant, close the Discussion as out of date at the bottom of the page.\n\n2️⃣ Provide More Information: Share additional details or context — or let the community know if you've found a solution on your own.\n\n3️⃣ Mark a Reply as Answer: If your question has been answered by a reply, mark the most helpful reply as the solution.\n\nNote: This dormant notification will only apply to Discussions with the Question label. To learn more, see our recent announcement.\n\nThank you for helping bring this Discussion to a resolution! 💬" - stale-pr-message: "This pull request or issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs." - days-before-stale: 60 # 30天没有活动的 issue 会被标记为陈旧 - days-before-close: 7 # 被标记为陈旧后再经过7天没有活动的 issue 会被自动关闭 - stale-issue-label: "action-stale" # 标记陈旧 issue 的标签 - close-issue-label: "not-completed" - exempt-issue-labels: "keep-open" # 带有这个标签的 issue 不会被标记为陈旧 - + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 # 使用官方的 stale action + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: "🕒 Discussion Activity Reminder 🕒\n\nThis Discussion has been labeled as dormant by an automated system for having no activity in the last 60 days. Please consider one the following actions:\n\n1️⃣ Close as Out of Date: If the topic is no longer relevant, close the Discussion as out of date at the bottom of the page.\n\n2️⃣ Provide More Information: Share additional details or context — or let the community know if you've found a solution on your own.\n\n3️⃣ Mark a Reply as Answer: If your question has been answered by a reply, mark the most helpful reply as the solution.\n\nNote: This dormant notification will only apply to Discussions with the Question label. To learn more, see our recent announcement.\n\nThank you for helping bring this Discussion to a resolution! 💬" + stale-pr-message: "This pull request or issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs." + days-before-stale: 60 # 30天没有活动的 issue 会被标记为陈旧 + days-before-close: 7 # 被标记为陈旧后再经过7天没有活动的 issue 会被自动关闭 + stale-issue-label: "action-stale" # 标记陈旧 issue 的标签 + close-issue-label: "not-completed" + exempt-issue-labels: "keep-open" # 带有这个标签的 issue 不会被标记为陈旧 diff --git a/.github/workflows/check.yml.off b/.github/workflows/check.yml.off deleted file mode 100644 index 8207a8131..000000000 --- a/.github/workflows/check.yml.off +++ /dev/null @@ -1,44 +0,0 @@ -name: Check for Sensitive Info - -on: [push, pull_request] - -jobs: - check_sensitive_info: - runs-on: ubuntu-latest - env: - GIT_AUTHOR_NAME: ${{ github.event.commits[0].author.name }} - GIT_AUTHOR_EMAIL: ${{ github.event.commits[0].author.email }} - GIT_COMMITTER_NAME: qinwuyuan-sync-bot - GIT_COMMITTER_EMAIL: qinwuyuan-sync-bot@users.noreply.github.com - - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - token: ${{ secrets.MY_GITHUB_TOKEN }} - - - name: Check for email - id: check_email - run: | - git pull - FILES=$(git diff --name-only HEAD^ HEAD) - FOUND=false - for FILE in $FILES; do - if grep -q '123456@gmail.com' "$FILE"; then - echo "Sensitive info found in $FILE!" - FOUND=true - fi - done - if [ "$FOUND" = true ]; then - echo "Sensitive info found, restoring to parent commit." - git reset --hard HEAD^ - # git add . - # git commit -m "Reverted commit due to sensitive information detected" - git push origin HEAD --force - exit 1 - else - echo "No sensitive info found." - fi - env: - GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows/chinagodman-commit.yml b/.github/workflows/chinagodman-commit.yml new file mode 100644 index 000000000..5b7ecd744 --- /dev/null +++ b/.github/workflows/chinagodman-commit.yml @@ -0,0 +1,48 @@ +name: 人民的勤务员更新脚本 + +on: + push: + paths: + - "**/*.js" #新的脚本被提交或者被修改了. + workflow_dispatch: + +concurrency: + group: u1pdate-qinwuyuan-UserScripts # 将所有运行中的实例放到同一个并发组中 + cancel-in-progress: false # 如果有正在执行的工作流,不取消,而是排队 + +jobs: + update-chinagodman-commit: + if: ${{ github.event.commits[0].committer.username != 'qinwuyuan-sync-bot' }} + runs-on: ubuntu-latest + env: + GIT_AUTHOR_NAME: ${{ github.event.commits[0].author.name }} + GIT_AUTHOR_EMAIL: ${{ github.event.commits[0].author.email }} + GIT_COMMITTER_NAME: qinwuyuan-sync-bot + GIT_COMMITTER_EMAIL: "${{ secrets.GPG_PRIVATE_EMAIL }}" + + steps: + - name: 检出代码 + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Escape backticks in commit msg + env: + COMMIT_MSG: ${{ github.event.head_commit.message }} + run: | + echo "ESCAPED_MSG<> $GITHUB_ENV + echo "$COMMIT_MSG" | sed 's/`/\`/g' >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + - name: 根目录脚本__更新py + run: | + python utils/copy_js_files.py + + - name: 提交和推送更改 + run: | + gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") + git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" + git pull + git add . + git commit -n -S -m "$ESCAPED_MSG" || echo "没有需要提交的更改" + git push diff --git a/.github/workflows/eslint-on-push-pr.yml b/.github/workflows/eslint-on-push-pr.yml new file mode 100644 index 000000000..f515f292e --- /dev/null +++ b/.github/workflows/eslint-on-push-pr.yml @@ -0,0 +1,21 @@ +name: Lint pushes/PRs + +on: [push, pull_request] + +jobs: + eslint: + runs-on: ubuntu-latest + steps: + - name: Checkout repository code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + + - name: Install dependencies + run: npm ci # instead of install to ensure consistency and determinism in CI/CD workflow + + - name: Run ESLint + run: npm run lint diff --git a/.github/workflows/format-userscripts.yml b/.github/workflows/format-userscripts.yml deleted file mode 100644 index 3aaf54a0e..000000000 --- a/.github/workflows/format-userscripts.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: format-userscripts - -on: - # schedule: - # - cron: "0 2 * * 2" # 每周二的 UTC 时间 2 点,即北京时间的早上 10 点 - workflow_dispatch: # 允许手动触发工作流 - -jobs: - format-js: - runs-on: ubuntu-latest - - steps: - # Step 1: Checkout the repository from bak branch - - name: Checkout repository - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} - - # Step 2: Set up Node.js environment - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: "16" # 可以根据需要调整 - - # Step 3: Run the custom formatting script (1.js) - - name: Run format script - run: node utils/format-monkey-meta.js - - # Step 4: Commit and push changes back to the bak branch (if any) - - name: - Commit and push changes - # 在推送时使用 GitHub Token - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git add . - git commit -m "Auto-format UserScripts" || echo "No changes to commit" - - - git push - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} diff --git a/.github/workflows/merge-change-history.yml b/.github/workflows/merge-change-history.yml index 2dc56727a..633d9a56c 100644 --- a/.github/workflows/merge-change-history.yml +++ b/.github/workflows/merge-change-history.yml @@ -1,64 +1,73 @@ name: merge-change-history on: - push: - paths: - - "Script details/**/Change history/README.md" # 增加了新历史说明 - #- 'docs/ScriptsPath.json' # 也在 docs/ScriptsPath.json 文件发生变动时触发 修改了新说明. - workflow_dispatch: + push: + paths: + - "**/Change history/README.md" # 增加了新历史说明 + #- 'docs/ScriptsPath.json' # 也在 docs/ScriptsPath.json 文件发生变动时触发 修改了新说明. + workflow_dispatch: concurrency: - group: update-qinwuyuan-UserScripts # 将所有运行中的实例放到同一个并发组中 - cancel-in-progress: false + group: update-qinwuyuan-UserScripts + cancel-in-progress: false jobs: - run-python: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v4 - with: - fetch-depth: 0 + run-python: + runs-on: ubuntu-latest + steps: + - name: 检出代码 + uses: actions/checkout@v4 - - name: 安装依赖 - run: | - pip install markdown + - name: 安装依赖 + run: | + pip install markdown + pip install beautifulsoup4 - - name: 更新相关脚本 - run: | - python pythonscr/update-about-script/main.py + - name: 检查新脚本 + run: | + python utils/script-import-sync.py + env: + GFU: ${{ secrets.GFU }} + GFP: ${{ secrets.GFP }} - - name: 更新小徽章 - run: | - python pythonscr/update-shields/main.py + - name: 相关脚本 + run: | + python utils/update_related_scripts.py - - name: 更新帮助 - run: | - python pythonscr/update-help/main.py + - name: 导航栏 + run: | + python utils/navigation.py - - name: 所有脚本添加到readme - run: | - python pythonscr/update-all-script/main.py + - name: 徽章信息 + run: | + python utils/update_shields.py - - name: 更新变更日志 - run: | - python pythonscr/merge-change-history/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 + - name: 帮助信息 + run: | + python utils/update_help.py - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - git pull - git add . - git commit -S -m "集中修改脚本[*.md]文件" \ - -m "合并日志→Script details/**/Change history/README.md → Script details/**/*.md" \ - -m "刷新徽章→pythonscr/update-shields/SHIELDS.md → Script details/**/*.md" \ - -m "刷新帮助→pythonscr/update-help/HELP.md → Script details/**/*.md" \ - -m "作者推荐→docs/ScriptsPath.json[script.relatedscripts] → Script details/**/*.md" \ - -m "作者所有脚本→docs/ScriptsPath.json[script.relatedscripts] → Script details/**/*.md" \ - || echo "没有需要提交的更改" - git push + - name: 所有脚本 + run: | + python utils/update_related_all_scripts.py + + - name: 变更日志 + run: | + python utils/merge_change_history.py + + - name: 提交和推送更改 + run: | + gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") + git config --global user.name 'qinwuyuan-sync-bot' + git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" + git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" + git pull + git add . + git commit -n -S -m "docs: 更新[\`脚本自述\`]" \ + -m "合并日志:Change history/README.md → **/*.md" \ + -m "刷新徽章:SHIELDS.md → **/*.md" \ + -m "刷新帮助:HELP.md → **/*.md" \ + -m "相关脚本:ScriptsPath.json[script.relatedscripts] → **/*.md" \ + -m "所有脚本:ScriptsPath.json[script.relatedscripts] → **/*.md" \ + -m "语言导航:**/*.md → xx|xx" \ + || echo "没有需要提交的更改" + git push diff --git a/.github/workflows/translate-repo-md.yml b/.github/workflows/translate-repo-md.yml new file mode 100644 index 000000000..cc7f86ae6 --- /dev/null +++ b/.github/workflows/translate-repo-md.yml @@ -0,0 +1,33 @@ +name: translate-repo-md + +on: + workflow_run: + workflows: ["update-docs-readme-list"] # 更新了仓库自述文件,触发翻译 + types: + - completed + workflow_dispatch: + +jobs: + translate-readme: + if: ${{ github.event_name == 'workflow_dispatch' || (github.event.workflow_run.head_branch == 'main' && github.event.workflow_run.conclusion == 'success') }} + runs-on: ubuntu-latest + steps: + - name: 检出代码 + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: 读取并翻译 README + run: | + python utils/translate_force_chinese_to_lang.py + + - name: 提交和推送更改 + run: | + gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") + git config --global user.name 'qinwuyuan-sync-bot' + git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" + git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" + git pull + git add . + git commit -n -S -m "docs: 谷歌翻译[\`README.md\`]→[\`{vi,ko,en,jp,zh-TW}/README.md\`]" || echo "没有需要提交的更改" + git push diff --git a/.github/workflows/translate-scripts-md.yml b/.github/workflows/translate-scripts-md.yml new file mode 100644 index 000000000..e87f63b23 --- /dev/null +++ b/.github/workflows/translate-scripts-md.yml @@ -0,0 +1,33 @@ +name: translate-script-readme +##最后触发更新整个所有脚本的其他语言文档. +on: + workflow_run: + workflows: ["merge-change-history"] + types: + - completed + workflow_dispatch: + +jobs: + translate-script-readme: + if: ${{ github.event_name == 'workflow_dispatch' || (github.event.workflow_run.head_branch == 'main' && github.event.workflow_run.conclusion == 'success') }} + runs-on: ubuntu-latest + steps: + - name: 检出代码 + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: 读取并翻译 README + run: | + python utils/translate_chinese_to_filelang.py + + - name: 提交和推送更改 + run: | + gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") + git config --global user.name 'qinwuyuan-sync-bot' + git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" + git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" + git pull + git add . + git commit -n -S -m "docs: 谷歌翻译[\`README{_xx}.md\`]" || echo "没有需要提交的更改" + git push diff --git a/.github/workflows/update-Script-version.yml.off b/.github/workflows/update-Script-version.yml.off deleted file mode 100644 index 269600716..000000000 --- a/.github/workflows/update-Script-version.yml.off +++ /dev/null @@ -1,170 +0,0 @@ -name: update-Sc2222ript-version - -on: - schedule: - - cron: '0 2 * * 2' # 每周二的 UTC 时间 2 点,即北京时间的早上 10 点 - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-versions: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - name: 检出代码 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - name: 初始化记录文件 - run: | - echo "[]" > modified_files.json # 初始化记录文件为 JSON 数组 - - - name: 提取当前版本 - id: extract_version - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') # 去除 JSON 中的双引号 - echo "处理文件: \"$file\"" - if [ -f "$file" ]; then - current_version=$(awk '/^\/\/ @version/ {print $NF}' "$file") - echo "文件 $file 的当前版本: $current_version" - - if [ -z "$current_version" ]; then - echo "在脚本文件 $file 中未找到版本号" - exit 1 - fi - - version_number=$(echo "$current_version" | sed 's/\./ /g') - echo "版本号(转换为数字): $version_number" - - version_number=$(echo $version_number | awk '{printf "%d", ($1*1000000 + $2*10000 + $3*100 + $4 + 1)}') - echo "版本号(加1后的数字): $version_number" - - major=$((version_number / 1000000)) - minor=$(( (version_number % 1000000) / 10000 )) - patch=$(( (version_number % 10000) / 100 )) - build=$(( version_number % 100 )) - - new_version="$major.$minor.$patch.$build" - echo "文件 $file 的新版本号: $new_version" - - # 更新文件版本号 - sed -i "s|// @version[ ]\+[0-9]*\([.][0-9]*\)*|// @version $new_version|" "$file" - - # 记录原文件修改信息 - jq --arg file "$file" --arg old_version "$current_version" --arg new_version "$new_version" \ - '. += [{"file": $file, "old_version": $old_version, "new_version": $new_version}]' \ - modified_files.json > modified_files_tmp.json && mv modified_files_tmp.json modified_files.json - - # 读取 backuppath 并复制文件 - backup_path=$(jq -r --arg file "$file" '.scripts[] | select(.path == $file) | .backuppath' docs/ScriptsPath.json) - if [ -n "$backup_path" ]; then - echo "备份路径: $backup_path" - mkdir -p "$backup_path" # 创建备份目录 - cp -f "$file" "$backup_path" # 强制覆盖文件 - echo "文件 $file 备份到 $backup_path" - - # 记录备份文件修改信息(与原文件相同版本) - backup_file="$backup_path/$(basename "$file")" - jq --arg backup_file "$backup_file" --arg old_version "$current_version" --arg new_version "$new_version" \ - '. += [{"file": $backup_file, "old_version": $old_version, "new_version": $new_version}]' \ - modified_files.json > modified_files_tmp.json && mv modified_files_tmp.json modified_files.json - else - echo "未为文件 $file 指定备份路径" - fi - else - echo "未找到脚本文件: $file" - exit 1 - fi - done - - - name: 检查 @version 是否已更新 - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') - echo "检查文件中的版本号: $file" - grep '^// @version' "$file" - done - - - name: 调试环境变量 - run: | - echo "当前环境变量:" - cat $GITHUB_ENV # 打印环境变量以进行调试 - - - - name: 记录操作日志 - run: | - # 获取更新的文件数量 - updated_files_count=$(jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | wc -l) - echo "Updated files count: $updated_files_count" - - # 获取当前日期和时间,精确到秒,24小时制 - current_date=$(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S') - echo "当前日期和时间: $current_date" - - # 如果文件不存在,则创建并初始化为空数组 - if [ ! -f docs/log/updatedUserScripts.json ]; then - echo "[]" > docs/log/updatedUserScripts.json - fi - - # 更新 JSON 文件,先添加新记录 - jq --arg date "$current_date" --argjson count "$updated_files_count" \ - '. += [{"date": $date, "updated_files_count": $count}]' \ - docs/log/updatedUserScripts.json > docs/log/updatedUserScripts.json.tmp - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - - # 计算现有成员数量,排除 member_count 字段 - member_count=$(jq '[.[] | select(has("member_count") | not)] | length' docs/log/updatedUserScripts.json.tmp) - echo "当前成员数量: $member_count" - - # 更新 JSON 文件,修改或添加 member_count 字段 - jq --argjson member_count "$member_count" \ - 'if .[0] | has("member_count") then - .[0].member_count = $member_count - else - [{"member_count": $member_count}] + . - end' \ - docs/log/updatedUserScripts.json.tmp > docs/log/updatedUserScripts.json - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - rm docs/log/updatedUserScripts.json.tmp - # 输出最终结果用于调试 - echo "更新后的 docs/log/updatedUserScripts.json 内容:" - cat docs/log/updatedUserScripts.json - - - - name: 提交和推送更改 - run: | - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 逐个添加文件到 Git - jq -c '.[] | select(.file and .old_version and .new_version)' modified_files.json | while IFS= read -r record; do - file=$(echo "$record" | jq -r '.file') - old_version=$(echo "$record" | jq -r '.old_version') - new_version=$(echo "$record" | jq -r '.new_version') - - echo "添加文件到 Git: $file" - git add "$file" - git commit -m "$old_version → $new_version" || echo "没有需要提交的更改" - done - git add "docs/log/updatedUserScripts.json" - git commit -m "p" - git push origin ${{ env.branch }} # 推送到当前分支 - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 - diff --git a/.github/workflows/update-chinagodman-commit.yml b/.github/workflows/update-chinagodman-commit.yml deleted file mode 100644 index 3ca9ef0bf..000000000 --- a/.github/workflows/update-chinagodman-commit.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: 人民的勤务员更新脚本 - -on: - push: - paths: - - "Script details/**/*.js" #新的脚本被提交或者被修改了. - workflow_dispatch: - -concurrency: - group: u1pdate-qinwuyuan-UserScripts # 将所有运行中的实例放到同一个并发组中 - cancel-in-progress: false # 如果有正在执行的工作流,不取消,而是排队 - -jobs: - update-chinagodman-commit: - runs-on: ubuntu-latest - env: - GIT_AUTHOR_NAME: ${{ github.event.commits[0].author.name }} - GIT_AUTHOR_EMAIL: toniaiwanowskiskr47@gmail.com - GIT_COMMITTER_NAME: qinwuyuan-sync-bot - GIT_COMMITTER_EMAIL: "${{ secrets.GPG_PRIVATE_EMAIL }}" - - steps: - - name: 检出代码 - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: 获取提交者用户名 - id: get_git_username - run: | - git_username=$(git log -1 --pretty=format:'%cn') - echo "git_username=$git_username" >> $GITHUB_ENV - echo "最新的提交者用户名是: $git_username" - - - name: Escape backticks in commit msg - env: - COMMIT_MSG: ${{ github.event.head_commit.message }} - run: | - echo "ESCAPED_MSG<> $GITHUB_ENV - echo "$COMMIT_MSG" | sed 's/`/\`/g' >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - - name: 根目录脚本__更新py - if: ${{ env.git_username != 'qinwuyuan-sync-bot' }} - run: | - python pythonscr/copy_js_files.py - - - name: 提交和推送更改 - if: ${{ env.git_username != 'qinwuyuan-sync-bot' }} - run: | - # 添加更改 - git pull - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" # 配置 GPG 密钥 - git add . - git commit -S -m "$ESCAPED_MSG" || echo "没有需要提交的更改" - git push diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index 98207a373..3e490d4da 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -1,48 +1,39 @@ name: update-contributors-list on: - pull_request: - branches: - - main - workflow_dispatch: + workflow_dispatch: jobs: - update-contributors: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 + update-contributors: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 - - name: Generate Contributors Images - uses: jaywcjlove/github-action-contributors@main - id: contributors - with: - filter-author: (action-assistant\[bot\]|renovate\[bot\]|renovate-bot|@github-actions-bot|dependabot\[bot\]|ImgBotApp|imgbot\[bot\]) - avatarSize: 42 + - name: Generate Contributors Images + uses: jaywcjlove/github-action-contributors@main + id: contributors + with: + filter-author: (action-assistant\[bot\]|renovate\[bot\]|renovate-bot|@github-actions-bot|dependabot\[bot\]|ImgBotApp|imgbot\[bot\]) + avatarSize: 42 - - name: Modify docs/README.md - run: | - escapedHtmlList=$(echo -e '${{steps.contributors.outputs.htmlList}}' | sed ':a;N;$!ba;s/\n/\\n/g;s/\\n$//') - openDelimiter='' - closeDelimiter='' - sed -i "/$openDelimiter/,/$closeDelimiter/c\\$openDelimiter$escapedHtmlList$closeDelimiter" docs/README.md - git diff --quiet --exit-code docs/README.md || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV + - name: Modify docs/README.md + run: | + escapedHtmlList=$(echo -e '${{steps.contributors.outputs.htmlList}}' | sed ':a;N;$!ba;s/\n/\\n/g;s/\\n$//') + openDelimiter='' + closeDelimiter='' + sed -i "/$openDelimiter/,/$closeDelimiter/c\\$openDelimiter$escapedHtmlList$closeDelimiter" docs/README.md + git diff --quiet --exit-code docs/README.md || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV - - name: Commit changes with GPG signature - if: env.CHANGES_DETECTED == 'true' - run: | - # 导入GPG密钥 - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - - # 配置git用户名、邮箱和签名 - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - git pull - # 确保所有提交都使用GPG签名 - git config --global commit.gpgSign true - # 添加文件并提交 - git add docs/README.md - git commit -S -m "update contributors→[docs/README.md]" - # 推送更改 - git push + - name: Commit changes with GPG signature + if: env.CHANGES_DETECTED == 'true' + run: | + git pull + gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") + git config --global user.name 'qinwuyuan-sync-bot' + git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" + git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" + git config --global commit.gpgSign true + git add docs/README.md + git commit -n -S -m "更新[\`README.md\`]内贡献者列表" || echo "没有需要提交的更改" + git push diff --git a/.github/workflows/update-docs-readme-list.yml b/.github/workflows/update-docs-readme-list.yml index 2f02d820f..56025bda9 100644 --- a/.github/workflows/update-docs-readme-list.yml +++ b/.github/workflows/update-docs-readme-list.yml @@ -1,41 +1,42 @@ name: update-docs-readme-list on: - workflow_run: - workflows: - - "update-scripts-version" #触发了自动更新. - - "merge-change-history" #触发了合并历史记录,可能json文件被改变, - types: - - completed - workflow_dispatch: + workflow_run: + workflows: + - "update-scripts-version" #触发了自动更新. + - "merge-change-history" #触发了合并历史记录,可能json文件被改变, + types: + - completed + workflow_dispatch: concurrency: - group: update-qinwuyuan-UserScripts-2 - cancel-in-progress: false + group: update-qinwuyuan-UserScripts-2 + cancel-in-progress: false jobs: - update-script-list: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v4 + update-script-list: + if: ${{ github.event_name == 'workflow_dispatch' || (github.event.workflow_run.head_branch == 'main' && github.event.workflow_run.conclusion == 'success') }} + runs-on: ubuntu-latest + steps: + - name: 检出代码 + uses: actions/checkout@v4 - - name: Install dependencies - run: | - pip install requests + - name: Install dependencies + run: | + pip install requests - - name: 执行README.md更新.刷新greasyfork数据 - run: | - python pythonscr/update-script-list/upadate-greasyfork.py - python pythonscr/update-script-list/update-script-list.py + - name: 执行README.md更新.刷新greasyfork数据 + run: | + python utils/upadate_greasyfork.py + python utils/update_scripts_list.py - - name: 提交和推送更改 - run: | - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - git pull - git add . - git commit -S -m '更新readme脚本列表[docs/ScriptsPath.json→/docs/README.md]' || echo "没有需要提交的更改" - git push + - name: 提交和推送更改 + run: | + gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") + git config --global user.name 'qinwuyuan-sync-bot' + git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" + git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" + git pull + git add . + git commit -n -S -m 'docs: 更新脚本表格[`ScriptsPath.json`]→[`README.md`]' || echo "没有需要提交的更改" + git push diff --git a/.github/workflows/update-help.yml.off b/.github/workflows/update-help.yml.off deleted file mode 100644 index 37c41ff6d..000000000 --- a/.github/workflows/update-help.yml.off +++ /dev/null @@ -1,53 +0,0 @@ -name: update-help - -on: -# schedule: -# - cron: '0 0 * * *' # 每天午夜运行一次,也可以调整为其他频率 - - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-help: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - - - name: 运行更新 - run: | - python pythonscr/update-help/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 添加更改 - git add . - git commit -m '刷新帮助→pythonscr/update-help/HELP.md → Script details/**/*.md' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows/update-scripts-version.yml b/.github/workflows/update-scripts-version.yml deleted file mode 100644 index ddbd12e3c..000000000 --- a/.github/workflows/update-scripts-version.yml +++ /dev/null @@ -1,144 +0,0 @@ -name: update-scripts-version - -on: - # schedule: - # - cron: "0 2 * * 2" # 每周二的 UTC 时间 2 点,即北京时间的早上 10 点 - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-versions: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - name: 检出代码 - - - name: 调试 JSON 文件 - run: | - echo "当前脚本路径列表:" - cat docs/ScriptsPath.json # 打印 JSON 文件内容以进行调试 - - - name: 提取当前版本 - id: extract_version - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') # 去除 JSON 中的双引号 - echo "处理文件: \"$file\"" - if [ -f "$file" ]; then - current_version=$(awk '/^\/\/ @version/ {print $NF}' "$file") - echo "文件 $file 的当前版本: $current_version" - - if [ -z "$current_version" ]; then - echo "在脚本文件 $file 中未找到版本号" - exit 1 - fi - - version_number=$(echo "$current_version" | sed 's/\./ /g') - echo "版本号(转换为数字): $version_number" - - version_number=$(echo $version_number | awk '{printf "%d", ($1*1000000 + $2*10000 + $3*100 + $4 + 1)}') - echo "版本号(加1后的数字): $version_number" - - major=$((version_number / 1000000)) - minor=$(( (version_number % 1000000) / 10000 )) - patch=$(( (version_number % 10000) / 100 )) - build=$(( version_number % 100 )) - - new_version="$major.$minor.$patch.$build" - echo "文件 $file 的新版本号: $new_version" - - sed -i "s|// @version[ ]\+[0-9]*\([.][0-9]*\)*|// @version $new_version|" "$file" - - echo "${file}_NEW_VERSION=$new_version" >> $GITHUB_ENV - - # 读取 backuppath 并复制文件 - backup_path=$(jq -r --arg file "$file" '.scripts[] | select(.path == $file) | .backuppath' docs/ScriptsPath.json) - if [ -n "$backup_path" ]; then - echo "备份路径: $backup_path" - mkdir -p "$backup_path" # 创建备份目录 - cp -f "$file" "$backup_path" # 强制覆盖文件 - echo "文件 $file 备份到 $backup_path" - else - echo "未为文件 $file 指定备份路径" - fi - else - echo "未找到脚本文件: $file" - exit 1 - fi - done - - - name: 检查 @version 是否已更新 - run: | - jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | while IFS= read -r file; do - file=$(echo "$file" | tr -d '"') - echo "检查文件中的版本号: $file" - grep '^// @version' "$file" - done - - - name: 调试环境变量 - run: | - echo "当前环境变量:" - cat $GITHUB_ENV # 打印环境变量以进行调试 - - - name: 调试更改 - run: | - echo "Git 状态:" - git status - echo "更改的差异:" - git diff # 打印更改的差异以进行调试 - - - name: 记录操作日志 - run: | - # 获取更新的文件数量 - updated_files_count=$(jq -c '.scripts[] | select(.isUpdated == true) | .path' docs/ScriptsPath.json | wc -l) - echo "Updated files count: $updated_files_count" - - # 获取当前日期和时间,精确到秒,24小时制 - current_date=$(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S') - echo "当前日期和时间: $current_date" - - # 如果文件不存在,则创建并初始化为空数组 - if [ ! -f docs/log/updatedUserScripts.json ]; then - echo "[]" > docs/log/updatedUserScripts.json - fi - - # 更新 JSON 文件,先添加新记录 - jq --arg date "$current_date" --argjson count "$updated_files_count" \ - '. += [{"date": $date, "updated_files_count": $count}]' \ - docs/log/updatedUserScripts.json > docs/log/updatedUserScripts.json.tmp - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - - # 计算现有成员数量,排除 member_count 字段 - member_count=$(jq '[.[] | select(has("member_count") | not)] | length' docs/log/updatedUserScripts.json.tmp) - echo "当前成员数量: $member_count" - - # 更新 JSON 文件,修改或添加 member_count 字段 - jq --argjson member_count "$member_count" \ - 'if .[0] | has("member_count") then - .[0].member_count = $member_count - else - [{"member_count": $member_count}] + . - end' \ - docs/log/updatedUserScripts.json.tmp > docs/log/updatedUserScripts.json - if [ $? -ne 0 ]; then - echo "jq 命令失败" - exit 1 - fi - rm docs/log/updatedUserScripts.json.tmp - # 输出最终结果用于调试 - echo "更新后的 docs/log/updatedUserScripts.json 内容:" - cat docs/log/updatedUserScripts.json - - - name: 提交和推送更改 - run: | - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - git add . - current_date=$(TZ='Asia/Shanghai' date '+%Y/%m/%d %H:%M:%S') - commit_message="人民的勤务员Github:ChinaGodMan(UTC+8) $current_date Fix BUG" - echo "提交信息: $commit_message" - git commit -m "FIX" || echo "没有需要提交的更改" - git push diff --git a/.github/workflows/update-shields.yml.off b/.github/workflows/update-shields.yml.off deleted file mode 100644 index 2668cde68..000000000 --- a/.github/workflows/update-shields.yml.off +++ /dev/null @@ -1,53 +0,0 @@ -name: update-shields - -on: -# schedule: -# - cron: '0 0 * * *' # 每天午夜运行一次,也可以调整为其他频率 - - workflow_dispatch: # 允许手动触发工作流 - -jobs: - update-shields: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v3 - with: - token: ${{ secrets.MY_GITHUB_TOKEN }} # 使用你创建的 Token - - - name: 设置 Python 环境 - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - - - name: 获取当前分支 - id: get_branch - run: | - echo "当前分支: $(git rev-parse --abbrev-ref HEAD)" - echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - - - name: 拉取最新更改 - run: | - git pull origin ${{ env.branch }} # 拉取最新的远程更改 - - - - - name: 运行更新 - run: | - python pythonscr/update-shields/main.py - continue-on-error: true # 让这个步骤即使出错也不会终止整个工作流 - - - name: 提交和推送更改 - run: | - # 配置 Git 用户 - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - # 添加更改 - git add . - git commit -m '刷新徽章→pythonscr/update-shields/SHIELDS.md → Script details/**/*.md' || echo "没有需要提交的更改" - git push origin ${{ env.branch }} - env: - MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} # 传递 Token 到 Git 环境变量中 diff --git a/.github/workflows/update-translate-repo-md.yml b/.github/workflows/update-translate-repo-md.yml deleted file mode 100644 index 236867f57..000000000 --- a/.github/workflows/update-translate-repo-md.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: translate-repo-md - -on: - workflow_run: - workflows: ["update-docs-readme-list"] # 更新了仓库自述文件,触发翻译 - types: - - completed # 在 A 流程完成后触发 - workflow_dispatch: - -jobs: - translate-readme: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: 读取并翻译 README - run: | - python pythonscr/translate-force-chinese-to-lang/main.py - - - name: 提交和推送更改 - run: | - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - git pull - git add . - git commit -S -m "仓库[README.md]更新" \ - -m "GoogleTranslate→[docs/README.md]↓" \ - -m "[docs/README_xx.md {vi,ko,en,jp,zh-TW}]" \ - || echo "没有需要提交的更改" - git push diff --git a/.github/workflows/update-translate-script-md.yml b/.github/workflows/update-translate-script-md.yml deleted file mode 100644 index acf4283b7..000000000 --- a/.github/workflows/update-translate-script-md.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: translate-script-readme -##最后触发更新整个所有脚本的其他语言文档. -on: - workflow_run: - workflows: ["merge-change-history"] - types: - - completed - workflow_dispatch: - -jobs: - translate-script-readme: - runs-on: ubuntu-latest - steps: - - name: 检出代码 - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: 读取并翻译 README - run: | - python pythonscr/translate-chinese-to-filelang/main.py - - - name: 提交和推送更改 - run: | - gpg --batch --import <(echo "${{ secrets.GPG_PRIVATE_KEY }}") - git config --global user.name 'qinwuyuan-sync-bot' - git config --global user.email "${{ secrets.GPG_PRIVATE_EMAIL }}" - git config --global user.signingkey "${{ secrets.GPG_PRIVATE_ID }}" - git pull - git add . - git commit -S -m "脚本[README{_xx}.md]翻译" \ - -m "GoogleTranslate→[Script details/**/README{_xx}.md]↓" \ - -m "[Script details/**/README{_xx}.md]" \ - || echo "没有更改" - git push diff --git a/.gitignore b/.gitignore index c6c1fa311..55c36c3b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,8 @@ - - -script_bak -.vscode +qwy_* launch.json -folder_tree.html -pwshscr -1.user.js -CHANGE.TXT -CHANGE.HTML -GitHub commit -1.txt -read.md \ No newline at end of file +*.txt +node_modules/ +.eslintcache +.messages +.codewait +__pycache__/ \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 000000000..79ce79571 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,15 @@ +#!/bin/bash + +RED="\033[1;31m" ; NC="\033[0m" + +if npm ls -g eslint &> /dev/null || npm ls eslint &> /dev/null ; then + npm run lint +else + PROJECT_ROOT=$( + cd "$(dirname "$0")/.." && # 导航到根目录 + [ "$OSTYPE" == "msys" ] && pwd -W || pwd # 获取绝对路径 + ) + echo -e "\n${RED}警告:未安装 eslint${NC}" + echo -e " 要添加缺少的依赖,请在" + echo -e " $PROJECT_ROOT 目录下运行 'npm install'\n" +fi diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..1b19cda82 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +*.js +*.mjs \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 14225fab9..aa02c5ba4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,26 @@ { - "tabWidth": 4, - "useTabs": false + "tabWidth": 4, + "useTabs": false, + "overrides": [ + { + "files": "*.json", + "options": { + "tabWidth": 2, + "useTabs": false + } + }, + { + "files": "*.yml", + "options": { + "tabWidth": 2, + "useTabs": false + } + }, + { + "files": "*.js", + "options": { + "singleQuote": true + } + } + ] } diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..bf6a94595 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.wordWrap": "off" + }, + "[javascript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[python]": { + "editor.wordWrap": "off" + } +} diff --git a/.yamllint-config.yaml b/.yamllint-config.yaml new file mode 100644 index 000000000..98e40a7bf --- /dev/null +++ b/.yamllint-config.yaml @@ -0,0 +1,8 @@ +extends: default + +rules: + comments: disable # allow any number of spaces before comments + document-start: disable # allow omission of '---' at document start + line-length: disable # allow any new line character + new-lines: disable # allow any length lines + truthy: disable # allow any value for keys yamllint often falsely detects as truthy diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..203b6dd99 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,65 @@ +
+
+ + + + +  简体中文 | + English +
+
+ +# 贡献指南 + +感谢您对本项目的兴趣!为了帮助您顺利贡献代码或文档,我们制定了以下贡献指南。请在提交代码或问题前,仔细阅读以下内容。 + +## 如何贡献 + +### 1. 提交 Issue + +如果您发现了 Bug、需要新功能或有改进建议,请通过 [Issues](https://github.com/ChinaGodMan/UserScripts/issues) 提交。请尽量提供详细信息,包括: + +- 问题描述 +- 重现步骤 +- 预期结果和实际结果 +- 系统和环境信息 + +### 2. 分支和 Pull Request 工作流程 + +#### 步骤: + +1. **Fork 仓库**:点击页面右上角的 "Fork" 按钮,将本仓库复制到您的 GitHub 账号中。 + +2. **创建分支**:在您的 Fork 仓库中创建一个新分支,分支命名应清晰简洁,例如 `fix-bug-123` 或 `feature-new-function`。 + +3. **编写代码**:在该分支上开发、修复 Bug 或添加功能。请确保您的代码风格与项目保持一致。 + +4. **测试代码**:确保您编写的代码已经通过了所有相关测试。如果可能,请为新功能添加测试。 + +5. **提交代码**:将您的修改提交到该分支,并推送到您的 Fork 仓库。 + +6. **发起 Pull Request**:在您的 Fork 仓库中,点击 "New Pull Request" 按钮,选择提交的分支并创建一个 Pull Request。请在描述中详细说明您的修改内容。 + +#### Pull Request 注意事项: + +- 请确保代码清晰易读,尽量避免大规模提交多个修改。 +- 每个 Pull Request 应专注于解决一个问题或添加一个功能。 +- 在描述中明确解决的问题编号(如果适用)。 +- 我们会审查您的 Pull Request 并提出反馈,请耐心等待。 + +### 3. 代码风格指南 + +为保持代码的一致性,请遵循以下代码风格规范: + +- 确保代码易读、简洁。 +- 命名应有意义,使用小写字母和下划线分隔(例如 `my_function`)。 +- 每个函数/方法的长度应尽量简短,遵循单一职责原则。 +- 遵守项目中的格式化工具(如 `Prettier`、`ESLint` 或其他工具)的规则。 + +### 4. 贡献文档 + +如果您发现文档中的错误或不清楚的地方,您可以直接修改并提交 Pull Request。文档的贡献与代码贡献流程类似。 + +## 感谢您的贡献 + +无论是提出问题、修复 Bug 还是贡献代码和文档,您的帮助都让这个项目变得更好!我们期待您的贡献! diff --git a/LICENSE.md b/LICENSE.md index 2e433bb0e..9931a6895 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -5,7 +5,7 @@  简体中文 | - English + English diff --git a/Script details/chatgpt-code-styling/README.md b/Script details/chatgpt-code-styling/README.md deleted file mode 100644 index 7b0a45a90..000000000 --- a/Script details/chatgpt-code-styling/README.md +++ /dev/null @@ -1,151 +0,0 @@ - -
- UserScripts -
GitHub查看勤务员的脚本Github:@ChinaGodMan
GreasyFork查看勤务员的脚本
当前页面查看勤务员的脚本
-GreasyFork -Total Installs -Total Daily Installs -Scripts Count
-Good Ratings -Ok Ratings -Bad Ratings -CodeQuality -Stars -Forks -Issue -
Telegram -TikTok -Instagram -Gmail -
-
- - - - - -
-

ChatGPT代码字体缩小

-

「 让 ChatGPT 代码字体变小 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - -让 ChatGPT 输出的代码框字体变小 - - - - -> ### 🔍你可能在找ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
回到顶部↑
- - - diff --git a/Script details/chatgpt-copy-code-button/README.md b/Script details/chatgpt-copy-code-button/README.md deleted file mode 100644 index da6d83c68..000000000 --- a/Script details/chatgpt-copy-code-button/README.md +++ /dev/null @@ -1,211 +0,0 @@ - -
- UserScripts -
GitHub查看勤务员的脚本Github:@ChinaGodMan
GreasyFork查看勤务员的脚本
当前页面查看勤务员的脚本
-GreasyFork -Total Installs -Total Daily Installs -Scripts Count
-Good Ratings -Ok Ratings -Bad Ratings -CodeQuality -Stars -Forks -Issue -
Telegram -TikTok -Instagram -Gmail -
-
- - - - - - -
-

ChatGPT 聊天复制代码按钮

-

「 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ ChatGPT 聊天复制代码按钮 更新日志

-

📅 2024-09-23 08:58:07- Ver 1.2.0.0

-

修复: • 新发送内容也会错误添加按钮,改为添加时判断元素是否存在以下子元素querySelector('div.flex.items-center.text-token-text-secondary') -修复: •导出代码检测代码类型出错的问题var languageDiv = elem.parentElement.parentElement.querySelector('div.flex.items-center.text-token-text-secondary')var languageDiv = elem.querySelector('div.flex.items-center.text-token-text-secondary')

-
-

📅 2024-09-22 10:44:07- Ver 1.1.0.0

-

新增: •增加一个导出代码的按钮,新增的代码来自脚本 →ChatGPT Code Export Button

-
-

📅 2024-09-22 07:06:07- Ver 1.0.0.0

-

新增: •兼容新版的 ChatGPT 官网

-
- -
- - - -# ChatGPT Chat Copy Code Button 用户脚本 - -## 介绍 - -该用户脚本为 [chatgpt.com](https://chatgpt.com) 和 [share.nezhagpt.cloud](https://share.nezhagpt.cloud) 页面上的代码块添加一个“复制代码”按钮。按钮位于代码块的右下角,带有动画效果,用户可以轻松点击按钮将代码复制到剪贴板。 - -## 功能 - -- 在代码块的右下角添加一个“复制代码”按钮 -- 点击按钮后,代码将被复制到剪贴板 -- 按钮点击后有反馈动画,按钮会显示“Copied!”提示 -- 鼠标悬停时按钮颜色发生变化 - -## 使用场景 - -- 开发人员可以方便地复制代码片段 -- 学习者在查看代码时更加便捷 -- 自动观察并为新加载的代码块添加复制按钮 - -## 安装步骤 - -1. 安装支持用户脚本的浏览器扩展,例如 [Tampermonkey](https://www.tampermonkey.net/) 或 [Violentmonkey](https://violentmonkey.github.io/)。 -2. 点击上方绿色按钮安装。 - -## 兼容性 - -- 支持 Chrome、Firefox、Edge、Opera 和 Safari 等主流浏览器 - -## 项目地址 - -- [GitHub 项目地址](https://github.com/ChinaGodMan/UserScripts) -- YodaBets - -## 反馈地址 - -- 如有问题或建议,请通过以下链接进行反馈:[GitHub 反馈地址](https://github.com/ChinaGodMan/UserScripts/issues) - -## 贡献者 - -- [**YodaBets**](https://greasyfork.org/zh-CN/users/1052550) [OpenAI Chat Copy Code Button](https://greasyfork.org/zh-CN/scripts/463493) 修改了此脚本 -- [**Muffin Productions**](https://greasyfork.org/zh-CN/users/1327919) [ChatGPT Code Export Button](https://greasyfork.org/zh-CN/scripts/499627) 引用此脚本内的导出代码. -- [**人民的勤务员**](https://greasyfork.org/zh-CN/users/1169082) - -## 授权 - -- 本脚本遵循 MIT 许可证开源 - -![Snipaste_2024-09-22_07-32-11.png](https://s2.loli.net/2024/09/22/VexqWUEA6GYPQjN.png) - - - - -> ### 🔍你可能在找ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - - - - - - -## 使用帮助 - -推荐浏览器和脚本管理器: - -- **Greasemonkey + Waterfox** -- **Tampermonkey/Violentmonkey + Firefox** -- **Tampermonkey/Violentmonkey + Chrome** -- **Userscripts + ios Safari** -- **Violentmonkey/KiWiBrowser + Android** - -**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
回到顶部↑
- - - diff --git a/Script details/chatgpt-copy-code-button/README_en.md b/Script details/chatgpt-copy-code-button/README_en.md deleted file mode 100644 index 1f7467254..000000000 --- a/Script details/chatgpt-copy-code-button/README_en.md +++ /dev/null @@ -1,211 +0,0 @@ - -
- UserScripts -
GitHubView the script for the orderlyGithub:@ChinaGodMan
GreasyForkView the script for the orderly
View the script of the orderly on the current page
-GreasyFork -Total Installs -Total Daily Installs -Scripts Count
-Good Ratings -Ok Ratings -Bad Ratings -CodeQuality -Stars -Forks -Issue -
Telegram -TikTok -Instagram -Gmail -
-
- - - - - - -
-

ChatGPT Chat copy code button

-

「 exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ ChatGPT Chat copy code button Change log

-

📅 2024-09-23 08:58:07- Ver 1.2.0.0

-

repair: • Newly sent content also incorrectly adds a button,Change to determine whether the element has the following sub-elements when addingquerySelector('div.flex.items-center.text-token-text-secondary') -repair: •Problem with export code detection code type errorvar languageDiv = elem.parentElement.parentElement.querySelector('div.flex.items-center.text-token-text-secondary')var languageDiv = elem.querySelector('div.flex.items-center.text-token-text-secondary')

-
-

📅 2024-09-22 10:44:07- Ver 1.1.0.0

-

New: •Add a button to export code,The added code comes from the script →ChatGPT Code Export Button

-
-

📅 2024-09-22 07:06:07- Ver 1.0.0.0

-

New: •Compatible with new version ChatGPT Official website

-
- -
- - - -# ChatGPT Chat Copy Code Button user script - -## introduce - -The user script is [chatgpt.com](https://chatgpt.com) and [share.nezhagpt.cloud](https://share.nezhagpt.cloud) code block on the page add a“Copy code”button。The button is located in the lower right corner of the code block,With animation effects,Users can easily copy the code to the clipboard with the click of a button。 - -## Function - -- In the lower right corner of the code block add a“Copy code”button -- After clicking the button,The code will be copied to the clipboard -- There is a feedback animation after clicking the button,button will show“Copied!”hint -- Button color changes on mouseover - -## Usage scenarios - -- Developers can easily copy code snippets -- It is more convenient for learners to view code -- Automatically observe and add copy button for newly loaded code blocks - -## Installation steps - -1. Install a browser extension that supports userscripts,For example [Tampermonkey](https://www.tampermonkey.net/) or [Violentmonkey](https://violentmonkey.github.io/)。 -2. Click the green button above to install。 - -## compatibility - -- support Chrome、Firefox、Edge、Opera and Safari Wait for mainstream browsers - -## Project address - -- [GitHub Project address](https://github.com/ChinaGodMan/UserScripts) -- YodaBets [OpenAI Chat Copy Code Button](https://greasyfork.org/zh-CN/scripts/463493)Script posted by the original author - -## Feedback address - -- If you have any questions or suggestions,Please provide feedback via the link below:[GitHub Feedback address](https://github.com/ChinaGodMan/UserScripts/issues) - -## Contributors - -- [**YodaBets**](https://greasyfork.org/zh-CN/users/1052550) [OpenAI Chat Copy Code Button](https://greasyfork.org/zh-CN/scripts/463493) modified this script -- [**Muffin Productions**](https://greasyfork.org/zh-CN/users/1327919) [ChatGPT Code Export Button](https://greasyfork.org/zh-CN/scripts/499627) referenced the export code in this script -- [**人民的勤务员**](https://greasyfork.org/zh-CN/users/1169082) - -## Authorize - -- This script follows MIT License open source - -![Snipaste_2024-09-22_07-32-11.png](https://s2.loli.net/2024/09/22/VexqWUEA6GYPQjN.png) - - - - -> ### 🔍you may be looking forChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - - - - - - -## Help - -Recommended browsers and script managers: - -- **Greasemonkey + Waterfox** -- **Tampermonkey/Violentmonkey + Firefox** -- **Tampermonkey/Violentmonkey + Chrome** -- **Userscripts + ios Safari** -- **Violentmonkey/KiWiBrowser + Android** - -**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
back to top↑
- - - diff --git a/Script details/chatgpt-copy-code-button/chatgpt-copy-code-button.user.js b/Script details/chatgpt-copy-code-button/chatgpt-copy-code-button.user.js deleted file mode 100644 index 6ed3fc313..000000000 --- a/Script details/chatgpt-copy-code-button/chatgpt-copy-code-button.user.js +++ /dev/null @@ -1,392 +0,0 @@ -// ==UserScript== -// @name ChatGPT Chat copy code and export code buttons -// @description exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 -// @name:zh ChatGPT 聊天复制代码和导出代码按钮 -// @description:zh 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 -// @name:zh-CN ChatGPT 聊天复制代码和导出代码按钮 -// @description:zh-CN 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 -// @name:ar ChatGPT نسخ رمز الدردشة وأزرار رمز التصدير -// @description:ar يخرج chatgpt.com أضف رسمًا متحركًا في الركن الأيمن السفلي من كتلة التعليمات البرمجية العلوية“نسخ الرمز”زر و ل ChatGPT تضيف كتلة التعليمات البرمجية في الاستجابة زر التصدير,يطالب المستخدم بحفظ التعليمات البرمجية في ملف بناءً على لغة البرمجة التي اكتشفها اسم فئة كتلة التعليمات البرمجية。 -// @name:bg ChatGPT Бутони за копиране на код за чат и експортиране на код -// @description:bg съществуват chatgpt.com Добавете анимация в долния десен ъгъл на горния кодов блок“Копирайте кода”бутон и за ChatGPT Кодовият блок в отговор добавя бутон за експортиране,Подканва потребителя да запише код във файл въз основа на езика за програмиране, открит от името на класа на кодовия блок。 -// @name:cs ChatGPT Chat kopírovat kód a exportovat tlačítka kódu -// @description:cs existovat chatgpt.com Přidejte animaci do pravého dolního rohu horního bloku kódu“Kopírovat kód”tlačítko a pro ChatGPT Blok kódu jako odpověď přidá tlačítko exportu,Vyzve uživatele k uložení kódu do souboru na základě programovacího jazyka zjištěného názvem třídy bloku kódu。 -// @name:da ChatGPT Chat kopi kode og eksport kode knapper -// @description:da eksistere chatgpt.com Tilføj en animation i nederste højre hjørne af den øverste kodeblok“Kopiér kode”knap og en for ChatGPT Kodeblok som svar tilføjer eksportknap,Beder brugeren om at gemme kode i en fil baseret på det programmeringssprog, der registreres af kodeblokkens klassenavn。 -// @name:de ChatGPT Chat-Schaltflächen zum Kopieren und Exportieren von Code -// @description:de existieren chatgpt.com Fügen Sie in der unteren rechten Ecke des oberen Codeblocks eine Animation hinzu“Code kopieren”Knopf und ein für ChatGPT Als Antwort fügt der Codeblock eine Schaltfläche zum Exportieren hinzu,Fordert den Benutzer auf, Code in einer Datei zu speichern, basierend auf der Programmiersprache, die durch den Klassennamen des Codeblocks erkannt wird。 -// @name:el ChatGPT Κουμπιά κωδικού αντιγραφής συνομιλίας και κωδικού εξαγωγής -// @description:el υπάρχω chatgpt.com Προσθέστε μια κινούμενη εικόνα στην κάτω δεξιά γωνία του επάνω μπλοκ κώδικα“Αντιγραφή κωδικού”κουμπί και ένα για ChatGPT Το μπλοκ κώδικα σε απόκριση προσθέτει το κουμπί εξαγωγής,Προτρέπει τον χρήστη να αποθηκεύσει κώδικα σε ένα αρχείο με βάση τη γλώσσα προγραμματισμού που ανιχνεύεται από το όνομα κλάσης του μπλοκ κώδικα。 -// @name:en ChatGPT Chat copy code and export code buttons -// @description:en exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 -// @name:eo ChatGPT Babilejo kopikodo kaj eksportkodo butonoj -// @description:eo ekzisti chatgpt.com Aldonu animacion en la malsupra dekstra angulo de la supra kodbloko“Kopiu kodon”butono kaj a por ChatGPT Kodbloko en respondo aldonas eksportbutonon,Instigas la uzanton konservi kodon al dosiero bazita sur la programlingvo detektita de la klasnomo de la kodbloko。 -// @name:es ChatGPT Botones de copiar código y exportar código de chat -// @description:es existir chatgpt.com Agregue una animación en la esquina inferior derecha del bloque de código superior“Copiar código”botón y un para ChatGPT El bloque de código en respuesta agrega el botón de exportación,Solicita al usuario que guarde el código en un archivo según el lenguaje de programación detectado por el nombre de clase del bloque de código.。 -// @name:fi ChatGPT Chat kopioi koodi ja vientikoodin painikkeet -// @description:fi olemassa chatgpt.com Lisää animaatio ylemmän koodilohkon oikeaan alakulmaan“Kopioi koodi”-painiketta ja for ChatGPT Koodilohko vastauksena lisää vientipainikkeen,Kehottaa käyttäjää tallentamaan koodin tiedostoon koodilohkon luokan nimen havaitseman ohjelmointikielen perusteella。 -// @name:fr ChatGPT Boutons de copie du code de chat et d’exportation du code -// @description:fr exister chatgpt.com Ajoutez une animation dans le coin inférieur droit du bloc de code supérieur“Copier le code”bouton et un pour ChatGPT Le bloc de code en réponse ajoute un bouton d’exportation,Invite l’utilisateur à enregistrer le code dans un fichier basé sur le langage de programmation détecté par le nom de classe du bloc de code。 -// @name:he ChatGPT לחצני צ’אט העתקת קוד וייצוא קוד -// @description:he לְהִתְקַיֵם chatgpt.com הוסף אנימציה בפינה הימנית התחתונה של גוש הקוד העליון“העתק קוד”כפתור ו- for ChatGPT בלוק קוד בתגובה מוסיף לחצן ייצוא,מבקש מהמשתמש לשמור קוד בקובץ המבוסס על שפת התכנות שזוהתה על ידי שם המחלקה של בלוק הקוד。 -// @name:hr ChatGPT Gumbi za kopiranje koda i izvoz koda -// @description:hr postojati chatgpt.com Dodajte animaciju u donji desni kut gornjeg bloka koda“Kopiraj kod”gumb i for ChatGPT Blok koda kao odgovor dodaje gumb za izvoz,Traži od korisnika da spremi kod u datoteku na temelju programskog jezika otkrivenog nazivom klase kodnog bloka。 -// @name:hu ChatGPT Chat kódmásolás és kódexportálás gombok -// @description:hu létezik chatgpt.com Adjon hozzá animációt a felső kódblokk jobb alsó sarkába“Kód másolása”gombot és egy for ChatGPT A kódblokk válaszként hozzáadja az export gombot,Arra kéri a felhasználót, hogy a kódblokk osztályneve által észlelt programozási nyelv alapján mentse el a kódot egy fájlba。 -// @name:id ChatGPT Tombol salin kode obrolan dan ekspor kode -// @description:id ada chatgpt.com Tambahkan animasi di sudut kanan bawah blok kode atas“Salin kode”tombol dan untuk ChatGPT Blok kode sebagai respons menambahkan tombol ekspor,Meminta pengguna untuk menyimpan kode ke file berdasarkan bahasa pemrograman yang terdeteksi oleh nama kelas blok kode。 -// @name:it ChatGPT Chatta copia il codice ed esporta i pulsanti del codice -// @description:it esistere chatgpt.com Aggiungi un’animazione nell’angolo in basso a destra del blocco di codice superiore“Copia il codice”pulsante e un for ChatGPT Il blocco di codice in risposta aggiunge il pulsante di esportazione,Richiede all’utente di salvare il codice in un file in base al linguaggio di programmazione rilevato dal nome della classe del blocco di codice。 -// @name:ja ChatGPT チャットのコードのコピー ボタンとコードのエクスポート ボタン -// @description:ja 存在する chatgpt.com 上部のコード ブロックの右下隅にアニメーションを追加します。“コードをコピーする”ボタンと for ChatGPT 応答のコード ブロックはエクスポート ボタンを追加します,コード ブロックのクラス名によって検出されたプログラミング言語に基づいて、コードをファイルに保存するようにユーザーにプロンプ​​トを表示します。。 -// @name:ka ChatGPT ჩეთის კოპირების კოდის და ექსპორტის კოდის ღილაკები -// @description:ka არსებობს chatgpt.com დაამატეთ ანიმაცია ზედა კოდის ბლოკის ქვედა მარჯვენა კუთხეში“დააკოპირეთ კოდი”ღილაკი და ამისთვის ChatGPT კოდის ბლოკი პასუხად ამატებს ექსპორტის ღილაკს,სთხოვს მომხმარებელს შეინახოს კოდი ფაილში კოდის ბლოკის კლასის სახელით აღმოჩენილი პროგრამირების ენის საფუძველზე。 -// @name:ko ChatGPT 채팅 코드 복사 및 코드 내보내기 버튼 -// @description:ko 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“코드 복사”버튼과 ChatGPT 응답으로 코드 블록에 내보내기 버튼이 추가됩니다.,코드 블록의 클래스 이름으로 감지된 프로그래밍 언어를 기반으로 파일에 코드를 저장하라는 메시지를 사용자에게 표시합니다.。 -// @name:nl ChatGPT Chat kopieer code en exportcodeknoppen -// @description:nl bestaan chatgpt.com Voeg een animatie toe in de rechter benedenhoek van het bovenste codeblok“Kopieer code”knop en een voor ChatGPT Codeblok als reactie voegt een exportknop toe,Vraagt ​​de gebruiker om code op te slaan in een bestand op basis van de programmeertaal die wordt gedetecteerd door de klassenaam van het codeblok。 -// @name:nb ChatGPT Chat kopier kode og eksport kode knapper -// @description:nb eksistere chatgpt.com Legg til en animasjon i nedre høyre hjørne av den øvre kodeblokken“Kopier koden”knapp og en for ChatGPT Kodeblokk som svar legger til eksportknapp,Ber brukeren om å lagre kode i en fil basert på programmeringsspråket oppdaget av kodeblokkens klassenavn。 -// @name:pl ChatGPT Przyciski kopiowania kodu i eksportowania kodu na czacie -// @description:pl istnieć chatgpt.com Dodaj animację w prawym dolnym rogu górnego bloku kodu“Skopiuj kod”przycisk i for ChatGPT Blok kodu w odpowiedzi dodaje przycisk eksportu,Monituje użytkownika o zapisanie kodu w pliku w oparciu o język programowania wykryty przez nazwę klasy bloku kodu。 -// @name:pt-BR ChatGPT Botões de copiar código de bate-papo e exportar código -// @description:pt-BR existir chatgpt.com Adicione uma animação no canto inferior direito do bloco de código superior“Copiar código”botão e um para ChatGPT Bloco de código em resposta adiciona botão de exportação,Solicita ao usuário que salve o código em um arquivo com base na linguagem de programação detectada pelo nome da classe do bloco de código。 -// @name:ro ChatGPT Butoanele de copiere a codului de chat și a codului de export -// @description:ro exista chatgpt.com Adăugați o animație în colțul din dreapta jos al blocului de cod de sus“Copiați codul”buton și un pentru ChatGPT Blocarea codului ca răspuns adaugă butonul de export,Solicită utilizatorului să salveze codul într-un fișier pe baza limbajului de programare detectat de numele clasei blocului de cod。 -// @name:ru ChatGPT Кнопки копирования кода чата и экспорта кода -// @description:ru существовать chatgpt.com Добавьте анимацию в правом нижнем углу верхнего блока кода.“Скопировать код”кнопка и для ChatGPT Блок кода в ответ добавляет кнопку экспорта,Предлагает пользователю сохранить код в файл на основе языка программирования, определенного по имени класса блока кода.。 -// @name:sk ChatGPT Kopírovanie kódu chatu a tlačidlá exportu kódu -// @description:sk existujú chatgpt.com Pridajte animáciu do pravého dolného rohu horného bloku kódu“Kopírovať kód”tlačidlo a pre ChatGPT Blok kódu v odpovedi pridá tlačidlo exportu,Vyzve používateľa, aby uložil kód do súboru na základe programovacieho jazyka, ktorý sa zistil podľa názvu triedy bloku kódu。 -// @name:sr ChatGPT Дугмад за копирање кода за ћаскање и дугмад за извоз кода -// @description:sr постоје chatgpt.com Додајте анимацију у доњи десни угао горњег кодног блока“Копирај код”дугме и за ChatGPT Блок кода као одговор додаје дугме за извоз,Тражи од корисника да сачува код у датотеци на основу програмског језика који је откривен именом класе блока кода。 -// @name:sv ChatGPT Chat kopiera kod och export kod knappar -// @description:sv existera chatgpt.com Lägg till en animation i det nedre högra hörnet av det övre kodblocket“Kopiera kod”knapp och en för ChatGPT Kodblock som svar lägger till exportknapp,Ber användaren att spara kod till en fil baserat på programmeringsspråket som identifieras av kodblockets klassnamn。 -// @name:th ChatGPT ปุ่มคัดลอกรหัสแชทและปุ่มส่งออกรหัส -// @description:th มีอยู่ chatgpt.com เพิ่มภาพเคลื่อนไหวที่มุมขวาล่างของบล็อกโค้ดด้านบน“คัดลอกรหัส”ปุ่ม และสำหรับ ChatGPT บล็อกโค้ดในการตอบสนองเพิ่มปุ่มส่งออก,พร้อมต์ให้ผู้ใช้บันทึกโค้ดลงในไฟล์ตามภาษาการเขียนโปรแกรมที่ตรวจพบโดยชื่อคลาสของบล็อคโค้ด。 -// @name:tr ChatGPT Sohbet kodunu kopyala ve kodu dışa aktar düğmeleri -// @description:tr var olmak chatgpt.com Üst kod bloğunun sağ alt köşesine bir animasyon ekleyin“Kodu kopyala”düğme ve bir için ChatGPT Yanıt olarak kod bloğu dışa aktarma düğmesi ekler,Kullanıcıdan, kod bloğunun sınıf adı tarafından algılanan programlama diline dayalı olarak kodu bir dosyaya kaydetmesini ister。 -// @name:ug ChatGPT پاراڭلىشىش كودى ۋە ئېكسپورت كود كۇنۇپكىسى -// @description:ug مەۋجۇت chatgpt.com ئۈستۈنكى كود توپىنىڭ ئوڭ ئوڭ بۇلۇڭىغا كارتون قوشۇڭ“كودنى كۆچۈرۈڭ”كۇنۇپكا ۋە ئۈچۈن ChatGPT بۇنىڭغا جاۋابەن كود توسۇش ئېكسپورت كۇنۇپكىسىنى قوشىدۇ,ئىشلەتكۈچىنىڭ كود بۆلەكنىڭ سىنىپ ئىسمى تەرىپىدىن بايقالغان پروگرامما تىلىغا ئاساسەن كودنى ھۆججەتكە ساقلىشىنى تەلەپ قىلىدۇ。 -// @name:uk ChatGPT Кнопки копіювання та експорту коду чату -// @description:uk існують chatgpt.com Додайте анімацію в нижній правий кут верхнього блоку коду“Скопіюйте код”кнопка і for ChatGPT Блок коду у відповідь додає кнопку експорту,Пропонує користувачеві зберегти код у файл на основі мови програмування, визначеної назвою класу блоку коду。 -// @name:vi ChatGPT Nút trò chuyện sao chép mã và xuất mã -// @description:vi hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“Sao chép mã”nút và một cho ChatGPT Khối mã phản hồi thêm nút xuất,Nhắc người dùng lưu mã vào tệp dựa trên ngôn ngữ lập trình được phát hiện bởi tên lớp của khối mã。 -// @name:zh-TW ChatGPT 聊天複製程式碼和匯出程式碼按鈕 -// @description:zh-TW 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕和一個為 ChatGPT 響應中的程式碼區塊新增匯出按鈕,提示使用者根據程式碼區塊的類別名稱偵測到的程式語言將程式碼儲存為文件。 -// @name:zh-HK ChatGPT 聊天複製程式碼和匯出程式碼按鈕 -// @description:zh-HK 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕和一個為 ChatGPT 響應中的程式碼區塊新增匯出按鈕,提示使用者根據程式碼區塊的類別名稱偵測到的程式語言將程式碼儲存為文件。 -// @name:fr-CA ChatGPT Boutons de copie du code de chat et d’exportation du code -// @description:fr-CA exister chatgpt.com Ajoutez une animation dans le coin inférieur droit du bloc de code supérieur“Copier le code”bouton et un pour ChatGPT Le bloc de code en réponse ajoute un bouton d’exportation,Invite l’utilisateur à enregistrer le code dans un fichier basé sur le langage de programmation détecté par le nom de classe du bloc de code。 -// @match https://chatgpt.com/* -// @match https://share.nezhagpt.cloud/* -// @author YodaBets,人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/png;base64,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 -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @version 1.2.0.0 -// @Created 2024-09-22 07:06:07 -// @modified 2024-09-22 07:06:07 -// ==/UserScript== -(function () { - 'use strict' - var EXPORT = true - const copyToClipboard = (text, button) => { - navigator.clipboard.writeText(text).then(() => { - console.log('Copied code to clipboard') - button.innerHTML = 'Copied!' - setTimeout(() => { - button.innerHTML = '' // Clear the text - const svgIcon = getSVGIcon() // Re-add the SVG icon - button.appendChild(svgIcon) - }, 2000) - }, (err) => { - console.error('Failed to copy code: ', err) - }) - } - function getSVGIcon(isEx = false) { - const svgIcon = document.createElementNS('http://www.w3.org/2000/svg', 'svg') - svgIcon.setAttribute('width', '24') - svgIcon.setAttribute('height', '24') - svgIcon.setAttribute('fill', 'none') - svgIcon.setAttribute('viewBox', '0 0 24 24') - svgIcon.classList.add('icon-sm') - const path = document.createElementNS('http://www.w3.org/2000/svg', 'path') - path.setAttribute('fill', 'currentColor') - path.setAttribute('fill-rule', 'evenodd') - if (isEx) { - path.setAttribute('transform', 'rotate(180 12 12)') - path.setAttribute('d', 'M5 20a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1zm7-2a1 1 0 0 1-1-1V8.414L9.707 10.707a1 1 0 1 1-1.414-1.414l4-4a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L13 8.414V17a1 1 0 0 1-1 1z') - } else { - path.setAttribute('d', 'M7 5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-2v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3h2zm2 2h5a3 3 0 0 1 3 3v5h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1zM5 9a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-9a1 1 0 0 0-1-1z') - } - path.setAttribute('clip-rule', 'evenodd') - svgIcon.appendChild(path) - return svgIcon - } - const addButton = (elem) => { - const button = document.createElement('button') - const svgIcon = getSVGIcon() - button.appendChild(svgIcon) - button.style.position = 'absolute' - button.style.bottom = '8px' - button.style.right = '8px' - button.style.fontSize = '12px' - button.style.padding = '4px 8px' - button.style.border = '1px solid #ccc' - button.style.borderRadius = '3px' - button.style.background = 'rgba(0,0,0,0.1)' - button.style.color = 'white' - button.style.cursor = 'pointer' - button.style.zIndex = '10' - button.style.transition = 'background-color 0.3s ease' - button.addEventListener('click', (e) => { - e.stopPropagation() - copyToClipboard(elem.querySelector('code').textContent, button) - }) - button.addEventListener('mouseover', () => { - button.style.backgroundColor = 'rgba(0,0,0,0.2)' - }) - button.addEventListener('mouseout', () => { - button.style.backgroundColor = 'rgba(0,0,0,0.1)' - }) - elem.style.position = 'relative' - elem.appendChild(button) - } - const addexButton = (elem) => { - const button = document.createElement('button') - const svgIcon = getSVGIcon(true) - button.appendChild(svgIcon) - button.style.position = 'absolute' - button.style.bottom = '8px' - button.style.right = '48px' - button.style.fontSize = '12px' - button.style.padding = '4px 8px' - button.style.border = '1px solid #ccc' - button.style.borderRadius = '3px' - button.style.background = 'rgba(0,0,0,0.1)' - button.style.color = 'white' - button.style.cursor = 'pointer' - button.style.zIndex = '10' - button.style.transition = 'background-color 0.3s ease' - button.addEventListener('click', (e) => { - var languageDiv = elem.querySelector('div.flex.items-center.text-token-text-secondary') - e.stopPropagation() - exportCode(elem, languageDiv.textContent) - }) - elem.style.position = 'relative' - elem.appendChild(button) - } - const observeCodeBlocks = () => { - const codeBlocks = document.querySelectorAll('pre:not(.copy-code-processed)') - if (codeBlocks.length) { - codeBlocks.forEach(block => { - if (block.querySelector('div.flex.items-center.text-token-text-secondary')) { - // console.log(block) - addButton(block) - if (EXPORT) { - addexButton(block) - } - block.classList.add('copy-code-processed') - } - - }) - } - } - async function exportCode(codeBlock, language) { - let fileName - let fileExtension - let mimeType - // Determine filename, extension, and MIME type based on language - switch (language) { - case 'javascript': - case 'js': - fileName = 'script' - fileExtension = '.js' - mimeType = 'application/javascript' - break - case 'html': - fileName = 'index' - fileExtension = '.html' - mimeType = 'text/html' - break - case 'css': - fileName = 'styles' - fileExtension = '.css' - mimeType = 'text/css' - break - case 'python': - case 'py': - fileName = 'main' - fileExtension = '.py' - mimeType = 'text/x-python' - break - default: - // If language cannot be determined from , fallback to provided language - switch (language.toLowerCase()) { - case 'javascript': - case 'js': - fileName = 'script' - fileExtension = '.js' - mimeType = 'application/javascript' - break - case 'html': - fileName = 'index' - fileExtension = '.html' - mimeType = 'text/html' - break - case 'css': - fileName = 'styles' - fileExtension = '.css' - mimeType = 'text/css' - break - case 'python': - case 'py': - fileName = 'main' - fileExtension = '.py' - mimeType = 'text/x-python' - break - case 'java': - fileName = 'Main' - fileExtension = '.java' - mimeType = 'text/x-java-source' - break - case 'kotlin': - fileName = 'Main' - fileExtension = '.kt' - mimeType = 'text/x-kotlin' - break - case 'c++': - case 'cpp': - fileName = 'main' - fileExtension = '.cpp' - mimeType = 'text/x-c++src' - break - case 'c#': - case 'csharp': - fileName = 'Program' - fileExtension = '.cs' - mimeType = 'text/x-csharp' - break - case 'c': - fileName = 'main' - fileExtension = '.c' - mimeType = 'text/x-csrc' - break - case 'ruby': - fileName = 'script' - fileExtension = '.rb' - mimeType = 'text/x-ruby' - break - case 'rust': - fileName = 'main' - fileExtension = '.rs' - mimeType = 'text/x-rustsrc' - break - case 'php': - fileName = 'script' - fileExtension = '.php' - mimeType = 'text/x-php' - break - case 'swift': - fileName = 'main' - fileExtension = '.swift' - mimeType = 'text/x-swift' - break - case 'typescript': - case 'ts': - fileName = 'script' - fileExtension = '.ts' - mimeType = 'application/typescript' - break - case 'go': - fileName = 'main' - fileExtension = '.go' - mimeType = 'text/x-go' - break - case 'perl': - fileName = 'script' - fileExtension = '.pl' - mimeType = 'text/x-perl' - break - case 'lua': - fileName = 'script' - fileExtension = '.lua' - mimeType = 'text/x-lua' - break - case 'powershell': - case 'ps': - fileName = 'script' - fileExtension = '.ps1' - mimeType = 'application/x-powershell' - break - case 'json': - fileName = 'data' - fileExtension = '.json' - mimeType = 'application/json' - break - case 'bat': - fileName = 'script' - fileExtension = '.bat' - mimeType = 'application/bat' - break - case 'md': - case 'markdown': - fileName = 'document' - fileExtension = '.md' - mimeType = 'text/markdown' - break - default: - fileName = 'code' - fileExtension = '.txt' - mimeType = 'text/plain' - break - } - break - } - // Create a Blob object with the code content - const blob = new Blob([codeBlock.querySelector('code').textContent], { type: mimeType }) - try { - if (window.showSaveFilePicker) { - // Use File System Access API if available - const fileHandle = await window.showSaveFilePicker({ - suggestedName: fileName + fileExtension, - types: [ - { - description: language, - accept: { - [mimeType]: [fileExtension], - }, - }, - ], - }) - const writable = await fileHandle.createWritable() - await writable.write(blob) - await writable.close() - } else { - // Fallback for browsers that do not support showSaveFilePicker - const downloadLink = document.createElement('a') - downloadLink.href = URL.createObjectURL(blob) - downloadLink.download = fileName + fileExtension - downloadLink.style.display = 'none' - document.body.appendChild(downloadLink) - downloadLink.click() - URL.revokeObjectURL(downloadLink.href) - document.body.removeChild(downloadLink) - } - } catch (error) { - console.error('Save file dialog was canceled or failed', error) - } - } - setTimeout(() => { - const observer = new MutationObserver(observeCodeBlocks) - observer.observe(document.body, { childList: true, subtree: true }) - observeCodeBlocks() - }, 5000) -})() \ No newline at end of file diff --git a/Script details/chatgpt-counter/README.md b/Script details/chatgpt-counter/README.md deleted file mode 100644 index 6fe59a456..000000000 --- a/Script details/chatgpt-counter/README.md +++ /dev/null @@ -1,175 +0,0 @@ - -
- - - - - -
-

ChatGPT 字符计数器

-

「 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ ChatGPT 字符计数器 更新日志

-

📅 2024/9/1 09:37 - Ver 1.3.1

-

修复: 无法在新开聊天或切换聊天时显示计数器的问题,以及发送后计数器不清零的问题

-
- -
- - - -![Snipaste_2024-09-01_10-05-11.png](https://s2.loli.net/2024/09/01/uJZIDbie6fdmOQH.png) - - - -## 描述 - -ChatGPT Character Counter Limit (CCCL) 是一个用户脚本,旨在为 ChatGPT 的输入框添加一个字符计数器,限制为 32732 个字符。这个脚本可以帮助用户在输入时实时查看已输入字符的数量,并在超出限制时给出视觉提示。. - - - -## 功能 - -- 在 ChatGPT 输入框下方添加一个字符计数器。 -- 实时更新计数器,显示已输入字符数和字符限制。 -- 当字符数超出限制时,计数器文本颜色变为红色,提示用户。 -- 当字符数接近限制时,计数器文本颜色变为绿色,显示警告。 - - - - -> ### 🔍你可能在找ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - - - - -## Thanks -修改自用户 [Emree.el](https://greasyfork.org/zh-CN/users/1297357)的脚本 [ChatGPT Character Counter Limit (CCCL)](https://greasyfork.org/scripts/505802) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/chatgpt-counter/README_en.md b/Script details/chatgpt-counter/README_en.md deleted file mode 100644 index bd9bc13af..000000000 --- a/Script details/chatgpt-counter/README_en.md +++ /dev/null @@ -1,180 +0,0 @@ - -
- - - - - -
-

ChatGPT character counter

-

「 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ ChatGPT character counter Change log

-

📅 2024/9/1 09:37 - Ver 1.3.1

-

repair: The counter cannot be displayed when opening a new chat or switching chats,And the problem of the counter not clearing after sending

-
- -
- - - - - -# ChatGPT Character Counter Limit (CCCL) - - - -## Description - -The ChatGPT Character Counter Limit (CCCL) is a user script designed to add a character counter to the ChatGPT input box, limiting the count to 32,732 characters. This script helps users view the number of characters entered in real-time and provides visual prompts when the limit is exceeded. - - - -## Features - -- Adds a character counter below the ChatGPT input box. -- Updates the counter in real-time, displaying the number of characters entered and the character limit. -- Changes the counter text color to red when the character count exceeds the limit, providing a warning. -- Changes the counter text color to green when the character count approaches the limit, displaying a caution. - - - -## Thanks -Modified from the script [ChatGPT Character Counter Limit (CCCL)](https://greasyfork.org/scripts/505802) by user [Emree.el](https://greasyfork.org/zh-CN/users/1297357) - -![Snipaste_2024-09-01_10-05-11.png](https://s2.loli.net/2024/09/01/uJZIDbie6fdmOQH.png) - - - - - - -> ### 🔍you may be looking forChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT chatCopy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): add onecharactersCounter to input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT chatCopy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): add onecharactersCounter to input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopylimit**](https://greasyfork.org/scripts/505207): fuck you CSDN LoginCopy,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolderdownload**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouseUser’s other warehouses 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,Quick jump within the warehouse. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): EnhancegreasyforkNavigation bar,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/chatgpt-counter/chatgpt-counter.user.js b/Script details/chatgpt-counter/chatgpt-counter.user.js deleted file mode 100644 index 59bef9af1..000000000 --- a/Script details/chatgpt-counter/chatgpt-counter.user.js +++ /dev/null @@ -1,140 +0,0 @@ -// ==UserScript== -// @name ChatGPT Character Counter Limit (CCCL) -// @description Adds a character counter to the input field with a limit of 32732 characters. (ChatGPT has a limit of 32732 characters.) -// @name:zh-CN ChatGPT 字符计数器限制 -// @description:zh-CN 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -// @name:ar ChatGPT حد عداد الأحرف -// @description:ar إضافة عداد الأحرف إلى مربع الإدخال,يقتصر على 32732 الشخصيات。(ChatGPT الحد هو 32732 الشخصيات。) -// @name:bg ChatGPT Ограничение на брояча на знаци -// @description:bg Добавете брояч на символи към полето за въвеждане,ограничен до 32732 герои。(ChatGPT Ограничението е 32732 герои。) -// @name:cs ChatGPT Limit počítadla znaků (CCCL) -// @description:cs Do vstupního pole přidejte počítadlo znaků,omezena na 32732 postavy。(ChatGPT Limit je 32732 postavy。) -// @name:da ChatGPT Tegntællergrænse (CCCL) -// @description:da Tilføj en tegntæller til inputfeltet,begrænset til 32732 tegn。(ChatGPT Grænsen er 32732 tegn。) -// @name:de ChatGPT Zeichenzählerlimit -// @description:de Fügen Sie dem Eingabefeld einen Zeichenzähler hinzu,beschränkt auf 32732 Charaktere。(ChatGPT Die Grenze ist 32732 Charaktere。) -// @name:el ChatGPT Όριο μετρητή χαρακτήρων (CCCL) -// @description:el Προσθέστε έναν μετρητή χαρακτήρων στο πλαίσιο εισαγωγής,περιορίζεται σε 32732 χαρακτήρες。(ChatGPT Το όριο είναι 32732 χαρακτήρες。) -// @name:en ChatGPT Character counter limit (CCCL) -// @description:en Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) -// @name:eo ChatGPT Limo de nombrilo de karakteroj (CCCL) -// @description:eo Aldonu signan nombrilon al la eniga skatolo,limigita al 32732 karakteroj。(ChatGPT La limo estas 32732 karakteroj。) -// @name:es ChatGPT Límite del contador de caracteres (CCCL) -// @description:es Agregue un contador de caracteres al cuadro de entrada,circunscrito a 32732 personajes。(ChatGPT El límite es 32732 personajes。) -// @name:fi ChatGPT Merkkilaskurin raja (CCCL) -// @description:fi Lisää merkkilaskuri syöttöruutuun,rajoitettu 32732 hahmoja。(ChatGPT Raja on 32732 hahmoja。) -// @name:fr ChatGPT Limite du compteur de caractères (CCCL) -// @description:fr Ajouter un compteur de caractères à la zone de saisie,limité à 32732 personnages。(ChatGPT La limite est 32732 personnages。) -// @name:he ChatGPT מגבלת מונה תווים (CCCL) -// @description:he הוסף מונה תווים לתיבת הקלט,מוגבל ל 32732 תווים。(ChatGPT הגבול הוא 32732 תווים。) -// @name:hr ChatGPT Ograničenje brojača znakova (CCCL) -// @description:hr Dodajte brojač znakova u polje za unos,ograničeno na 32732 likovi。(ChatGPT Granica je 32732 likovi。) -// @name:hu ChatGPT Karakterszámláló korlát (CCCL) -// @description:hu Adjon hozzá egy karakterszámlálót a beviteli mezőhöz,korlátozva 32732 karakterek。(ChatGPT A határ az 32732 karakterek。) -// @name:id ChatGPT Batas penghitung karakter (CCCL) -// @description:id Tambahkan penghitung karakter ke kotak input,terbatas pada 32732 karakter。(ChatGPT Batasnya adalah 32732 karakter。) -// @name:it ChatGPT Limite del contatore di caratteri (CCCL) -// @description:it Aggiungi un contatore di caratteri alla casella di input,limitato a 32732 caratteri。(ChatGPT Il limite è 32732 caratteri。) -// @name:ja ChatGPT 文字数カウンターの制限 (CCCL) -// @description:ja 入力ボックスに文字カウンターを追加する,に限定される 32732 キャラクター。(ChatGPT 限界は 32732 キャラクター。) -// @name:ka ChatGPT სიმბოლოების მრიცხველის ლიმიტი (CCCL) -// @description:ka დაამატეთ სიმბოლოების მრიცხველი შეყვანის ველში,შემოიფარგლება 32732 პერსონაჟები。(ChatGPT ლიმიტი არის 32732 პერსონაჟები。) -// @name:ko ChatGPT 문자 카운터 제한 (CCCL) -// @description:ko 입력 상자에 문자 카운터 추가,로 제한됨 32732 문자。(ChatGPT 한도는 32732 문자。) -// @name:nl ChatGPT Limiet voor tekenteller (CCCL) -// @description:nl Voeg een tekenteller toe aan het invoervak,beperkt tot 32732 karakters。(ChatGPT De limiet is 32732 karakters。) -// @name:nb ChatGPT Tegntellergrense (CCCL) -// @description:nb Legg til en tegnteller i inndataboksen,begrenset til 32732 tegn。(ChatGPT Grensen er 32732 tegn。) -// @name:pl ChatGPT Limit licznika znaków (CCCL) -// @description:pl Dodaj licznik znaków do pola wprowadzania,ograniczone do 32732 pismo。(ChatGPT Limit jest 32732 pismo。) -// @name:pt-BR ChatGPT Limite do contador de caracteres (CCCL) -// @description:pt-BR Adicione um contador de caracteres à caixa de entrada,limitado a 32732 personagens。(ChatGPT O limite é 32732 personagens。) -// @name:ro ChatGPT Limita contorului de caractere (CCCL) -// @description:ro Adăugați un numărător de caractere în caseta de introducere,limitat la 32732 personaje。(ChatGPT Limita este 32732 personaje。) -// @name:ru ChatGPT Ограничение счетчика символов (CCCL) -// @description:ru Добавьте счетчик символов в поле ввода,ограничено 32732 персонажи。(ChatGPT Предел 32732 персонажи。) -// @name:sk ChatGPT Limit počítadla znakov (CCCL) -// @description:sk Do vstupného poľa pridajte počítadlo znakov,obmedzené na 32732 postavy。(ChatGPT Limit je 32732 postavy。) -// @name:sr ChatGPT Ограничење бројача знакова (CCCL) -// @description:sr Додајте бројач знакова у поље за унос,ограничен на 32732 ликова。(ChatGPT Граница је 32732 ликова。) -// @name:sv ChatGPT Gräns ​​för teckenräknare (CCCL) -// @description:sv Lägg till en teckenräknare i inmatningsrutan,begränsat till 32732 tecken。(ChatGPT Gränsen är 32732 tecken。) -// @name:th ChatGPT ขีดจำกัดตัวนับอักขระ (CCCL) -// @description:th เพิ่มตัวนับอักขระลงในกล่องอินพุต,จำกัดอยู่ที่ 32732 ตัวอักษร。(ChatGPT ขีดจำกัดคือ 32732 ตัวอักษร。) -// @name:tr ChatGPT Karakter sayacı sınırı (CCCL) -// @description:tr Giriş kutusuna karakter sayacı ekleme,sınırlı 32732 karakterler。(ChatGPT Sınır 32732 karakterler。) -// @name:ug ChatGPT ھەرپ-بەلگە چەكلىمىسى (CCCL) -// @description:ug كىرگۈزۈش رامكىسىغا ھەرپ ھېسابلىغۇچ قوشۇڭ,بىلەنلا چەكلىنىدۇ 32732 ھەرپلەر。(ChatGPT چەك 32732 ھەرپلەر。) -// @name:uk ChatGPT Обмеження лічильника символів (CCCL) -// @description:uk Додайте лічильник символів у поле введення,обмежується 32732 персонажів。(ChatGPT Межа є 32732 персонажів。) -// @name:vi ChatGPT Giới hạn bộ đếm ký tự (CCCL) -// @description:vi Thêm bộ đếm ký tự vào hộp nhập liệu,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 nhân vật。) -// @name:zh-TW ChatGPT 字元計數器限制 (CCCL) -// @description:zh-TW 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。) -// @name:zh-HK ChatGPT 字元計數器限制 (CCCL) -// @description:zh-HK 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。) -// @name:fr-CA ChatGPT Limite du compteur de caractères (CCCL) -// @description:fr-CA Ajouter un compteur de caractères à la zone de saisie,limité à 32732 personnages。(ChatGPT La limite est 32732 personnages。) -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.3.1.14 -// @author Emree.el on instagram ,人民的勤务员 -// @match https://chatgpt.com/* -// @grant none -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAALp0lEQVR4nO2aeUzUZxrHp81ms/vHdq9kk002u9n9o5tme2pbryoiKIcgAorcI/dwDIhQTpkBuVSuIreCity3MIAHoiheVbfac6u2tdp2u0ez2aSHtQqfzevrLE6HmYEytrbhST5h5nm+3+f5vQ8zzDAZhWI2ZmM2ZmM2ZmM27ld4FPAH+200Ls7g2nPx3HwmkvEnw+GZaMbmJ/GZbRYXHIuJV2h5WPFDO7hdFhfnqOCpUMvM28iXjgVsVfwQwrWA5HlRjM0JgTmhsFwDvnUQ1Q/xRyFhFGIOQEgHuBXDgli4ow0BuzQ+8Cvmt4rva7jls+P5EHguCJangFoHqSfMk3wcfCthfrj0LY3ji9WFPKr4vsXabaTPD4L568G7BNKPw6bRqROvg6XR0m8fz6duWex3yeCCczqXVmk5vjqHlrUFrFQ8iOFbxBM2YYwvUkLAS5A5+s1Q1YPoYQ67GG56ZtOjLuURxYMS7mlcWRIIHumw+RhkH58emiHwyQMbJYg+DjHgvxVCK0C1E4JLwTsH7CNkXbBcxS2ffNK+67MrArfw/FJ/WBYIm3SQd2x6qGthRRjoe4QUQ85RE/oR2NgIrnFSbxsAvpn0f6cL8NvEMTs/CNDCtpGpk9kLa18E4RWI29reKfqPQkQJ2PlLr5+Wvm/10GE5BHsncdk1lNsrfEGQXA9FI5YpGIaoInAMkD6XEEjYAYVHp+a/lxfrYIUfOPhBSA4Z9/3g0VtwWBfLf5x84OvkdUPpUfNom2CNSuqdfSEsEwoPWPaZI65Y9lsdyq24En5x3w4fkcEuN39w8Qb3QIjbCvkd4B0pc1u6oPzI5BQPQIQGXH2kdl0kZDeb1hf1Q1aD6fq9lA2DX4zsG5bOwH05vCqNZrd1sMoLojJg+yBUDUt8wmW+sGsip6fyMKRXgGeg1Kz2hcRCqBgy1ur1yaXg4S/1oYlQ2D259l6y66XeK4hbwENWPfwGLTkeXiDIKIWdhw0JCAP3tVDSaVwLi5c1gbhd2m2s0VPQBMrICb2n98TPhFyoGjTt3SFeRoOkPiEXL6sdPnkzT/n4MbZmDWwqhF2HjVGGgqiXdRrXvH1lLbtycq+gZgDiM6ROEBAEW2qhWgcbNk3k/QJln7qhyfts1EhdXCr7rLYAdQIX13lCdCzUH4K9Q8aEhILQVLYb1/x9ZK1uwLgm+uVVQIC/1HivheRM2DVoqCtrBlW01AjCVVDaaNwvq1DWYxM4b5XDa/N41N8L/Dyhpg2aDk1ORAj4ekD1JBqlt6zt6TfMV7dATKSsCdRqqGk3PaPxIGwtgyD/CU9KOuzundAUVN7tFcM1qywgLYXagNWwUQ2tB00TGQRCV9tqXAv2krUGnbzfqAONBpQeMi9Qh0Njv/kZeoQuM2vCH7wO8gugZT8UlMrchmjes8oCNkbzvtINCoug84BpYtaD0O1uMa6FrJW11j7YXg4RvvK+0o0x5WqGA1cxJu6LfOl26Nhvfpae+lZIiv1/rzvXkLxB3k6Ks9JTQK3ki+BVsKcReg6YJlYJQtfQYlwLXyNrCRHypyDUnfNKN54WM4JX8WzQKk7ra4kRlufdS/UOUAdM9BZkJlFllQXEeDEW5godXaDbb5qNgSB0zc3GtShPWROEr+K/oa6EKBRff53moXBXlKGufHxXR24KdPWYn6undwBK8iDSQ85JCuXfWi0/nvEC1J6MqVbCvi4YHDRNoj8IXXuTcU3tIWsRztRFr+bXZuc58ojKmSLVSr4SnljxyrINBgbMz9fT1iQ9wquN5uyMF5Dkw41oZ2ivh4MDpknxA6HrbDSubXCXtXB7fj7VuVHO7BQePWlKaN5p/hr0tNRBjIv0FafjN6MFZAbxT7UT7C2F4QHTpPqC0PU2Gtc2ir/yTtNbQIwTNcKzRQ3J66Q/1hm2boCBdvPXIihNlR7Nej6Z0QKKYunZ4AgFahjpN02GDwhdaSIc6jSsJbrJWvI0FhDnQI3w7NkKw71QrYGElbJPoivUZpu/nqHuibmVGTh84wXUprAg0RGSXOBIB5zQTU5NKghdggOkusHeXBjtlbUU8QrgML0FJDhQIzyN+RMzDjZDYaTsJXqauhY9pbFSW6Ke4adFWwL5R9JyqIyH032mObgbCoJBaAU566C3DNJXyvvTWUCSPTXC05xvOON4h+yV7mL+WgSdxVK7JYB/zWgBu1JwTl8BafYwUAFne82zrwRyPSHV3pDpLCDVnhrhacs17H2yXfbSrLR8HYfrpDZvDTcUM40qFSPpdpDpBMM18Eqvec73QKtG6oVPkLaM7Skv8EtLs9LsWZm+jGvC05Vr2Pfldtkr09nyNZxuvatdyfiMF6DV8nB5IO9qlkG2I7RnwCud8Oo+85xtgd2xoLUD4dXY8olmGdFaG35kNMOOP2ls6buju0tPjmG/820yn+1kefbpRqnNc+G2whrRncwLWbagp9ANDmyFN7vhzR7znNoJVQET3sylvKG1ZYXoWzSfn2bZkpllyw1Ry3VgvNhD6vqzDftcbJX5PEfLM0erpPYlTz6zygKaoijPsYHytVDuCeK2oHIdnCyHt7stM1wAJa6M6b3ZSziQY8N7d+4vhQYVXGyEphhZ359l6H+tRea3rbA8q2+T1NYGcMUqC9i7nnP5S0CXApc74dBmKHECkcu3gYYQuLgbrnSZ51I7tEbf9d2lyhNOl01o2qJk/mCWoffNZpkvWm55zk5vqW2NpNgqC9jjz7vbFsOxXLjaJbnSCrpEKF4Gola4FHo3wOWWCc29XGkD3UapE/qXlsOQBt7rNNR1Rsn6cKZh/nKzzJfYT95fz7lyqSu2Y3xQze+ssoC93lwrfAFO5MH1TkPe3gMdYVAklvAClNnDkQx4v31CcyofKp1kXei6VXClwbiXoDtS6ka0hvl3m2S+1G5yn0DM3L1W6lqCOKawVrQH8NeShXA0FT7qmJw3KqDJC4ROUOcCJ7OgyXsiV+8Or5eZ7iHoi5Da4xrD/PuNMl9ua9o7qJaaquXc7ovl91ZbwL5gdNsXwIAK/t5hnvP5sMsZhF5P9TI4IQ7UbtnfEyQ9Qn9v/lqjzFctncTXDofiZL1sEQxGE66wZhyKwadiPuxaLodZOsSHbTCaCrW2MBgB1xose67shG5fEHMEpyZZgMjvsDHMv1MHHd6yVrkIdGFsV1g7gIfq7bhVPQ9eK7R8GD1T+Y1/0AzDsbBjIYj+dUtgNFku8V7d9QZZr7WB603wagH0B0HNXd8uG8b2q+7j9wV0SgZ3PA/tq6b2KLBIO5zPhr12IPrunAeDwXC1fnK9WIDQ7ZgntXdu3/V1reGdEyr+rLifcSqeXzXYcLvuWRhNmNnhL1VAjzuIXoJOV3hru3nP5eoJ/e750O7Ep/1+jByJYp7i24ojEWjqnwXBhc3TP7j4W3AkXPr3zIXmJXAuY2pPlZfTpKfHjY+vavmJ4ruKw4HoGuZA41w4FT+1ixeac2nQugiEt+lZGImQD+upLq9PfPQ+B4aUVCu+6xj2Z1/LHGh+Bnod4fV804v4WzH0OUmtYNAdrlRN75Ejeghv2wLGz1jr3d1MYySUtJ7F3Gp7GgTdC2EkEM7EwYV0OJ8MR/ygTVz407DPBl7Lnv7T5kPxllt8QPI0DPtwWPEgxYkX+dmILz26JdzseBJMcTIMPmyZ/uHFo2rEV/bQ2fDlSRW/UTyocToMp1Ffmo96cfyIG5eG3XlrYAk3u5+A/cvgau00f/PNcNwXhH/fXMbPRLJa8X2Ll0N59KANn/c+DgPPw8Uk+Ohrb3Am4+2tcEj8d/k46OYyfi6MGMX3Nc6E8scRRz7u/wsIhhbBuXC4VADX6uCjVri+B94phQvxcNRB6u5oF3PjTChrFD+EOBtIzuEFfLX/MbDEobmMnVrDgTPqB+j7wNYItDx8Ppiw0268MrKYz4eeYfzgY3B4DmMjC7lx0oVLL/vz0gXlffy+32zMxmzMxmzMhkLE/wB0D3c/kOHNbgAAAABJRU5ErkJggg== -// ==/UserScript== -(function () { - 'use strict' - // Function to add character counter and handle its behavior - function addCharacterCounter() { - if (document.querySelector('.gpt-charCounter')) {//存在返回 - return - } - let textarea = document.querySelector('#prompt-textarea') - if (textarea) { - let charCounter = document.createElement('div') - charCounter.className = 'gpt-charCounter' - charCounter.style.fontSize = '14px' - charCounter.style.fontWeight = 'bold' - charCounter.style.marginTop = '5px' - charCounter.style.color = 'white' - charCounter.style.textShadow = '0px 0px 5px white' // Default text shadow - charCounter.textContent = '0/32732' - textarea.parentElement.appendChild(charCounter) - function updateCounter() { - let charCount = textarea.value.length - charCounter.textContent = `${charCount}/32732` - if (charCount > 32732) { - charCounter.style.color = 'white' - charCounter.style.textShadow = '0px 0px 8px red' - } else if (charCount > 0) { - charCounter.style.color = 'white' - charCounter.style.textShadow = '0px 0px 8px green' - } else { - charCounter.style.color = 'white' - charCounter.style.textShadow = '0px 0px 5px white' - } - } - textarea.addEventListener('input', function () { - updateCounter() - }) - document.querySelector('body').addEventListener('click', function (event) { - const button = event.target.closest('button[data-testid="send-button"]') - if (button) updateCounter() - }) - } - } - let lastUrl = location.href - new MutationObserver(() => { - const url = location.href - if (url !== lastUrl) { - lastUrl = url - addCharacterCounter() - console.log("change", url) - } - }).observe(document, { subtree: true, childList: true }) - // Run the function after the page loads - window.addEventListener('load', addCharacterCounter) -})() diff --git a/Script details/chatgpt-plus/README.md b/Script details/chatgpt-plus/README.md deleted file mode 100644 index 4b17f8a58..000000000 --- a/Script details/chatgpt-plus/README.md +++ /dev/null @@ -1,190 +0,0 @@ - -
- - - - - -
-

ChatGPT 折叠自己消息和最大宽度

-

「 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ ChatGPT 折叠自己消息和最大宽度 更新日志

-

📅 2024/9/28 09:32 - Ver 0.3.0.0

-

新增: 兼容新 ChatGPT 官网,设置最大宽度失败时,自动重新添加.

-
-

📅 2024/9/15 11:13 - Ver 0.2.0.0

-

新增: 增加在移动设备回车键发送。代码来自ChatGPT.com Mobile Layout Enter Key Fix

-
- -
- - - -![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) - - - -# ChatGPT Chat Fold Script & MAXWidth - - - -## 简介 -`ChatGPT Chat Fold Script & MAXWidth` 是一个用于在 ChatGPT 中折叠较长的“你”发送的消息并设置最大宽度的脚本。这可以帮助你更好地管理长消息,并改善界面布局。 - - - -## 功能 -- **折叠长消息**:自动折叠由你发送的长消息,节省屏幕空间。 -- **设置最大宽度**:允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -## 使用方法 -- 默认情况下,脚本会自动折叠长消息。 -- 你可以点击消息旁边的 “折叠” 按钮来手动折叠或展开消息。 -- 在设置中调整聊天窗口的最大宽度。 - - - -## 更新日志 -- **v0.1**:初始版本,添加折叠功能和最大宽度设置。 - - - - -> ### 🔍你可能在找ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - - - - -## 贡献 -如果你有任何建议或发现了问题,请通过 GitHub 或者GreasyFork 提交问题。 - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/chatgpt-plus/README_en.md b/Script details/chatgpt-plus/README_en.md deleted file mode 100644 index dab22a073..000000000 --- a/Script details/chatgpt-plus/README_en.md +++ /dev/null @@ -1,193 +0,0 @@ - -
- - - - - -
-

ChatGPT Collapse self message and max width

-

「 Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ ChatGPT Collapse self message and max width Change log

-

📅 2024/9/28 09:32 - Ver 0.3.0.0

-

New: Compatible with new ChatGPT Official website,When setting the maximum width fails,Automatically re-add.

-
-

📅 2024/9/15 11:13 - Ver 0.2.0.0

-

New: Added the ability to send the Enter key on mobile devices。code fromChatGPT.com Mobile Layout Enter Key Fix

-
- -
- - - - - -# ChatGPT Chat Fold Script & MAXWidth - - - -## Introduction -`ChatGPT Chat Fold Script & MAXWidth` is one used in ChatGPT The middle fold is longer“you”Script that sends the message and sets the maximum width。thisCanbyhelphelpyouEvengoodlandTubereasonlongremovebreath,and improve the interface layout。 - - - -## Function -- **Collapse long messages**:Automatically collapse long messages sent by you,Save screen space。 -- **Set maximum width**:Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -## How to use -- By default,Script automatically collapses long messages。 -- You can click next to the message “fold” according tobuttonComehandmovefoldorexhibitionopenremovebreath。 -- Adjust the maximum width of the chat window in settings。 - - - -## Change log -- **v0.1**:initial version,Add folding functionality and max-width settings。 - - - -## contribute -If you have any suggestions or find a problem,Please pass GitHub orGreasyFork Submit a question。 - -![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) - - - - - - - - -> ### 🔍you may be looking forChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/chatgpt-plus/README_vi.md b/Script details/chatgpt-plus/README_vi.md deleted file mode 100644 index f9226dcf6..000000000 --- a/Script details/chatgpt-plus/README_vi.md +++ /dev/null @@ -1,197 +0,0 @@ - -
- - - - - -
-

ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa

-

「 Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Cập nhật bản ghi

🛠️ ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa Nhật ký thay đổi

-

📅 2024/9/28 09:32 - Ver 0.3.0.0

-

Mới: Tương thích với mới ChatGPT Trang web chính thức,Khi cài đặt chiều rộng tối đa không thành công,Tự động thêm lại.

-
-

📅 2024/9/15 11:13 - Ver 0.2.0.0

-

Mới: Đã thêm khả năng gửi phím Enter trên thiết bị di động。mã từChatGPT.com Mobile Layout Enter Key Fix

-
- -
- - - - - -# ChatGPT Chat Fold Script & MAXWidth - - - -## Giới thiệu -`ChatGPT Chat Fold Script & MAXWidth` là một cái được sử dụng trong ChatGPT Nếp gấp ở giữa dài hơn“Bạn”Tập lệnh gửi tin nhắn và đặt độ rộng tối đa。cái nàyCó thểquagiúp đỡgiúp đỡBạnThậm chíTốtđấtỐnglý dodàidi dờihơi thở,và cải thiện bố cục giao diện。 - - - -## Chức năng -- **Thu gọn tin nhắn dài**:Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。 -- **Đặt chiều rộng tối đa**:Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 - - - -## Cách sử dụng -- Theo mặc định,Tập lệnh tự động thu gọn các tin nhắn dài。 -- Bạn có thể bấm vào bên cạnh tin nhắn “nếp gấp” theocái nútĐếntaydi chuyểnnếp gấphoặctriển lãmmởdi dờihơi thở。 -- Điều chỉnh độ rộng tối đa của cửa sổ trò chuyện trong cài đặt。 - - - -## Nhật ký thay đổi -- **v0.1**:phiên bản đầu tiên,Thêm chức năng gấp và cài đặt chiều rộng tối đa。 - - - -## đóng góp -Nếu bạn có bất kỳ đề xuất hoặc tìm thấy một vấn đề,Xin vui lòng vượt qua GitHub hoặcGreasyFork Gửi câu hỏi。 - -![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) - - - - -## làmsử dụnggiúp đỡgiúp đỡ - - -## Giúp đỡ - - - - -> ### 🔍có thể bạn đang tìm kiếmChatGPTTập lệnh liên quan -> - [**ChatGPTKích thước phông chữ mã giảm**](https://greasyfork.org/scripts/505209): cho phép ChatGPT Kích thước phông chữ mã trở nên nhỏ hơn -> - [**ChatGPT 聊天Sao chép mãcái nút**](https://greasyfork.org/scripts/509598): hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“复制代码”按钮 -> - [**ChatGPT bộ đếm ký tự**](https://greasyfork.org/scripts/506166): 添加一nhân vật计数器到输入框,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 个字符。) -> - [**ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa**](https://greasyfork.org/scripts/504901): Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 - - - - - - - -## Giúp đỡ - - Trình duyệt và trình quản lý tập lệnh được đề xuất: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **Nếu bạn cần biết thêm về cách cài đặt userscript,[bấm vào tôi](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)Xem giảng dạy đồ họa!** - -

Nhiều tập lệnh người dùng hơn / -trở lại đầu trang↑

- - - - - - - -### Xem tất cả các tập lệnh xuất bản - - - - -> ### 🔍có thể bạn đang tìm kiếm ChatGPTTập lệnh liên quan -> - [**ChatGPTKích thước phông chữ mã giảm**](https://greasyfork.org/scripts/505209): cho phép ChatGPT Kích thước phông chữ mã trở nên nhỏ hơn -> - [**ChatGPT 聊天Sao chép mãcái nút**](https://greasyfork.org/scripts/509598): hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“复制代码”按钮 -> - [**ChatGPT bộ đếm ký tự**](https://greasyfork.org/scripts/506166): 添加一nhân vật计数器到输入框,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 个字符。) -> - [**ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa**](https://greasyfork.org/scripts/504901): Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 - - - -> ### 🔍có thể bạn đang tìm kiếm Các tập lệnh liên quan đến web -> - [**Trình quản lý ủy quyền phiên bản clip viết trang web**](https://greasyfork.org/scripts/497403): Cấm các trang web ị trên các phiên bản đã chỉnh sửa,màu xanh lá cây để phát hành,lệnh cấm đỏ,hướng dẫn tạm thời màu cam -> - [**Thang máyCSDNĐăng nhậpSao chép限制**](https://greasyfork.org/scripts/505207): chết tiệt bạn CSDN 登录复制,Sao chép nội dung hộp mã mà không cần đăng nhập -> - [**Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp**](https://greasyfork.org/scripts/507036): Tự động áp dụng làm đẹp độ dốc màu cho tất cả các cột của bảng trên trang web. -> - [**Đánh dấu từ khóa trên các trang web+(gợi ý)**](https://greasyfork.org/scripts/498906): Đánh dấu văn bản trên các trang web -> - [**Làm nổi bật văn bản web_phiên bản nhỏ**](https://greasyfork.org/scripts/498905): Làm nổi bật từ khóa tùy chỉnh trên các trang web bao gồm nội dung được tải động khi cuộn -> - [**Xem trước cửa sổ nhỏ**](https://greasyfork.org/scripts/504880): Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 -> - [**Xóa gạch chân liên kết**](https://greasyfork.org/scripts/498625): Xóa gạch chân khỏi liên kết web -> - [**Nút cuộn nhỏ lên xuống**](https://greasyfork.org/scripts/497251): Thêm nút cuộn lên xuống ở bên phải trang -> - [**Nút trên và dưới một chạm**](https://greasyfork.org/scripts/500255): Được sửa đổi từGreasyforktập lệnh người dùng Thêm nút trên và dưới vào trang web,Tạo điều kiện di chuyển nhanh lên đầu hoặc cuối trang dài。 Đã thêm thay đổi màu nút khi cuộn xuống,3Tự động dừng nếu không cuộn trong vài giây - - - -> ### 🔍có thể bạn đang tìm kiếm GitHubTập lệnh liên quan -> - [**GitHubGửi hiển thị thông tinHTML**](https://greasyfork.org/scripts/505830): Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 -> - [**GitHub Trình làm đẹp danh sách tập tin**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。 -> - [**Github Danh sách ngôn ngữ mã hiển thị tất cả**](https://greasyfork.org/scripts/509889): Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong “khác” Xuống -> - [**GitHub Tự động xác nhận ủy quyền thiết bị**](https://greasyfork.org/scripts/508956): hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 -> - [**GitHubthư mục下载**](https://greasyfork.org/scripts/505496): Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub 文件夹。 -> - [**GitHubTải xuống các tập tin đơn lẻ và sao chép các tập tinURL**](https://greasyfork.org/scripts/505501): Nút thêm vào cuối mỗi dòng file,để sao chép tập tin gốc URL và tải về các tập tin -> - [**🤠 Github Tăng cường trợ lý Kích thước hiển thị kho Cảnh báo phát triển không hoạt động Nhảy nhanh vào kho用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): hiện hữuGithubHiển thị kích thước kho khi xem và tìm kiếm kho ,Cảnh báo phát triển không hoạt động,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Thay đổi cách sắp xếp file danh sách kho theo thứ tự ngày giảm dần,Thuận tiện xem các tập tin cập nhật mới nhất。 - - - -> ### 🔍có thể bạn đang tìm kiếm GoogleTập lệnh liên quan -> - [**Google Tìm kiếm nâng cao**](https://greasyfork.org/scripts/502652): Đây là một cho Google Thêm tập lệnh người dùng cho biểu mẫu tìm kiếm nâng cao。Nó thêm một biểu mẫu tìm kiếm nâng cao có thể ẩn ở đầu trang,Giúp bạn tìm kiếm thông tin chính xác hơn。 -> - [**Google Tìm kiếm và chặn các trang web cụ thể**](https://greasyfork.org/scripts/500262): Chặn các trang web cụ thể khỏi kết quả của công cụ tìm kiếm,Giúp người dùng lọc ra các kết quả tìm kiếm không mong muốn。 Trang web chặn đầu vào tùy chỉnh。Định dạng-zhihu -baidu Được sử dụng để chặn nội dung tìm kiếm của Google - - - -> ### 🔍có thể bạn đang tìm kiếm GreasyForkTập lệnh liên quan -> - [**GreasyForkthích hợp để nâng cao**](https://greasyfork.org/scripts/497317): Trang chi tiết tập lệnh được thêm vào. Nó phù hợp để thêm các liên kết. Nhấp để mở trang web.,Sao chép trang web,tìm kiếm lốp xe -> - [**GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản**](https://greasyfork.org/scripts/508968): sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. -> - [**GreaysFork Nâng cao WebHookĐồng bộ hóa cài đặt**](https://greasyfork.org/scripts/506717): Tập lệnh này có thể giúp bạn nhập nhanh thông tin đồng bộ hóa tập lệnh,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi tới URL tương ứng。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Được sử dụng theo mặc định trong diễn đàn Markdown Định dạng,Thêm liên kết trợ giúp định dạng và Markdown Giới thiệu thanh công cụ -> - [**GreasyFork Hiển thị xếp hạng kịch bản**](https://greasyfork.org/scripts/501119): Thêm điểm đánh giá vào danh sách tập lệnh -> - [**GreasyFork Tìm kiếm nâng cao**](https://greasyfork.org/scripts/505215): Tìm kiếm bằng Google GreasyFork Và SleazyFork chữ viết trên -> - [**GreasyFork Thanh điều hướngNâng cao**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Thêm danh sách người dùng,Bảng điều khiển người dùng, v.v. -> - [**GreasyforkThợ làm keo**](https://greasyfork.org/scripts/497346): Nâng caogreasyfork,Sao chép mã,Tải xuống tập lệnh,Thời gian chính xác đến từng giây,Dọn dẹp trang chủ,Thảo luận về báo cáo bằng một cú nhấp chuột,Đã thêm mã nhảy danh sách tập lệnh tải xuống Làm đẹp mã xem và hiển thị các tệp tham chiếu mã,hiển thị biểu tượng tập lệnh,Chuyển đến tập lệnh dành cho người lớn và các thao tác khác -> - [**Greasyfork Trợ lý thông báo**](https://greasyfork.org/scripts/506345): Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Kịch bản sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 -> - [**Script FinderCông cụ tìm tập lệnh Grease Monkey**](https://greasyfork.org/scripts/498904): Script Finder là một tập lệnh người dùng(userscript),Nó giúp bạn tìm và quản lý mô tả người dùng trên bất kỳ trang web nào - - - -> ### 🔍có thể bạn đang tìm kiếm kịch bản người lớn -> - [**MiSSAVĐăng nhập tự động**](https://greasyfork.org/scripts/505325): Phát hiện MisssAV tình trạng,và tự động đăng nhập khi chưa đăng nhập -> - [**MissAVNgười quản lý bộ sưu tập**](https://greasyfork.org/scripts/497682): missSao lưu danh sách phát,Hỗ trợ tải hình ảnh và lưu thông tin video.Xuất trang web địa phương Hỗ trợ xuất khẩu sangwebdav -> - [**TissAVĐăng nhập tự động**](https://greasyfork.org/scripts/506528): Phát hiện TissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập -> - [**JableTVĐăng nhập tự động**](https://greasyfork.org/scripts/506730): Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập - - - -> ### 🔍có thể bạn đang tìm kiếm dịch tự động -> - [**đầu cuối ngoại ngữ**](https://greasyfork.org/scripts/504890): Nhận biết các ký tự không phải tiếng Trung,Nếu chiều dài lớn hơn 5 Và văn bản dịch không chứa tiếng Trung Quốc,sau đó thay thế bằng tiếng Trung,Cần phải có thể truy cập đượcgooglemạng -> - [**dịch trang web——Tự động dịch sang tiếng Trung**](https://greasyfork.org/scripts/505208): Cung cấp góc dưới bên phải của mỗi trang web không phải tiếng Trung Quốc(Có thể điều chỉnh ở góc dưới bên trái)thêm một google Biểu tượng dịch,Phiên bản này là phiên bản dịch tiếng Trung,Chỉ dịch tiếng nước ngoài sang tiếng Trung,Thêm bản dịch tự động - - -
- - - diff --git a/Script details/chatgpt-plus/README_zh-TW.md b/Script details/chatgpt-plus/README_zh-TW.md deleted file mode 100644 index 89cc0928f..000000000 --- a/Script details/chatgpt-plus/README_zh-TW.md +++ /dev/null @@ -1,192 +0,0 @@ - -
- - - - - -
-

ChatGPT 折疊自己訊息和最大寬度

-

「 自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新記錄

🛠️ ChatGPT 折疊自己訊息和最大寬度 更新日誌

-

📅 2024/9/28 09:32 - Ver 0.3.0.0

-

新增: 相容新 ChatGPT 官網,設定最大寬度失敗時,自動重新新增.

-
-

📅 2024/9/15 11:13 - Ver 0.2.0.0

-

新增: 增加在行動裝置回車鍵發送。代碼來自ChatGPT.com Mobile Layout Enter Key Fix

-
- -
- - - - - -# ChatGPT Chat Fold Script & MAXWidth - - - -## 簡介 -`ChatGPT Chat Fold Script & MAXWidth` 是一個用於在 ChatGPT 中折疊較長的“你”發送的訊息並設定最大寬度的腳本。這可以幫助你更好地管理長訊息,並改善介面佈局。 - - - -## 功能 -- **折疊長訊息**:自動折疊由你發送的長訊息,節省螢幕空間。 -- **設定最大寬度**:允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 - - - -## 使用方法 -- 預設情況下,腳本會自動折疊長訊息。 -- 你可以點擊訊息旁邊的 “折疊” 按钮来手动折疊或展开消息。 -- 在設定中調整聊天視窗的最大寬度。 - - - -## 更新日誌 -- **v0.1**:初始版本,添加折疊功能和最大寬度設置。 - - - -## 貢獻 -如果你有任何建議或發現了問題,請透過 GitHub 或者GreasyFork 提交問題。 - -![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) - - - - - - - -> ### 🔍你可能在找ChatGPT相關腳本 -> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): 讓 ChatGPT 程式碼字體變小 -> - [**ChatGPT 聊天複製程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“复制代码”按钮 -> - [**ChatGPT 字元計數器**](https://greasyfork.org/scripts/506166): 添加一個字元计数器到输入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 - - - - - - - -## 使用幫助 - - 推薦瀏覽器和腳本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多關於如何安裝使用者腳本,[點擊我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看圖文教學!** - -

更多用戶腳本 / -回到頂部↑

- - - - - - - -### 查看所有發布腳本 - - - - -> ### 🔍你可能在找 ChatGPT相關腳本 -> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): 讓 ChatGPT 程式碼字體變小 -> - [**ChatGPT 聊天複製程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“复制代码”按钮 -> - [**ChatGPT 字元計數器**](https://greasyfork.org/scripts/506166): 添加一個字元计数器到输入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 - - - -> ### 🔍你可能在找 網頁相關腳本 -> - [**網頁寫入剪輯版授權管理員**](https://greasyfork.org/scripts/497403): 禁止網頁向剪輯版拉屎,綠色為放行,紅色禁止,橙色臨時方向 -> - [**解除CSDN登入複製限制**](https://greasyfork.org/scripts/505207): 去你媽的 CSDN 登录复制,無需登入即可複製程式碼框內容 -> - [**絢麗漸層美化網頁表格**](https://greasyfork.org/scripts/507036): 自動為網頁上的表格所有欄位套用顏色漸層美化. -> - [**網頁高亮關鍵字+(推薦)**](https://greasyfork.org/scripts/498906): 對網頁上的文字進行高亮顯示 -> - [**高亮網頁文本_迷你版**](https://greasyfork.org/scripts/498905): 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 -> - [**小視窗預覽**](https://greasyfork.org/scripts/504880): 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -> - [**去除連結下劃線**](https://greasyfork.org/scripts/498625): 去除網頁連結的下劃線 -> - [**上下滾動小按鈕**](https://greasyfork.org/scripts/497251): 頁面右側新增上下滾動按鈕 -> - [**一鍵置頂和置底按鈕**](https://greasyfork.org/scripts/500255): 修改自Greasyfork使用者腳本 為網頁新增置頂和置底按鈕,方便在長頁面中快速移動到頂部或底部。 增加向下滾動時按鈕變色,3秒內無滾動自動停止 - - - -> ### 🔍你可能在找 GitHub相關腳本 -> - [**GitHub提交資訊顯示HTML**](https://greasyfork.org/scripts/505830): 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。 -> - [**Github 代碼語言列表顯示全部**](https://greasyfork.org/scripts/509889): 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在 “其他” 下 -> - [**GitHub 自動確認設備授權**](https://greasyfork.org/scripts/508956): 在GitHub授權頁面自動輸入授權碼與自動確認。 -> - [**GitHub資料夾下载**](https://greasyfork.org/scripts/505496): 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 文件夹。 -> - [**GitHub下載單一文件和複製文件URL**](https://greasyfork.org/scripts/505501): 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 -> - [**🤠 Github 增強助手 倉庫顯示大小 不活躍開發警告 倉庫內快捷跳轉用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看倉庫和搜尋倉庫時顯示倉庫大小 ,不活躍開發警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 倉庫列表文件排序方式改為日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相關腳本 -> - [**Google 進階搜尋**](https://greasyfork.org/scripts/502652): 這是一個為 Google 新增進階搜尋表單的使用者腳本。它能在頁面頂部添加一個可隱藏的高級搜尋表單,使您能夠更精確地搜尋訊息。 -> - [**Google 搜尋屏蔽指定站點**](https://greasyfork.org/scripts/500262): 在搜尋引擎結果中封鎖特定的站點,幫助用戶過濾掉不需要的搜尋結果。 自訂輸入屏蔽站點。格式-zhihu -baidu 用於封鎖谷歌搜尋內容 - - - -> ### 🔍你可能在找 GreasyFork相關腳本 -> - [**GreasyFork適用於增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 -> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝狀況 -> - [**GreaysFork 增強 WebHook同步設定**](https://greasyfork.org/scripts/506717): 這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 -> - [**GreasyFork 顯示腳本評分**](https://greasyfork.org/scripts/501119): 腳本清單新增評價分數 -> - [**GreasyFork 進階搜尋**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋 GreasyFork 和 SleazyFork 上體文字 -> - [**GreasyFork 導覽列增強**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用戶列表,使用者控制台等 -> - [**Greasyfork膠水工匠**](https://greasyfork.org/scripts/497346): 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -> - [**Script Finder油猴腳本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 - - - -> ### 🔍你可能在找 成人劇本 -> - [**MiSSAV自動登入**](https://greasyfork.org/scripts/505325): 偵測 MisssAV 狀態,並且在未登入時自動登入 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss單張備份,支援下載圖片保存影片訊息.導出本地網頁 支援導出到webdav -> - [**TissAV自動登入**](https://greasyfork.org/scripts/506528): 偵測 TissAV 狀態,並且在未登入時自動登入 -> - [**JableTV自動登入**](https://greasyfork.org/scripts/506730): 偵測 JableTV 狀態,並且在未登入時自動登入 - - - -> ### 🔍你可能在找 自動翻譯 -> - [**外語終結者**](https://greasyfork.org/scripts/504890): 識別非中文字符,如果長度大於 5 且翻譯文中不含中文,則替換為中文,需要可訪問google的網路 -> - [**網頁翻譯——自動翻譯為中文**](https://greasyfork.org/scripts/505208): 給每個非中文的網頁右下角(可以調整到左下角)添加一個 google 翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 - - -
- - - diff --git a/Script details/clipboard-manager/README.md b/Script details/clipboard-manager/README.md deleted file mode 100644 index 10dad07aa..000000000 --- a/Script details/clipboard-manager/README.md +++ /dev/null @@ -1,186 +0,0 @@ - -
- - - - - -
-

网页写入剪辑版授权管理器

-

「 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ 网页写入剪辑版授权管理器 更新日志

-

📅 2024-09-28 08:21- Ver 1.2.3.1

-

修复: •复制函数 pc 不为 red 时且来源于为 window.navigator.clipboard.writeText ,需要手动复制到剪辑版.@90 -修复: •逻辑错误 ↠ 按下快捷键复制后只有指示器为 red 时候重置,为 green 不重置@161

-
-

📅 2024-09-27 11:55- Ver 1.2.3.0

-

新增: •监听clipboard.writeText事件

-
- -
- - - -![1.png](https://s2.loli.net/2024/08/05/ItB4r1G9SULPqaH.png) - -在其他地方下载的脚本,作者不知道是谁很不错,防范牛皮癣。用 ChatGPT 修改了下,让脚本在 PC 端浏览时可以使用快捷键复制,专防网页后台复制各种口令。该脚本与复制限制解除类脚本可能不兼容! -脚本生效时,会在网页右下角显示半透明小圆点,不同颜色对应不同状态,说明如下: - -- **红色** : 拦截所有复制行为,并弹窗通知是否授权。 -- **绿色** : 放行所有复制行为,等于脚本不运行。 -- **橙色** : 临时解除拦截,该状态仅出现在手动复制时,用户完成复制后自动变为红色,恢复拦截。 -- **红点默认不显示**,在检测到剪贴板写入行为后会显示 4s。这个时间你可以点击切换状态,选择是否放行这个网页的剪贴板写入行为。 - -## 作者 - -- **姓名**:人民的勤务员 -- **邮箱**:toniaiwanowskiskr47@gmail.com -- **GitHub**:[ChinaGodMan/UserScripts](https://github.com/ChinaGodMan/UserScripts) - -## 许可证 - -本项目采用 MIT 许可证。 - -## 问题反馈 - -如有任何问题,请通过 [GitHub Issues](https://github.com/ChinaGodMan/UserScripts/issues) 提交反馈。 - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - - - -## 使用帮助 - -推荐浏览器和脚本管理器: - -- **Greasemonkey + Waterfox** -- **Tampermonkey/Violentmonkey + Firefox** -- **Tampermonkey/Violentmonkey + Chrome** -- **Userscripts + ios Safari** -- **Violentmonkey/KiWiBrowser + Android** - -**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/clipboard-manager/README_en.md b/Script details/clipboard-manager/README_en.md deleted file mode 100644 index 3f25ecd30..000000000 --- a/Script details/clipboard-manager/README_en.md +++ /dev/null @@ -1,186 +0,0 @@ - -
- - - - - -
-

Web page writing clip version authorization manager

-

「 Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ Web page writing clip version authorization manager Change log

-

📅 2024-09-28 08:21- Ver 1.2.3.1

-

repair: •copy function pc Not for red Sometimes it comes from window.navigator.clipboard.writeText ,Need to manually copy to the edited version.@90 -repair: •logic error ↠ After pressing the shortcut key to copy, there is only an indicatorfor red time to reset,for green No reset@161

-
-

📅 2024-09-27 11:55- Ver 1.2.3.0

-

New: •monitorclipboard.writeTextevent

-
- -
- - - -![1.png](https://s2.loli.net/2024/08/05/ItB4r1G9SULPqaH.png) - -Scripts downloaded elsewhere,I don’t know who the author is. Very good.,Prevent psoriasis。use ChatGPT Modified,Let the script be in PC You can use shortcut keys to copy when browsing,Specially prevents various passwords from being copied in the background of web pages。This script may be incompatible with copy restriction lifting scripts! -When the script takes effect,A semi-transparent dot will be displayed in the lower right corner of the web page,Different colors correspond to different states,Instructions are as follows: - -- **red** : Block all copying behavior,And a pop-up window will notify you whether to authorize or not.。 -- **green** : Allow all copying,It’s equal to the script not running。 -- **orange color** : Temporarily unblock,This status only appears when copying manually,Automatically turns red after the user completes the copy,Restore interception。 -- **The red dot is not displayed by default**,Displayed after detecting clipboard writing behavior 4s。At this time you can click to switch status,Choose whether to allow clipboard writing behavior for this web page。 - -## author - -- **Name**:人民的勤务员 -- **Mail**:toniaiwanowskiskr47@gmail.com -- **GitHub**:[ChinaGodMan/UserScripts](https://github.com/ChinaGodMan/UserScripts) - -## license - -This project uses MIT license。 - -## Problem feedback - -If you have any questions,Please pass [GitHub Issues](https://github.com/ChinaGodMan/UserScripts/issues) Submit feedback。 - - - - -> ### 🔍You may be looking for web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - - - - - -## Help - -Recommended browsers and script managers: - -- **Greasemonkey + Waterfox** -- **Tampermonkey/Violentmonkey + Firefox** -- **Tampermonkey/Violentmonkey + Chrome** -- **Userscripts + ios Safari** -- **Violentmonkey/KiWiBrowser + Android** - -**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/colorful-table/README.md b/Script details/colorful-table/README.md deleted file mode 100644 index c7f9d9b31..000000000 --- a/Script details/colorful-table/README.md +++ /dev/null @@ -1,194 +0,0 @@ - -
- - - - - -
-

绚丽渐变美化网页表格

-

「 自动为网页上的表格所有列应用颜色渐变美化. 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ 绚丽渐变美化网页表格 更新日志

-

📅 2024/9/6 05:41 - Ver 1.0.0.0

-

修改: 修改为自动渐变色.....

-
- -
- - - - - - -# 绚丽渐变美化网页表格脚本 - -该脚本会自动为网页中的所有表格应用颜色渐变,无需用户手动点击或操作,基于表格列中的数值大小生成不同的背景色,从而增强表格的视觉效果。 - -#### 功能特点 -1. **自动应用渐变色**:脚本会自动扫描页面中的表格,为每一列中的数据应用渐变色,无需用户手动触发。 -2. **数据驱动的渐变色**:根据每一列中数值的最小值和最大值,生成颜色渐变效果,数值越大或越小,背景颜色变化越明显。 -3. **持续检测**:脚本每秒检查一次页面,如果有新表格加载,自动为其应用颜色渐变。 -4. **渐变色配置**:渐变颜色基于HSL色彩模型,脚本中可调整色调范围(`HUE_RANGE`)、饱和度(`SATURATION`)、亮度(`LIGHTNESS`)等参数。 - -#### 主要参数 -- **HUE_RANGE**: 设置渐变色的色调范围,默认值为120度,表示绿色到红色的渐变。 -- **SATURATION**: 控制颜色的饱和度,默认为80%,提供了明亮的颜色效果。 -- **LIGHTNESS**: 控制颜色的亮度,默认值为88%,使渐变色柔和且不刺眼。 - -#### 核心逻辑 -1. **extractFirstFloat**: 从单元格文本中提取第一个浮点数,忽略非数字内容,确保只使用数值部分生成颜色渐变。 -2. **applyGradient**: 为每个表格列自动计算最大和最小值,然后根据单元列的数值,生成相应的渐变背景色。 -3. **initializeTables**: 定期检查页面中的表格,并自动为未初始化的表格应用渐变色。 - -#### 使用场景 -该脚本适用于任何包含网页表格场景,能够自动为网页表格应用颜色渐变,帮助用户快速识别数据的差异,提升表格的可视化效果。 - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - - -## 项目与反馈 -- **原脚本:** [yearly](https://greasyfork.org/zh-CN/users/1312063)创建的[彩色表格 | 表格数据可视化](https://greasyfork.org/zh-CN/scripts/502933) -- **项目页面:** [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) -- **支持与问题反馈:** [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) - -![colorful-table-2.png](https://s2.loli.net/2024/09/06/CjBMp6ERigxsYAV.png) -![colorful-table.png](https://s2.loli.net/2024/09/06/IA7pxwj1ZC4c56a.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/colorful-table/README_en.md b/Script details/colorful-table/README_en.md deleted file mode 100644 index 8b54f61f8..000000000 --- a/Script details/colorful-table/README_en.md +++ /dev/null @@ -1,198 +0,0 @@ - -
- - - - - -
-

Beautify web forms with gorgeous gradients

-

「 Automatically apply color gradient beautification to all columns of tables on web pages. 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ Beautify web forms with gorgeous gradients Change log

-

📅 2024/9/6 05:41 - Ver 1.0.0.0

-

Revise: Change to automatic gradient color.....

-
- -
- - - - - -# Gorgeous Gradient Table Beautification Script - -This script automatically applies gradient colors to all tables on a webpage, based on the numerical values in each column. It enhances the visual appeal of the table without any manual clicks or operations by the user. - -#### Features -1. **Automatic Gradient Application**: The script scans tables on the page and automatically applies gradient colors to each column based on the data, without requiring user intervention. -2. **Data-Driven Gradients**: Colors are generated based on the minimum and maximum values in each column, with greater color variation for larger or smaller values. -3. **Continuous Monitoring**: The script checks the page every second to automatically apply gradients to any new tables that are loaded. -4. **Gradient Color Configuration**: Colors are based on the HSL color model, with adjustable parameters for hue range (`HUE_RANGE`), saturation (`SATURATION`), and lightness (`LIGHTNESS`). - -#### Key Parameters -- **HUE_RANGE**: Sets the hue range for the gradient color, with a default value of 120 degrees, representing a gradient from green to red. -- **SATURATION**: Controls the color saturation, with a default of 80% for a vibrant color effect. -- **LIGHTNESS**: Controls the color lightness, with a default of 88% to ensure a soft and non-straining color gradient. - -#### Core Logic -1. **extractFirstFloat**: Extracts the first floating-point number from the cell's text, ignoring non-numeric content to ensure only numerical values are used for gradient calculation. -2. **applyGradient**: Automatically calculates the minimum and maximum values for each column and generates corresponding gradient background colors. -3. **initializeTables**: Periodically checks for tables on the page and applies gradient colors to any new or uninitialized tables. - -#### Use Cases -This script is suitable for any webpage containing tables, automatically applying gradient colors to enhance data visualization and make it easier to distinguish data differences. - - - -## Project & Feedback -- **Original Script:** [yearly](https://greasyfork.org/zh-CN/users/1312063)'s [Colorful Table | Table Data Visualization](https://greasyfork.org/zh-CN/scripts/502933) -- **Project Page:** [GitHub Repository](https://github.com/ChinaGodMan/UserScripts) -- **Support & Issue Reporting:** [Report an Issue](https://github.com/ChinaGodMan/UserScripts/issues) - -![colorful-table-2.png](https://s2.loli.net/2024/09/06/CjBMp6ERigxsYAV.png) -![colorful-table.png](https://s2.loli.net/2024/09/06/IA7pxwj1ZC4c56a.png) - - - - - - - - - - -> ### 🔍You may be looking for web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/csdn-blocker/README.md b/Script details/csdn-blocker/README.md deleted file mode 100644 index 2c163aad2..000000000 --- a/Script details/csdn-blocker/README.md +++ /dev/null @@ -1,157 +0,0 @@ - -
- - - - - -
-

解除CSDN登录复制限制

-

「 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - -解除CSDN需要登录复制的限制 - - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/csdn-blocker/csdn-blocker.user.js b/Script details/csdn-blocker/csdn-blocker.user.js deleted file mode 100644 index 86f0eb6c0..000000000 --- a/Script details/csdn-blocker/csdn-blocker.user.js +++ /dev/null @@ -1,64 +0,0 @@ -// ==UserScript== -// @name 解除CSDN登录复制 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.0.0.23 -// @description 去你妈的CSDN登录复制,无需登录即可复制 -// @author 人民的勤务员 -// @match https://blog.csdn.net/* -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @grant none -// @license MIT -// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLDlIMTguNUwxMywzLjVWOU02LDJIMTRMMjAsOFYyMEEyLDIgMCAwLDEgMTgsMjJINkM0Ljg5LDIyIDQsMjEuMSA0LDIwVjRDNCwyLjg5IDQuODksMiA2LDJNMTAuNSwxMUM4LDExIDYsMTMgNiwxNS41QzYsMTggOCwyMCAxMC41LDIwQzEzLDIwIDE1LDE4IDE1LDE1LjVDMTUsMTMgMTMsMTEgMTAuNSwxMU0xMC41LDEyLjVBMywzIDAgMCwxIDEzLjUsMTUuNUMxMy41LDE2LjA2IDEzLjM1LDE2LjU4IDEzLjA4LDE3TDksMTIuOTJDOS40MiwxMi42NSA5Ljk0LDEyLjUgMTAuNSwxMi41TTcuNSwxNS41QzcuNSwxNC45NCA3LjY1LDE0LjQyIDcuOTIsMTRMMTIsMTguMDhDMTEuNTgsMTguMzUgMTEuMDYsMTguNSAxMC41LDE4LjVBMywzIDAgMCwxIDcuNSwxNS41WiIgZmlsbD0iI2NjMDAwMCIgLz48L3N2Zz4= - - -// ==/UserScript== -(function () { - 'use strict' - - function timeoutAfterLoad(callback, delay) { - setTimeout(callback, delay) - } - - timeoutAfterLoad(() => { - // 修改复制按钮 - document.querySelectorAll(".hljs-button").forEach((e) => { - e.setAttribute("data-title", "点击复制") - e.classList.remove("signin") - e.removeAttribute("onclick") - e.addEventListener("click", () => { - e.setAttribute("data-title", " ") - navigator.clipboard.writeText(e.parentNode.innerText) - e.setAttribute("data-title", "复制成功") - setTimeout(() => e.setAttribute("data-title", "点击复制"), 1200) - }) - }) - - // 复制功能 - document.querySelector(".blog-content-box").addEventListener( - "copy", - (e) => { - e.stopPropagation() - e.preventDefault() - - navigator.clipboard.writeText(window.getSelection().toString()) - }, - true, - ) - document.addEventListener( - "keydown", - (e) => { - if (e.ctrlKey && e.keyCode == 67) { // Ctrl+C - e.stopPropagation() - e.preventDefault() - - navigator.clipboard.writeText(window.getSelection().toString()) - } - }, - true, - ) - - document.oncopy = null - window.oncopy = null - }, 500) -})() diff --git a/Script details/github-commit-viewer/README.md b/Script details/github-commit-viewer/README.md deleted file mode 100644 index dac12b11c..000000000 --- a/Script details/github-commit-viewer/README.md +++ /dev/null @@ -1,246 +0,0 @@ - -
- - - - - -
-

GitHub提交信息显示HTML

-

「 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - - -# GitHub CommitMessage Html View - - - -## 描述 - -`GitHub CommitMessage Html View` 是一个用户脚本,旨在将 GitHub 上的提交信息转换为 HTML 视图,从而提供更清晰的提交详情。该脚本自动将提交信息列表、提交头部和最新提交信息转换为 HTML 格式,以增强视觉效果和用户体验,配合git使用 - - - -## 功能 - -- **提交信息列表转换**: 将提交消息列表中的提交信息转化为 HTML 视图。 -- **头部信息展示**: 显示提交头部和最新提交的详细信息。 -- **增强视觉效果**: 改善提交信息的可视性和用户体验。 - - - -## PowerShell配合上传到远程仓库 - -点击[qinwuyuan.ps1](https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/Script%20details/github-commit-viewer/preview/qinwuyuan.ps1)下载Powershell脚本 - -
 param (
-    [string]$qinwuyuan_messageFilePath
-)
-$qinwuyuan_scriptPath = $PSScriptRoot
-$qinwuyuan_rootDrive1 = [System.IO.Path]::GetPathRoot($qinwuyuan_scriptPath).TrimEnd('\')
-if (-not $qinwuyuan_messageFilePath) {
-    $qinwuyuan_messageFilePath = "$qinwuyuan_rootDrive1\path\to\change\commit.txt"
-}
-$qinwuyuan_oldCommitFilePath = "$qinwuyuan_scriptPath\oldcommit.txt"
-if (-not (Test-Path $qinwuyuan_messageFilePath)) {
-    exit 1
-}
-if (-not (Test-Path .git)) {
-    exit 1
-}
-$qinwuyuan_newCommitMessage = Get-Content $qinwuyuan_messageFilePath -Raw
-$qinwuyuan_oldCommitMessage = if (Test-Path $qinwuyuan_oldCommitFilePath) {
-    Get-Content $qinwuyuan_oldCommitFilePath -Raw
-} else {
-    ""
-}
-if ($qinwuyuan_newCommitMessage -eq $qinwuyuan_oldCommitMessage) {
-    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
-    $qinwuyuan_commitMessage = @"
-https://avatars.githubusercontent.com/u/96548841?v=4&size=32">
-https://github.com/ChinaGodMan">
-  人民的勤务员Github:ChinaGodMan
-
-(UTC+8) $qinwuyuan_currentDateTime 
-"@
-} else {
-    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
-    $qinwuyuan_commitMessage = $qinwuyuan_newCommitMessage -replace '\$qinwuyuan_currentDateTime', $qinwuyuan_currentDateTime
-}
-$qinwuyuan_currentBranch = git rev-parse --abbrev-ref HEAD
-if ($LASTEXITCODE -ne 0) {
-    exit 1
-}
-git add .
-git commit -m $qinwuyuan_commitMessage
-if ($LASTEXITCODE -ne 0) {
-    exit 1
-}
-git push origin $qinwuyuan_currentBranch --force
-if ($LASTEXITCODE -ne 0) {
-    exit 1
-}
-Copy-Item -Path $qinwuyuan_messageFilePath -Destination $qinwuyuan_oldCommitFilePath -Force
-
- - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - -## 支持 - -- [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) -- [项目主页](https://github.com/ChinaGodMan/UserScripts) - - - -## 许可证 - -此脚本使用 [MIT 许可证](https://opensource.org/licenses/MIT) - -使用后: -![1.png](https://s2.loli.net/2024/08/30/lhJrcbzDdABY2pO.png) -使用前: -![2.png](https://s2.loli.net/2024/08/30/56sANeoMWb7QRY2.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-commit-viewer/README_en.md b/Script details/github-commit-viewer/README_en.md deleted file mode 100644 index 7d16c2e2e..000000000 --- a/Script details/github-commit-viewer/README_en.md +++ /dev/null @@ -1,248 +0,0 @@ - -
- - - - - -
-

GitHubSubmit information displayHTML

-

「 This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - - -# GitHub CommitMessage Html View - - - -## Description - -`GitHub CommitMessage Html View` is a user script designed to convert commit messages on GitHub into HTML views, providing clearer commit details. This script automatically transforms commit message lists, commit headers, and the latest commit information into HTML format to enhance visual appeal and user experience, and can be used in conjunction with Git. - - - -## Features - -- **Commit Message List Transformation**: Converts commit messages in the commit list to HTML view. -- **Header Information Display**: Shows detailed information about commit headers and the latest commit. -- **Enhanced Visuals**: Improves the visibility and user experience of commit information. - - - -## Using PowerShell to Upload to a Remote Repository - -Click[qinwuyuan.ps1](https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/Script%20details/github-commit-viewer/preview/qinwuyuan.ps1) to download the PowerShell script. - -
 param (
-    [string]$qinwuyuan_messageFilePath
-)
-$qinwuyuan_scriptPath = $PSScriptRoot
-$qinwuyuan_rootDrive1 = [System.IO.Path]::GetPathRoot($qinwuyuan_scriptPath).TrimEnd('\')
-if (-not $qinwuyuan_messageFilePath) {
-    $qinwuyuan_messageFilePath = "$qinwuyuan_rootDrive1\path\to\change\commit.txt"
-}
-$qinwuyuan_oldCommitFilePath = "$qinwuyuan_scriptPath\oldcommit.txt"
-if (-not (Test-Path $qinwuyuan_messageFilePath)) {
-    exit 1
-}
-if (-not (Test-Path .git)) {
-    exit 1
-}
-$qinwuyuan_newCommitMessage = Get-Content $qinwuyuan_messageFilePath -Raw
-$qinwuyuan_oldCommitMessage = if (Test-Path $qinwuyuan_oldCommitFilePath) {
-    Get-Content $qinwuyuan_oldCommitFilePath -Raw
-} else {
-    ""
-}
-if ($qinwuyuan_newCommitMessage -eq $qinwuyuan_oldCommitMessage) {
-    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
-    $qinwuyuan_commitMessage = @"
-https://avatars.githubusercontent.com/u/96548841?v=4&size=32">
-https://github.com/ChinaGodMan">
-  peoplecivilofdiligentservicememberGithub:ChinaGodMan
-
-(UTC+8) $qinwuyuan_currentDateTime 
-"@
-} else {
-    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
-    $qinwuyuan_commitMessage = $qinwuyuan_newCommitMessage -replace '\$qinwuyuan_currentDateTime', $qinwuyuan_currentDateTime
-}
-$qinwuyuan_currentBranch = git rev-parse --abbrev-ref HEAD
-if ($LASTEXITCODE -ne 0) {
-    exit 1
-}
-git add .
-git commit -m $qinwuyuan_commitMessage
-if ($LASTEXITCODE -ne 0) {
-    exit 1
-}
-git push origin $qinwuyuan_currentBranch --force
-if ($LASTEXITCODE -ne 0) {
-    exit 1
-}
-Copy-Item -Path $qinwuyuan_messageFilePath -Destination $qinwuyuan_oldCommitFilePath -Force
-
- - - -## Support - -- [Report Issues](https://github.com/ChinaGodMan/UserScripts/issues) -- [Project Homepage](https://github.com/ChinaGodMan/UserScripts) - - - -## License - -This script is licensed under the [MIT License](https://opensource.org/licenses/MIT). - -After: -![1.png](https://s2.loli.net/2024/08/30/lhJrcbzDdABY2pO.png) -Before: -![2.png](https://s2.loli.net/2024/08/30/56sANeoMWb7QRY2.png) - - - - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-commit-viewer/github-commit-viewer.user.js b/Script details/github-commit-viewer/github-commit-viewer.user.js deleted file mode 100644 index 04ed8ffc1..000000000 --- a/Script details/github-commit-viewer/github-commit-viewer.user.js +++ /dev/null @@ -1,364 +0,0 @@ -// ==UserScript== -// @name GitHub CommitMessage Html View -// @description This script converts commit messages on GitHub into HTML views for clearer visibility of commit details. It automatically transforms commit message lists, commit headers, and the latest commit information into HTML format, providing enhanced visual appeal and user experience. -// @name:zh-CN GitHub 提交信息显示网页视图 -// @description:zh-CN 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -// @name:ar GitHub إرسال عرض المعلومات على شبكة الإنترنت -// @description:ar هذا البرنامج النصي سوف GitHub معلومات التقديم على HTML منظر,لرؤية تفاصيل التقديم بشكل أكثر وضوحًا。وسوف يقدم تلقائيا قائمة المعلومات、يتم تحويل رأس الالتزام وأحدث معلومات الالتزام إلى HTML شكل,توفير تأثيرات بصرية أفضل وتجربة المستخدم。 -// @name:bg GitHub Изпращане на информация за показване на уеб изглед -// @description:bg Този скрипт ще GitHub Информацията за подаване на HTML изглед,за да видите по-ясно подробностите за подаването。Той автоматично ще изпрати списъка с информация、Заглавката на ангажимента и последната информация за ангажимент се преобразуват в HTML формат,Осигурете по-добри визуални ефекти и потребителско изживяване。 -// @name:cs GitHub Odeslat zobrazení informací na webu -// @description:cs Tento skript bude GitHub Informace o podání na HTML pohled,pro jasnější zobrazení podrobností o odeslání。Automaticky odešle informační seznam、Záhlaví odevzdání a informace o nejnovějším odevzdání se převedou na HTML Formát,Poskytujte lepší vizuální efekty a uživatelský zážitek。 -// @name:da GitHub Indsend informationsvisning webvisning -// @description:da Dette script vil GitHub Indsendelsesoplysningerne vedr HTML udsigt,for at se indsendelsesdetaljerne mere tydeligt。Det vil automatisk indsende informationslisten、Commit-headeren og seneste commit-information konverteres til HTML Format,Giv bedre visuelle effekter og brugeroplevelse。 -// @name:de GitHub Webansicht zur Anzeige von Informationen übermitteln -// @description:de Dieses Skript wird GitHub Die Einreichungsinformationen zu HTML Sicht,um die Einreichungsdetails klarer zu sehen。Die Informationsliste wird automatisch übermittelt、Der Commit-Header und die neuesten Commit-Informationen werden konvertiert HTML Format,Bieten Sie bessere visuelle Effekte und ein besseres Benutzererlebnis。 -// @name:el GitHub Υποβολή προβολής πληροφοριών ιστού -// @description:el Αυτό το σενάριο θα GitHub Οι πληροφορίες υποβολής για HTML θέα,για να δείτε πιο καθαρά τις λεπτομέρειες υποβολής。Θα υποβάλει αυτόματα τη λίστα πληροφοριών、Η κεφαλίδα δέσμευσης και οι πιο πρόσφατες πληροφορίες δέσμευσης μετατρέπονται σε HTML Σχήμα και διάταξις βιβλίου,Παρέχετε καλύτερα οπτικά εφέ και εμπειρία χρήστη。 -// @name:en GitHub Submit information display web view -// @description:en This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -// @name:eo GitHub Sendu informojn montri retejon -// @description:eo Ĉi tiu skripto faros GitHub La submeta informo pri HTML vido,por pli klare vidi prezentaĵojn。Ĝi aŭtomate sendos la informliston、La commit-kapo kaj plej novaj kommit-informoj estas konvertitaj al HTML Formato,Provizu pli bonajn vidajn efikojn kaj sperton de uzanto。 -// @name:es GitHub Enviar información mostrar vista web -// @description:es Este guión GitHub La información de presentación en HTML vista,para ver los detalles del envío más claramente。Enviará automáticamente la lista de información.、El encabezado de confirmación y la información de confirmación más reciente se convierten a HTML Formato,Proporcionar mejores efectos visuales y experiencia de usuario.。 -// @name:fi GitHub Lähetä tietonäytön verkkonäkymä -// @description:fi Tämä käsikirjoitus tulee GitHub Lähetystiedot osoitteessa HTML näkymä,nähdäksesi lähetyksen tiedot selkeämmin。Se lähettää tietoluettelon automaattisesti、Toimitusotsikko ja viimeisimmät toimitustiedot muunnetaan muotoon HTML Muoto,Tarjoa parempia visuaalisia tehosteita ja käyttökokemusta。 -// @name:fr GitHub Soumettre des informations, afficher la vue Web -// @description:fr Ce script sera GitHub Les informations de soumission sur HTML voir,pour voir plus clairement les détails de la soumission。Il soumettra automatiquement la liste d’informations、L’en-tête de validation et les dernières informations de validation sont convertis en HTML Format,Fournir de meilleurs effets visuels et une meilleure expérience utilisateur。 -// @name:he GitHub שלח תצוגת מידע באינטרנט -// @description:he התסריט הזה יהיה GitHub מידע ההגשה על HTML נוֹף,כדי לראות את פרטי ההגשה בצורה ברורה יותר。זה יגיש אוטומטית את רשימת המידע、כותרת ההתחייבות ופרטי ההתחייבות העדכניים ביותר מומרים ל HTML פוּרמָט,לספק אפקטים חזותיים וחווית משתמש טובים יותר。 -// @name:hr GitHub Pošaljite prikaz informacija na webu -// @description:hr Ova skripta će GitHub Informacije o podnošenju HTML pogled,da biste jasnije vidjeli detalje prijave。Automatski će poslati popis informacija、Zaglavlje predaje i najnovije informacije o predaji se pretvaraju u HTML Format,Omogućite bolje vizualne efekte i korisničko iskustvo。 -// @name:hu GitHub Információk beküldése webes nézet -// @description:hu Ez a script fog GitHub A benyújtási információk a HTML kilátás,hogy tisztábban lássák a benyújtás részleteit。Automatikusan elküldi az információs listát、A véglegesítési fejléc és a legutóbbi véglegesítési információ a következőre konvertálódik HTML Formátum,Jobb vizuális effektusok és felhasználói élmény biztosítása。 -// @name:id GitHub Kirim informasi menampilkan tampilan web -// @description:id Skrip ini akan melakukannya GitHub Informasi penyerahan pada HTML melihat,untuk melihat detail penyerahan lebih jelas。Ini secara otomatis akan mengirimkan daftar informasi、Header komit dan informasi komit terbaru dikonversi menjadi HTML Format,Memberikan efek visual dan pengalaman pengguna yang lebih baik。 -// @name:it GitHub Invia informazioni visualizzando la visualizzazione web -// @description:it Questo script lo farà GitHub Le informazioni sull’invio su HTML visualizzazione,per visualizzare più chiaramente i dettagli dell’invio。Invierà automaticamente l’elenco delle informazioni、Vengono convertite l’intestazione del commit e le informazioni sul commit più recente HTML Formato,Fornire effetti visivi ed esperienza utente migliori。 -// @name:ja GitHub 情報表示Webビューの送信 -// @description:ja このスクリプトは、 GitHub 投稿情報は、 HTML ビュー,提出物の詳細をより明確に確認するには。情報リストを自動的に送信します、コミットヘッダーと最新のコミット情報が変換されます。 HTML 形式,より優れた視覚効果とユーザーエクスペリエンスを提供する。 -// @name:ka GitHub ინფორმაციის ჩვენების ვებ ხედის გაგზავნა -// @description:ka ეს სკრიპტი იქნება GitHub წარდგენის შესახებ ინფორმაცია HTML ხედი,წარდგენის დეტალების უფრო ნათლად სანახავად。ის ავტომატურად წარადგენს ინფორმაციის სიას、commit header და უახლესი commit ინფორმაცია გარდაიქმნება HTML ფორმატი,უზრუნველყოს უკეთესი ვიზუალური ეფექტები და მომხმარებლის გამოცდილება。 -// @name:ko GitHub 정보 표시 웹뷰 제출 -// @description:ko 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 -// @name:nl GitHub Informatie verzenden webweergave weergeven -// @description:nl Dit script zal GitHub De indieningsinformatie op HTML weergave,om de details van de indiening duidelijker te zien。De informatielijst wordt automatisch verzonden、De commit-header en de laatste commit-informatie worden geconverteerd naar HTML Formaat,Zorg voor betere visuele effecten en gebruikerservaring。 -// @name:nb GitHub Send inn informasjonsvisning på nett -// @description:nb Dette skriptet vil GitHub Innsendingsinformasjonen på HTML utsikt,for å se innleveringsdetaljer tydeligere。Den vil automatisk sende inn informasjonslisten、Commit-headeren og siste commit-informasjon konverteres til HTML Format,Gi bedre visuelle effekter og brukeropplevelse。 -// @name:pl GitHub Prześlij informacje, aby wyświetlić widok sieciowy -// @description:pl Ten skrypt to zrobi GitHub Informacje o złożeniu dot HTML pogląd,aby wyraźniej zobaczyć szczegóły przesłania。Automatycznie prześle listę informacji、Nagłówek zatwierdzenia i informacje o ostatnim zatwierdzeniu są konwertowane na HTML Format,Zapewnij lepsze efekty wizualne i wygodę użytkownika。 -// @name:pt-BR GitHub Enviar informações exibir visualização da web -// @description:pt-BR Este roteiro irá GitHub As informações de submissão em HTML visualizar,para ver os detalhes do envio com mais clareza。Ele enviará automaticamente a lista de informações、O cabeçalho do commit e as informações do commit mais recente são convertidos para HTML Formatar,Fornece melhores efeitos visuais e experiência do usuário。 -// @name:ro GitHub Trimiteți informații afișați vizualizarea web -// @description:ro Acest script va GitHub Informațiile de depunere pe HTML vedere,pentru a vedea detaliile trimiterii mai clar。Acesta va trimite automat lista de informații、Antetul de comitere și cele mai recente informații de comitere sunt convertite în HTML Format,Oferă efecte vizuale și experiență utilizator mai bune。 -// @name:ru GitHub Отправить информацию, отобразить веб-просмотр -// @description:ru Этот сценарий будет GitHub Информация о подаче на HTML вид,чтобы более четко видеть детали отправки。Он автоматически отправит список информации、Заголовок фиксации и последняя информация о фиксации преобразуются в HTML Формат,Обеспечьте лучшие визуальные эффекты и удобство взаимодействия с пользователем.。 -// @name:sk GitHub Odoslať zobrazenie informácií na webe -// @description:sk Tento skript bude GitHub Informácie o predložení na HTML pohľad,aby ste jasnejšie videli podrobnosti odoslania。Automaticky odošle informačný zoznam、Hlavička odovzdania a najnovšie informácie o odovzdaní sa skonvertujú na HTML Formátovať,Poskytnite lepšie vizuálne efekty a používateľský zážitok。 -// @name:sr GitHub Пошаљите приказ информација веб приказ -// @description:sr Ова скрипта ће GitHub Информације о подношењу на HTML поглед,да бисте јасније видели детаље о подношењу。Аутоматски ће доставити листу информација、Заглавље урезивања и најновије информације о урезивању се конвертују у HTML Формат,Обезбедите боље визуелне ефекте и корисничко искуство。 -// @name:sv GitHub Skicka informationsvisning webbvy -// @description:sv Detta skript kommer GitHub Inlämningsinformationen på HTML se,för att se inlämningsdetaljer tydligare。Den kommer automatiskt att skicka informationslistan、Commit-huvudet och senaste commit-informationen konverteras till HTML Formatera,Ge bättre visuella effekter och användarupplevelse。 -// @name:th GitHub ส่งข้อมูลแสดงมุมมองเว็บ -// @description:th สคริปต์นี้จะ GitHub ข้อมูลการส่งเรื่องที่ HTML ดู,เพื่อดูรายละเอียดการส่งได้ชัดเจนยิ่งขึ้น。มันจะส่งรายการข้อมูลโดยอัตโนมัติ、ส่วนหัวการคอมมิตและข้อมูลการคอมมิตล่าสุดจะถูกแปลงเป็น HTML รูปแบบ,ให้เอฟเฟกต์ภาพและประสบการณ์ผู้ใช้ที่ดีขึ้น。 -// @name:tr GitHub Bilgi görüntüleme web görünümünü gönder -// @description:tr Bu komut dosyası GitHub Gönderim bilgileri HTML görüş,Gönderim ayrıntılarını daha net görmek için。Bilgi listesini otomatik olarak gönderecektir、Taahhüt başlığı ve en son taahhüt bilgileri şuna dönüştürülür: HTML Biçim,Daha iyi görsel efektler ve kullanıcı deneyimi sağlayın。 -// @name:ug GitHub ئۇچۇر كۆرسىتىش تور كۆرۈنۈشىنى يوللاڭ -// @description:ug بۇ قوليازما GitHub يوللاش ئۇچۇرى HTML كۆرۈش,تاپشۇرۇش تەپسىلاتلىرىنى تېخىمۇ ئېنىق كۆرۈش。ئۇ ئۇچۇر تىزىملىكىنى ئاپتوماتىك يوللايدۇ、ۋەدىگە مۇناسىۋەتلىك ماۋزۇ ۋە ئەڭ يېڭى ۋەدىلەر ئۇچۇرلىرىغا ئايلاندۇرۇلىدۇ HTML فورماتى,تېخىمۇ ياخشى كۆرۈش ئۈنۈمى ۋە ئىشلەتكۈچى تەجرىبىسى بىلەن تەمىنلەڭ。 -// @name:uk GitHub Відображення інформації в Інтернеті -// @description:uk Цей сценарій буде GitHub Інформація про подання HTML переглянути,щоб чіткіше бачити деталі подання。Він автоматично надішле список інформації、Заголовок фіксації та остання інформація про фіксацію перетворюються на HTML Формат,Забезпечте кращі візуальні ефекти та досвід користувача。 -// @name:vi GitHub Gửi thông tin hiển thị xem web -// @description:vi Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 -// @name:zh-TW GitHub 提交資料顯示網頁視圖 -// @description:zh-TW 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 -// @name:zh-HK GitHub 提交資料顯示網頁視圖 -// @description:zh-HK 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 -// @name:fr-CA GitHub Soumettre des informations, afficher la vue Web -// @description:fr-CA Ce script sera GitHub Les informations de soumission sur HTML voir,pour voir plus clairement les détails de la soumission。Il soumettra automatiquement la liste d’informations、L’en-tête de validation et les dernières informations de validation sont convertis en HTML Format,Fournir de meilleurs effets visuels et une meilleure expérience utilisateur。 -// @version 1.0.0.19 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 -// @match *://github.com/*/* -// @grant GM_registerMenuCommand -// @grant none -// @icon data:image/png;base64,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 -// @iconbak https://github.githubassets.com/pinned-octocat.svg -// @license MIT -// @source https://github.com/qinwuyuan-cn/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== -const selectors = { - commitList: { - value: '.react-directory-commit-message a', // 选择提交消息列表中的链接 - description: '选择仓库列表中的提交信息' - }, - commitListFound: false, - commitHeader: { - value: '.fgColor-muted > span[data-testid="latest-commit-html"]', // 选择最新提交的头部信息 - description: '选择仓库列表头部展开详细信息' - }, - commitHeaderScreen: { - value: 'span.Truncate-text[data-testid="latest-commit-html"]', // 头部小预览 - description: '选择头部预览小标题' - }, - commitLastTime: { - value: 'div.react-directory-commit-age', // 选择最新提交的头部信息 - description: '获取最新提交信息' - }, - commitHeaderIsRun: false, - commitHeaderFound: false, - commitHeaderScreenIsRun: false, - commitHeaderScreenFound: false, -} -let LastCommitText = "" -let LastCommitHref = "" -let wocaonima = null -function updateCommitMessageInDetails(selector) {//详情页, - const element = document.querySelector(selector) - if (!element) return - const textContent = element.textContent.trim() - if (!containsHTML(textContent)) return - if (wocaonima) { - element.innerHTML = wocaonima - } else { - element.innerHTML = textContent - } -} -function updateRepoHeaderExpandCommit(selector) {//头部展开 - const spanElements = document.querySelectorAll(selector) - spanElements.forEach(spanElement => { - const parentElement = spanElement.parentElement - const textContent = spanElement.textContent.trim() - const linkElement = spanElement.querySelector('a') - const hrefValue = linkElement.getAttribute('href') - if (containsHTML(textContent)) { - if (!LastCommitHref || !LastCommitText) { - spanElement.innerHTML = `` + textContent + `` - } else { - spanElement.innerHTML = `` + LastCommitText + `` - } - } - }) -} -// -function updateRepoHeaderScreenCommit(selector) { - const spanElements = document.querySelectorAll(selector) - spanElements.forEach(spanElement => { - const parentElement = spanElement.parentElement - const textContent = spanElement.textContent.trim() - const linkElement = spanElement.querySelector('a') - const hrefValue = linkElement.getAttribute('href') - if (containsHTML(textContent)) { - spanElement.addEventListener('click', () => { - wocaonima = spanElement.innerHTML - }) - if (!LastCommitHref || !LastCommitText) { - console.log("未通过点击跳转:", textContent) - spanElement.innerHTML = `` + textContent + `` - } else { - console.log("通过点击跳转", LastCommitText) - spanElement.innerHTML = `` + LastCommitText + `` - } - } - }) -} -function updateRepoListCommit(selector) { - const commitMessages = document.querySelectorAll(selector) - commitMessages.forEach(element => { - const nextElement = element.nextElementSibling - if (nextElement) ( - nextElement.remove() - ) - const titleContent = element.getAttribute("title") - const hrefValue = element.getAttribute("href") - if (titleContent) { - if (containsHTML(titleContent)) { - element.addEventListener('click', () => { - wocaonima = element.innerHTML - }) - element.innerHTML = `${titleContent}` - } - } - }) -} -function getLastTimeCommit(selector) { - const allElements = document.querySelectorAll(selector) - let latestElement = null - let latestDate = new Date(0) - allElements.forEach(div => { - const relativeTime = div.querySelector('relative-time') - if (relativeTime) { - const datetime = relativeTime.getAttribute('datetime') - if (datetime) { - const currentDate = new Date(datetime) - if (currentDate > latestDate) { - latestDate = currentDate - latestElement = div - } - } - } - }) - if (latestElement) { - const parentTd = latestElement.closest('td') - if (parentTd) { - const previousTd = parentTd.previousElementSibling - const linkElement = previousTd.querySelector(selectors.commitList.value) - LastCommitText = linkElement.getAttribute("title") - LastCommitHref = linkElement.getAttribute("href") - return { previousTd, linkElement } - } else { - return null - } - } else { - return null - } -} -function containsHTML(str) { - const pattern = /<\/?[a-z][\s\S]*>/i - return pattern.test(str) -} -/** - * 监视 DOM 变化,直到找到符合选择器的元素,然后执行指定的回调函数。 - * @param {string} selector - 要匹配的选择器。 - * @param {function} callback - 找到匹配元素后的回调函数。 - */ -function observeForElement(selector, callback, disconnect = true, DEBUG = "操作", isElementFound) { - isElementFound = false - const observer = new MutationObserver((mutationsList, observer) => { - mutationsList.forEach(mutation => { - if (mutation.type === 'childList') { - const element = document.querySelector(selector) - if (element) { - if (!isElementFound) { - console.log(`成功执行:${DEBUG} - ${selector} `) - isElementFound = true - callback(element) - if (disconnect) { - observer.disconnect() - } //else { console.log(`没有断开监听器器: ${DEBUG} - ${selector} `) } - } - } - } - }) - }) - observer.observe(document.body, { - childList: true, - subtree: true - }) - if (!disconnect) { - const removalObserver = new MutationObserver(mutationsList => { - mutationsList.forEach(mutation => { - mutation.removedNodes.forEach(node => { - const element = document.querySelector(selector) - if (!element) { - // console.log(`继续查找: ${DEBUG} ${selector}`) - isElementFound = false - } - }) - }) - }) - removalObserver.observe(document.body, { - childList: true, - subtree: true - }) - } -} -function observeForElement_______________________________(selector, callback) { - let isElementFound = false - const observer = new MutationObserver((mutationsList, observer) => { - mutationsList.forEach(mutation => { - if (mutation.type === 'childList' && !isElementFound) { - const element = document.querySelector(selector) - if (element) { - console.log("成功找到仓库列表中的提交信息元素") - isElementFound = true - callback(element)//留着以后用 - observer.disconnect() - } - } - }) - }) - observer.observe(document.body, { - childList: true, - subtree: true - }) -} -main() -watchUpdate() -function main() { - LastCommitText = "" - LastCommitHref = "" - observeForElement(selectors.commitList.value, function (element) { - updateRepoListCommit(selectors.commitList.value) - }, - true, - selectors.commitList.description, - selectors.commitListFound) - if (!selectors.commitHeaderIsRun) { - selectors.commitHeaderIsRun = true - observeForElement( - selectors.commitHeader.value, - function (element) { - getLastTimeCommit(selectors.commitLastTime.value)//从列表获取最新的提交信息,作为进入或返回目录使用 - updateRepoHeaderExpandCommit(selectors.commitHeader.value) - }, - false, - selectors.commitHeader.description, - selectors.commitHeaderFound - ) - } - selectors.commitHeaderScreenIsRun = false - if (!selectors.commitHeaderScreenIsRun) { - observeForElement( - selectors.commitHeaderScreen.value, - function (element) { - getLastTimeCommit(selectors.commitLastTime.value)//从列表获取最新的提交信息,作为进入或返回目录使用 - updateRepoHeaderScreenCommit(selectors.commitHeaderScreen.value)//头部预览 - }, - false, - selectors.commitHeaderScreen.description, - selectors.commitHeaderScreenIsRun - ) - } - //updateCommitMessageInDetails('.commit-desc') - const element = document.querySelector('.commit-title.markdown-title') - if (element) { - element.remove() - } - updateCommitMessageInDetails('.commit-desc') - //updateCommitMessageInDetails('.commit-title.markdown-title') - wocaonima = null - // -} -function watchUpdate() {//检查链接变化 - // 检测浏览器是否支持 MutationObserver - const MutationObserver = - window.MutationObserver || - window.WebKitMutationObserver || - window.MozMutationObserver - // 获取当前页面的 URL - const getCurrentURL = () => location.href - getCurrentURL.previousURL = getCurrentURL() - // 创建 MutationObserver 实例,监听 DOM 变化 - const observer = new MutationObserver((mutations, observer) => { - const currentURL = getCurrentURL() - // 如果页面的 URL 发生变化 - if (currentURL !== getCurrentURL.previousURL) { - getCurrentURL.previousURL = currentURL - console.log(`链接变化,正在启动监听器`) - setTimeout(() => { - main() - }, 500) - } - }) - // 配置 MutationObserver - const config = { - characterData: true, - subtree: true, - childList: true, - attributeFilter: ['value', 'placeholder', 'aria-label', 'data-confirm'], // 仅观察特定属性变化 - } - // 开始观察 document.body 的变化 - observer.observe(document.body, config) -} \ No newline at end of file diff --git a/Script details/github-device-authorization/README.md b/Script details/github-device-authorization/README.md deleted file mode 100644 index b057f85d1..000000000 --- a/Script details/github-device-authorization/README.md +++ /dev/null @@ -1,214 +0,0 @@ - -
- - - - - -
-

GitHub 自动确认设备授权

-

「 在GitHub授权页面自动输入授权码与自动确认。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ GitHub 自动确认设备授权 更新日志

-

📅 2024-09-18 08:50:32- Ver 1.0.0.0

-

新增: •仅仅处理授权码行为,方便自用罢了.

-
- -
- - - -# GitHub 自动确认设备授权 - - - -## 概述 - -该用户脚本旨在简化在 GitHub 授权页面的操作,通过自动填写授权码和确认操作,减少手动干预的需要。该脚本特别适用于在无法直接操作浏览器的场景中使用,例如自动化测试或远程操作。 -(自用脚本,方便自己在便携时使用) - - - -## 功能 - -- 自动填写授权码:从剪贴板读取授权码,并自动填写到授权页面的对应输入框中。 -- 自动提交授权:在确认授权页面自动点击授权按钮。 - - - -## 安装与使用 - -1. **安装**:点击上方绿色安装按钮进行安装. -2. **使用**: - - 访问 GitHub 设备授权页面时,脚本会自动运行。 - - 脚本会从剪贴板中读取授权码,并自动填写并提交表单。 - - - -## 脚本功能 - -- **自动填写授权码**:脚本会等待页面加载完成,然后从剪贴板读取授权码,拆分并填写到相应的输入框中。 -- **自动提交确认**:在确认页面,脚本会自动点击确认按钮,以完成授权操作。 - - - -## 注意事项 - -- 确保剪贴板中保存的是正确格式的授权码(形如 `XXXX-XXXX`)。 -- 脚本可能需要一些时间来识别页面元素并填写表单,因此请确保在使用时给予脚本足够的时间。 - - - -## 感谢 - -[LemonPupl](https://greasyfork.org/zh-CN/users/1274376)发布的脚本[GitHub Copilot automatically obtains GHU](https://greasyfork.org/scripts/489793) - - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - -## 许可证 - -此脚本采用 MIT 许可证,详情请见 [LICENSE](https://github.com/ChinaGodMan/UserScripts/blob/main/LICENSE)。 - - - -## 支持与反馈 - -- 如果遇到问题或有任何建议,请访问 [GitHub Issues 页面](https://github.com/ChinaGodMan/UserScripts/issues) 提交反馈。 - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-device-authorization/README_en.md b/Script details/github-device-authorization/README_en.md deleted file mode 100644 index 2704321b7..000000000 --- a/Script details/github-device-authorization/README_en.md +++ /dev/null @@ -1,202 +0,0 @@ - -
- - - - - -
-

GitHub Automatically confirm device authorization

-

「 existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ GitHub Automatically confirm device authorization Change log

-

📅 2024-09-18 08:50:32- Ver 1.0.0.0

-

New: •Only handle authorization code behavior,Just for personal use.

-
- -
- - - -# GitHub Automatic Device Authorization - - - -## Overview - -This user script aims to simplify the process on the GitHub authorization page by automatically filling in the authorization code and confirming the action, reducing the need for manual intervention. This script is particularly useful in scenarios where direct browser interaction is not possible, such as automated testing or remote operations. -(This is a personal script for convenience during portable use.) - - - -## Features - -- **Automatic Code Filling**: Reads the authorization code from the clipboard and automatically fills it into the corresponding input fields on the authorization page. -- **Automatic Submission**: Automatically clicks the confirm button on the authorization page. - - - -## Installation and Usage - -1. **Installation**: Click the green install button above to install the script. -2. **Usage**: - - The script will run automatically when you visit the GitHub device authorization page. - - The script will read the authorization code from the clipboard, automatically fill out the form, and submit it. - - - -## Script Functionality - -- **Automatic Code Filling**: The script waits for the page to load, then reads the authorization code from the clipboard, splits it, and fills it into the appropriate input fields. -- **Automatic Submission**: On the confirmation page, the script will automatically click the confirm button to complete the authorization process. - - - -## Notes - -- Ensure that the clipboard contains a correctly formatted authorization code (e.g., `XXXX-XXXX`). -- The script may need some time to recognize page elements and fill out the form, so please give it enough time to execute. - - - -## Thanks - -Thanks to [LemonPupl](https://greasyfork.org/zh-CN/users/1274376) for the script [GitHub Copilot automatically obtains GHU](https://greasyfork.org/scripts/489793). - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-device-authorization/github-device-authorization.user.js b/Script details/github-device-authorization/github-device-authorization.user.js deleted file mode 100644 index 2487cf40d..000000000 --- a/Script details/github-device-authorization/github-device-authorization.user.js +++ /dev/null @@ -1,149 +0,0 @@ -// ==UserScript== -// @name GitHub Automatically confirm device authorization -// @description existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -// @name:zh-CN GitHub 自动确认设备授权 -// @description:zh-CN 在GitHub授权页面自动输入授权码与自动确认。 -// @name:ar GitHub تأكيد ترخيص الجهاز تلقائيًا -// @description:ar يخرجGitHubتقوم صفحة التفويض بإدخال رمز التفويض تلقائيًا وتؤكده تلقائيًا.。 -// @name:bg GitHub Автоматично потвърждаване на оторизацията на устройството -// @description:bg съществуватGitHubСтраницата за оторизация автоматично въвежда кода за оторизация и автоматично го потвърждава.。 -// @name:cs GitHub Automaticky potvrdit autorizaci zařízení -// @description:cs existovatGitHubAutorizační stránka automaticky zadá autorizační kód a automaticky jej potvrdí.。 -// @name:da GitHub Bekræft automatisk enhedsgodkendelse -// @description:da eksistereGitHubAutorisationssiden indtaster automatisk autorisationskoden og bekræfter den automatisk.。 -// @name:de GitHub Geräteautorisierung automatisch bestätigen -// @description:de existierenGitHubAuf der Autorisierungsseite wird der Autorisierungscode automatisch eingegeben und automatisch bestätigt.。 -// @name:el GitHub Αυτόματη επιβεβαίωση εξουσιοδότησης συσκευής -// @description:el υπάρχωGitHubΗ σελίδα εξουσιοδότησης εισάγει αυτόματα τον κωδικό εξουσιοδότησης και τον επιβεβαιώνει αυτόματα.。 -// @name:en GitHub Automatically confirm device authorization -// @description:en existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -// @name:eo GitHub Aŭtomate konfirmu aparatan rajtigon -// @description:eo ekzistiGitHubLa rajtiga paĝo aŭtomate enigas la rajtigan kodon kaj aŭtomate konfirmas ĝin.。 -// @name:es GitHub Confirmar automáticamente la autorización del dispositivo -// @description:es existirGitHubLa página de autorización ingresa automáticamente el código de autorización y lo confirma automáticamente.。 -// @name:fi GitHub Vahvista automaattisesti laitteen valtuutus -// @description:fi olemassaGitHubValtuutussivu syöttää automaattisesti valtuutuskoodin ja vahvistaa sen automaattisesti.。 -// @name:fr GitHub Confirmer automatiquement l’autorisation de l’appareil -// @description:fr existerGitHubLa page d’autorisation saisit automatiquement le code d’autorisation et le confirme automatiquement.。 -// @name:he GitHub אשר באופן אוטומטי את הרשאת המכשיר -// @description:he לְהִתְקַיֵםGitHubדף ההרשאה מזין אוטומטית את קוד ההרשאה ומאשר אותו אוטומטית.。 -// @name:hr GitHub Automatski potvrdi autorizaciju uređaja -// @description:hr postojatiGitHubAutorizacijska stranica automatski unosi autorizacijski kod i automatski ga potvrđuje.。 -// @name:hu GitHub Az eszköz engedélyezésének automatikus megerősítése -// @description:hu létezikGitHubAz engedélyezési oldal automatikusan beírja az engedélyezési kódot és automatikusan megerősíti azt.。 -// @name:id GitHub Konfirmasikan otorisasi perangkat secara otomatis -// @description:id adaGitHubHalaman otorisasi secara otomatis memasukkan kode otorisasi dan secara otomatis mengonfirmasinya.。 -// @name:it GitHub Conferma automaticamente l’autorizzazione del dispositivo -// @description:it esistereGitHubLa pagina di autorizzazione inserisce automaticamente il codice di autorizzazione e lo conferma automaticamente.。 -// @name:ja GitHub デバイスの認証を自動的に確認する -// @description:ja 存在するGitHub認証ページでは、認証コードが自動的に入力され、自動的に確認されます。。 -// @name:ka GitHub ავტომატურად დაადასტურეთ მოწყობილობის ავტორიზაცია -// @description:ka არსებობსGitHubავტორიზაციის გვერდი ავტომატურად შეაქვს ავტორიზაციის კოდს და ავტომატურად ადასტურებს მას.。 -// @name:ko GitHub 장치 승인 자동 확인 -// @description:ko 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 -// @name:nl GitHub Bevestig automatisch de autorisatie van het apparaat -// @description:nl bestaanGitHubDe autorisatiepagina voert automatisch de autorisatiecode in en bevestigt deze automatisch.。 -// @name:nb GitHub Bekreft automatisk enhetsautorisasjon -// @description:nb eksistereGitHubAutorisasjonssiden legger automatisk inn autorisasjonskoden og bekrefter den automatisk.。 -// @name:pl GitHub Automatycznie potwierdź autoryzację urządzenia -// @description:pl istniećGitHubStrona autoryzacyjna automatycznie wprowadza kod autoryzacyjny i automatycznie go potwierdza.。 -// @name:pt-BR GitHub Confirmar automaticamente a autorização do dispositivo -// @description:pt-BR existirGitHubA página de autorização insere automaticamente o código de autorização e o confirma automaticamente.。 -// @name:ro GitHub Confirmați automat autorizarea dispozitivului -// @description:ro existaGitHubPagina de autorizare introduce automat codul de autorizare și îl confirmă automat.。 -// @name:ru GitHub Автоматически подтверждать авторизацию устройства -// @description:ru существоватьGitHubНа странице авторизации автоматически вводится код авторизации и автоматически его подтверждается.。 -// @name:sk GitHub Automaticky potvrdiť autorizáciu zariadenia -// @description:sk existujúGitHubAutorizačná stránka automaticky zadá autorizačný kód a automaticky ho potvrdí.。 -// @name:sr GitHub Аутоматски потврди ауторизацију уређаја -// @description:sr постојеGitHubСтраница за ауторизацију аутоматски уноси код за ауторизацију и аутоматски га потврђује.。 -// @name:sv GitHub Bekräfta automatiskt enhetsauktorisering -// @description:sv existeraGitHubAuktoriseringssidan anger automatiskt auktoriseringskoden och bekräftar den automatiskt.。 -// @name:th GitHub ยืนยันการอนุญาตอุปกรณ์โดยอัตโนมัติ -// @description:th มีอยู่GitHubหน้าการอนุญาตจะป้อนรหัสอนุญาตโดยอัตโนมัติและยืนยันโดยอัตโนมัติ。 -// @name:tr GitHub Cihaz yetkilendirmesini otomatik olarak onayla -// @description:tr var olmakGitHubYetkilendirme sayfası yetkilendirme kodunu otomatik olarak girer ve otomatik olarak onaylar.。 -// @name:ug GitHub ئۈسكۈنىنىڭ ھوقۇق بېرىشىنى ئاپتوماتىك جەزملەشتۈرۈڭ -// @description:ug مەۋجۇتGitHubھوقۇق بېتى ئاپتوماتىك ھالدا ھوقۇق كودىغا كىرىدۇ ۋە ئۇنى ئاپتوماتىك دەلىللەيدۇ.。 -// @name:uk GitHub Автоматичне підтвердження авторизації пристрою -// @description:uk існуютьGitHubСторінка авторизації автоматично вводить код авторизації та автоматично його підтверджує.。 -// @name:vi GitHub Tự động xác nhận ủy quyền thiết bị -// @description:vi hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 -// @name:zh-TW GitHub 自動確認設備授權 -// @description:zh-TW 在GitHub授權頁面自動輸入授權碼與自動確認。 -// @name:zh-HK GitHub 自動確認設備授權 -// @description:zh-HK 在GitHub授權頁面自動輸入授權碼與自動確認。 -// @name:fr-CA GitHub Confirmer automatiquement l’autorisation de l’appareil -// @description:fr-CA existerGitHubLa page d’autorisation saisit automatiquement le code d’autorisation et le confirme automatiquement.。 -// @author NingMengGuoRou .人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/png;base64,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 -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @version 1.0.0.0 -// @match https://github.com/login/device* -// @Created 2024-09-18 08:50:32 -// @modified 2024-09-18 08:50:32 -// ==/UserScript== -(function () { - 'use strict' - function waitForElement(selector, delay = 50, maxAttempts = 20) { - return new Promise((resolve, reject) => { - let attempts = 0 - const interval = setInterval(() => { - const element = document.querySelector(selector) - attempts++ - if (element) { - clearInterval(interval) - resolve(element) - } else if (attempts >= maxAttempts) { - clearInterval(interval) - reject(new Error(`Element ${selector} not found`)) - } - }, delay) - }) - } - async function fillAndSubmitCode() { - try { - const userCode = await navigator.clipboard.readText() - const codeParts = userCode.split('-') - if (codeParts.length !== 2) { - console.error("Invalid user code format.") - return - } - for (let i = 0; i < codeParts[0].length; i++) { - waitForElement(`#user-code-${i}`).then(el => el.value = codeParts[0][i]) - } - for (let i = 0; i < codeParts[1].length; i++) { - waitForElement(`#user-code-${i + 5}`).then(el => el.value = codeParts[1][i]) - } - waitForElement('input[type="submit"][name="commit"]').then(button => setTimeout(() => button.click(), 1000)) - } catch (error) { - console.error(error) - } - } - function autoSubmitFormOnConfirmation() { - window.addEventListener('load', () => { - waitForElement('form[action="/login/device/authorize"] button[name="authorize"][value="1"]') - .then(button => setTimeout(() => button.click(), 1000)) - .catch(error => console.error(error)) - }) - } - - if (document.querySelector('form[action="/login/device/select_account"]')) { - document.querySelector('form[action="/login/device/select_account"] input[type="submit"]').click() - } - - if (window.location.pathname.includes('/login/device')) { - fillAndSubmitCode() - } - if (window.location.pathname.includes('/login/device/confirmation')) { - autoSubmitFormOnConfirmation() - } -})() \ No newline at end of file diff --git a/Script details/github-file-list-beautifier-plus/README.md b/Script details/github-file-list-beautifier-plus/README.md deleted file mode 100644 index 0e253f8d8..000000000 --- a/Script details/github-file-list-beautifier-plus/README.md +++ /dev/null @@ -1,272 +0,0 @@ - -
- - - - - -
-

GitHub 文件列表美化器

-

「 GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ GitHub 文件列表美化器 更新日志

-

📅 2024/9/12 11:35 - Ver 4.1

-

新增: 增加了对文件增加图标,增加了自定义文件颜色和图标。

-
- -
- - - -# GitHub 文件列表美化器 - -## 简介 - -GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 - - - -## 功能 - -- **文件夹图标**:将文件夹图标替换为更直观的文件夹图标。 -- **自定义图标**:根据文件的扩展名或文件名,显示自定义的图标。 -- **图片文件预览**:对于图片文件,自动显示缩略图。 -- **颜色标记**:为不同类型的文件添加颜色,以便更快速地识别文件类型。 - - - -## 请注意: - -**本脚本目就是为了着色不同的文件类型,显示图标只是附带的,有需要 Github 显示图标的,建议下载** - -- `github-vscode-icons-updated2.0.3` -- `Material Icons for GitHub 1.8.19` - - - -## 安装 - -1. **安装 Tampermonkey 或 Greasemonkey 插件**: - - - [Tampermonkey](https://www.tampermonkey.net/)(支持 Chrome, Firefox, Edge, Opera 等浏览器) - - [Greasemonkey](https://www.greasespot.net/)(支持 Firefox) - -2. **添加脚本**: - - - 点击 安装到 Tampermonkey Greasemonkey 。 - -3. **脚本配置**: - - 脚本首次运行时会从指定 URL 加载颜色配置。如果无法加载配置,将使用默认设置。 - - - -## 使用 - -- 脚本会在 GitHub 页面加载时自动运行,处理文件列表中的文件图标。 -- 可以根据需要在 `localStorage` 或脚本设置中调整图标和颜色配置。 - - - -## 自定义配置说明 - -- 文件类型: - `"js": { - "color": "#f1c40f", - "icon": "javascript" -}, -"py": { - "color": "red", - "icon": "javascript" -}` -- 绝对名称:(用来显示图标的,暂时没添加绝对文件的自定义着色) - ` -"123.txt": { - "color": "red", - "icon": "javascript" -},` -- 默认从 vscode-material-icon-theme 获取图标: - ` "123.txt": { - "color": "red", - "icon": "javascript" -},` -- 从网络加载图标: - ` -"123.txt": { - "color": "red", - "icon": "https://www.1.com/1.png" -},` -- 从本地加载图标: - ` -"123.txt": { - "color": "red", - "icon": " data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAA....." -},` - - - - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - -## 兼容性 - -- **浏览器**:支持 Chrome、Firefox、Edge、Opera 和 Safari。 - - - -## 支持与反馈 - -- 如果遇到问题或有任何建议,请访问 [GitHub Issues 页面](https://github.com/ChinaGodMan/UserScripts/issues) 提交反馈。 - - - -## 授权 - -- 该脚本基于 [MIT 许可证](https://opensource.org/licenses/MIT) 开源。 - - - -## 贡献 - -- 本脚本由 [wOxxOm](https://greasyfork.org/zh-CN/users/2159) [GitHub file list beautifier](https://greasyfork.org/zh-CN/scripts/5982) 和 人民的勤务员 开发。 -- 更多信息请访问 [GitHub 项目主页](https://github.com/ChinaGodMan/UserScripts)。 - -![image](https://i.imgur.com/UuTzStC.png) -![dark](https://i.imgur.com/odYikhU.png) -![Snipaste_2024-09-12_12-03-25.png](https://s2.loli.net/2024/09/12/HCZDNa8EngxQJ4y.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-file-list-beautifier-plus/README_en.md b/Script details/github-file-list-beautifier-plus/README_en.md deleted file mode 100644 index c12f36225..000000000 --- a/Script details/github-file-list-beautifier-plus/README_en.md +++ /dev/null @@ -1,272 +0,0 @@ - -
- - - - - -
-

GitHub File list beautifier

-

「 GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ GitHub File list beautifier Change log

-

📅 2024/9/12 11:35 - Ver 4.1

-

New: Added icons for files,Added custom file colors and icons。

-
- -
- - - -# GitHub File list beautifier - -## Introduction - -GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 - - - -## Function - -- **folder icon**:Replace folder icons with more intuitive folder icons。 -- **Custom icon**:Based on file extension or file name,Show custom icons。 -- **Image file preview**:For image files,Automatically display thumbnails。 -- **Color marking**:Add colors to different types of files,to identify file types more quickly。 - - - -## please note: - -**This script is for colorizing different file types,Display icons are only included,in needGithubdisplay icon,Recommended download** - -- `github-vscode-icons-updated2.0.3` -- `Material Icons for GitHub 1.8.19` - - - -## Install - -1. **Install Tampermonkey or Greasemonkey plug-in**: - - - [Tampermonkey](https://www.tampermonkey.net/)(support Chrome, Firefox, Edge, Opera Wait for the browser) - - [Greasemonkey](https://www.greasespot.net/)(support Firefox) - -2. **Add script**: - - - Click install to Tampermonkey Greasemonkey 。 - -3. **Script placement**: - - The first time the script is run it will start from the specified URL Load color configuration。If the configuration cannot be loaded,Default settings will be used。 - - - -## use - -- The script will be in GitHub Run automatically when page loads,Handling file icons in file lists。 -- Can be used as needed `localStorage` Or adjust the icon and color configuration in the script settings。 - - - -## Custom configuration instructions - -- File type: - `"js": { - "color": "#f1c40f", - "icon": "javascript" -}, -"py": { - "color": "red", - "icon": "javascript" -}` -- absolute name:(used to display icons,Custom coloring of absolute files has not been added yet.) - ` -"123.txt": { - "color": "red", - "icon": "javascript" -},` -- Default fromvscode-material-icon-themeGet icon: - ` "123.txt": { - "color": "red", - "icon": "javascript" -},` -- Load icon from network: - ` -"123.txt": { - "color": "red", - "icon": "https://www.1.com/1.png" -},` -- Load icon from local: - ` -"123.txt": { - "color": "red", - "icon": " data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAA....." -},` - - - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - -## compatibility - -- **Browser**:support Chrome、Firefox、Edge、Opera and Safari。 - - - -## Support and feedback - -- If you encounter problems or have any suggestions,Please visit [GitHub Issues page](https://github.com/ChinaGodMan/UserScripts/issues) Submit feedback。 - - - -## Authorize - -- This script is based on [MIT license](https://opensource.org/licenses/MIT) Open source。 - - - -## contribute - -- Reason for the script [wOxxOm](https://greasyfork.org/zh-CN/users/2159) [GitHub file list beautifier](https://greasyfork.org/zh-CN/scripts/5982) and 人民的勤务员 develop。 -- For more information please visit [GitHub Project homepage](https://github.com/ChinaGodMan/UserScripts)。 - -![image](https://i.imgur.com/UuTzStC.png) -![dark](https://i.imgur.com/odYikhU.png) -![Snipaste_2024-09-12_12-03-25.png](https://s2.loli.net/2024/09/12/HCZDNa8EngxQJ4y.png) - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-file-list-beautifier-plus/colors.json b/Script details/github-file-list-beautifier-plus/colors.json deleted file mode 100644 index a0c12fb92..000000000 --- a/Script details/github-file-list-beautifier-plus/colors.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "js": { - "color": "#b07219", - "icon": "javascript" - }, - "license": { - "color": "red", - "icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iI2ZmNTcyMiIgZD0iTTQgNnYxNGEyIDIgMCAwIDAgMiAyaDEydjZsMy0yIDMgMnYtNmg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMlptMiAwaDh2Mkg2Wm0wIDRoNnYySDZabTAgNGg4djJINlptMTAgNkg2di0yaDEwWm04LTZ2NGwtMy0yLTMgMnYtNGwtNC0yIDQtMlY2bDMgMiAzLTJ2NC4ybDQgMS44WiIvPjwvc3ZnPg==" - }, - "jsx": { - "color": "#b07219", - "icon": "javascript" - }, - "ts": { - "color": "#007acc", - "icon": "typescript" - }, - "docs": { - "color": "#e67e22", - "icon": "typescript" - }, - "css": { - "color": "#e67e22", - "icon": "css" - }, - "html": { - "color": "#3498db", - "icon": "html" - }, - "md": { - "color": "#6e5494", - "icon": "markdown" - }, - "readme.md": { - "color": "#e67e22", - "icon": "markdown" - }, - "json": { - "color": "#e44b23", - "icon": "json" - }, - "xml": { - "color": "#e44b23", - "icon": "xml" - }, - "yml": { - "color": "#e44b23", - "icon": "yaml" - }, - "py": { - "color": "#3572a5", - "icon": "python" - }, - "java": { - "color": "#b07219", - "icon": "java" - }, - "c": { - "color": "#555555", - "icon": "c" - }, - "cpp": { - "color": "#f34b7d", - "icon": "cpp" - }, - "h": { - "color": "#f34b7d", - "icon": "h" - }, - "go": { - "color": "#00add8", - "icon": "go" - }, - "rb": { - "color": "#701516", - "icon": "ruby" - }, - "php": { - "color": "#4f5d95", - "icon": "php" - }, - "swift": { - "color": "#ffac45", - "icon": "swift" - }, - "pl": { - "color": "#0298c3", - "icon": "pl" - }, - "sh": { - "color": "#89e051", - "icon": "https://raw.githubusercontent.com/the-userr/GitHub-Icons/master/icons/Shell.svgl" - }, - "bat": { - "color": "#4eaa25", - "icon": "https://raw.githubusercontent.com/the-userr/GitHub-Icons/master/icons/CMD.png" - }, - "ps1": { - "color": "#012456", - "icon": "powershell" - }, - "ttf": { - "color": "#f39c12", - "icon": "'https://raw.githubusercontent.com/the-userr/GitHub-Icons/master/icons/TrueType.png" - }, - "exe": { - "color": "#f39c12", - "icon": "exe" - }, - "dll": { - "color": "#f39c12", - "icon": "dll" - }, - "apk": { - "color": "#4caf50", - "icon": "android" - }, - "img": { - "color": "#ff5722", - "icon": "image" - }, - "doc": { - "color": "#2e77c0", - "icon": "document" - }, - "zip": { - "color": "#9b59b6", - "icon": "zip" - }, - "rar": { - "color": "#9b59b6", - "icon": "zip" - }, - "7z": { - "color": "#9b59b6", - "icon": "zip" - }, - "tar": { - "color": "#9b59b6", - "icon": "zip" - }, - "gz": { - "color": "#9b59b6", - "icon": "zip" - }, - "bz2": { - "color": "#9b59b6", - "icon": "zip" - }, - "xz": { - "color": "#9b59b6", - "icon": "zip" - }, - "log": { - "color": "#7f8c8d", - "icon": "log" - }, - "yaml": { - "color": "#e44b23", - "icon": "yaml" - } -} \ No newline at end of file diff --git a/Script details/github-folder-downloader/README.md b/Script details/github-folder-downloader/README.md deleted file mode 100644 index 3d2e23219..000000000 --- a/Script details/github-folder-downloader/README.md +++ /dev/null @@ -1,189 +0,0 @@ - -
- - - - - -
-

GitHub文件夹下载

-

「 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ GitHub 文件夹下载 更新日志

-

📅 2024/8/28 09:46 - Ver 0.7.0.2

-

优化: 移出原脚本的检测链接发生变化的监听器,添加新的监听器用于支持在仓库主页跳转目录时显示按钮

-
-

📅 2024/8/28 04:21 - Ver 0.7

-

修复: 替换失效的选择器

-
- -
- - - - - -# GitHub Folder Downloader - - -### 描述 -GitHub 文件夹下载器为 GitHub 文件夹添加了一个下载按钮,使用户可以更轻松地从仓库中下载特定的文件夹。该按钮集成了两个外部工具:download-directory 和 DownGit,允许用户一键下载文件夹。 - - - -### 功能 -- 为 GitHub 文件夹添加下载按钮。 -- 提供使用 [download-directory](https://download-directory.github.io) 和 [DownGit](https://downgit.github.io) 下载文件夹的选项。 - - - -### 使用方法 -1. 导航到一个 GitHub 仓库。 -2. 打开仓库中的一个文件夹。 -3. 点击“下载文件夹”按钮,以查看下载文件夹的选项。 - - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - -### 修改说明 -修改自用户[Eric Kwok](https://greasyfork.org/zh-CN/users/220259) 的脚本 [GitHub 文件夹下载](https://greasyfork.org/scripts/434592 ) - -![2.png](https://s2.loli.net/2024/08/28/i3Ov9gj5aKIYSVR.png) -![1.png](https://s2.loli.net/2024/08/28/XiKjIu85TVBwzMa.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-folder-downloader/README_en.md b/Script details/github-folder-downloader/README_en.md deleted file mode 100644 index 7e0664dc5..000000000 --- a/Script details/github-folder-downloader/README_en.md +++ /dev/null @@ -1,190 +0,0 @@ - -
- - - - - -
-

GitHubFolder download

-

「 Add a download button,Allows easy downloading of specific GitHub folder。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ GitHub Folder download Change log

-

📅 2024/8/28 09:46 - Ver 0.7.0.2

-

optimization: Remove the listener for detecting link changes in the original script,Add a new listener to support displaying buttons when jumping to directories on the warehouse homepage

-
-

📅 2024/8/28 04:21 - Ver 0.7

-

repair: Replace broken selectors

-
- -
- - - - - -# GitHub Folder Downloader - - -### Description -GitHub Folder Downloader adds a download button for GitHub folders, making it easier to download specific folders from repositories. The button integrates with two external tools: download-directory and DownGit, allowing users to download folders with a single click. - - - -### Features -- Adds a download button to GitHub folders. -- Provides options to download using [download-directory](https://download-directory.github.io) and [DownGit](https://downgit.github.io). - - - -### Modifications -Modified from the script [GitHub artspiecesfolderDownload](https://greasyfork.org/scripts/434592) by user [Eric Kwok](https://greasyfork.org/users/220259). - - - - -### Usage -1. Navigate to a GitHub repository. -2. Open a folder in the repository. -3. Click on the "Download folder" button to see options for downloading the folder. - - -![2.png](https://s2.loli.net/2024/08/28/i3Ov9gj5aKIYSVR.png) -![1.png](https://s2.loli.net/2024/08/28/XiKjIu85TVBwzMa.png) - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-linguist-expand/README.md b/Script details/github-linguist-expand/README.md deleted file mode 100644 index fcadae842..000000000 --- a/Script details/github-linguist-expand/README.md +++ /dev/null @@ -1,212 +0,0 @@ - -
- - - - - - -
-

Github 代码语言列表显示全部

-

「 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ Github 代码语言列表显示全部 更新日志

-

📅 2024-09-24 04:33:03- Ver 1.0.0.0

-

修复: •修复元素失效问题
-新增: •允许设置 Token 访问自己的私人仓库
-新增: •允许在跳转其他仓库时,自动添加.

-
- -
- - - -## Github 代码语言列表显示全部脚本 - -该脚本用于扩展 Github 上的代码语言列表,展示每一种语言,而不是将小部分隐藏在“其他”下方。它允许用户查看代码库中所有使用的语言及其对应的百分比,并提供设置 GitHub Token 以访问私有库的功能。 - -### 安装步骤 - -**设置 Github Token**: - -- 如果你需要访问自己的私人仓库,可以输入 GitHub 的个人访问令牌(Personal Access Token)。 -- 如果你没有 Token,请前往 [GitHub Token 生成页面](https://github.com/settings/tokens/new?description=GitHub-Linguist-Expand-UserScript&scopes=repo) 创建一个新的 Token,并确保勾选“repo”权限。 - - **使用方法**: - -- 安装后,进入任意一个 GitHub 仓库页面,脚本会自动在页面上显示所有使用的语言和它们的百分比。 -- 在语言栏中点击任意语言名称,即可查看该语言对应的代码部分。 - -### 脚本功能 - -- **展示所有语言**: - 默认情况下,GitHub 只显示主要的语言,并将小比例的语言归类为“其他”。该脚本会取消这种限制,显示每个使用的语言以及其对应的百分比。 - -- **语言颜色标识**: - 每种语言都有一个对应的颜色标识,脚本通过 GitHub 官方的 [语言颜色表](https://github.com/github/linguist) 来确定语言的颜色,并在页面上显示。 - -- **支持多语言**: - 脚本支持多种语言,包括中文、英文、德文、西班牙文等,界面内容会根据用户的浏览器语言自动切换。 - -### 示例 - -在代码库页面中,你可以看到如下展示: - -- 一个完整的语言条形图,显示各语言的占比。 -- 每种语言的彩色标识,点击语言名称可以直接搜索该语言的代码。 - -### 项目地址 - -- [Github 用户脚本仓库](https://github.com/ChinaGodMan/UserScripts) -- 如果您想报告此脚本的问题或建议新功能,请在[此处](https://github.com/ChinaGodMan/UserScripts/issues)创建新问题 - -### 贡献者 - -- [Davoleo](https://greasyfork.org/zh-CN/users/857225) [Linguist Expand](https://greasyfork.org/scripts/442856) 脚本的初始创建者. - -### 技术细节 - -- **API 使用**: - 该脚本通过 GitHub API 来获取仓库的语言信息,并动态渲染语言条形图和语言标签。 -- **兼容性**: - 该脚本兼容主流浏览器,包括 Chrome、Firefox、Edge、Opera 和 Safari。 - -![1.png](https://s2.loli.net/2024/09/24/NlaYfsZdcW7hTr5.png) - - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-linguist-expand/README_en.md b/Script details/github-linguist-expand/README_en.md deleted file mode 100644 index 5ead8387d..000000000 --- a/Script details/github-linguist-expand/README_en.md +++ /dev/null @@ -1,212 +0,0 @@ - -
- - - - - - -
-

Github List of code languages ​​show all

-

「 Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ Github List of code languages ​​show all Change log

-

📅 2024-09-24 04:33:03- Ver 1.0.0.0

-

repair: •Fix element failure issue
-New: •Allow setting Token Access your own private repository
-New: •Allowed when jumping to other warehouses,automatically added.

-
- -
- - - -## Github Code language list shows all scripts - -This script is used to extend Github List of code languages ​​on,show every language,Instead of hiding small parts in“other”below。It allows users to view all languages ​​used in the code base and their corresponding percentages,and provide settings GitHub Token to access the functionality of a private library。 - -### Installation steps - -**set up Github Token**: - -- If you need to access your own private repository,Can enter GitHub personal access token(Personal Access Token)。 -- if you don’t have Token,Please go to [GitHub Token Generate page](https://github.com/settings/tokens/new?description=GitHub-Linguist-Expand-UserScript&scopes=repo) create a new Token,and make sure to check“repo”Permissions。 - - **How to use**: - -- After installation,Enter any GitHub Warehouse page,The script automatically displays all used languages ​​and their percentages on the page。 -- Click on any language name in the language bar,You can view the code part corresponding to the language。 - -### Script function - -- **Show all languages**: - By default,GitHub Only show primary languages,and classify a small proportion of languages ​​as“other”。This script will remove this restriction,Shows each language used and its corresponding percentage。 - -- **Language color identification**: - Each language has a corresponding color identifier,Script passed GitHub official [Language color table](https://github.com/github/linguist) to determine the language color,and display on the page。 - -- **Support multiple languages**: - Script supports multiple languages,including chinese、English、German、Spanish etc.,The interface content will automatically switch according to the user’s browser language。 - -### Example - -In the repository page,You can see the following display: - -- A complete language bar chart,Show the proportion of each language。 -- Colorful logos for each language,Click on the language name to directly search for the code of that language。 - -### Project address - -- [Github User script repository](https://github.com/ChinaGodMan/UserScripts) -- If you want to report a problem with this script or suggest new features,please[here](https://github.com/ChinaGodMan/UserScripts/issues)Create new question - -### Contributor - -- [Davoleo](https://greasyfork.org/zh-CN/users/857225) [Linguist Expand](https://greasyfork.org/scripts/442856) Initial creator of the script. - -### technical details - -- **API use**: - The script passes GitHub API To obtain the language information of the warehouse,and dynamically render language bar charts and language labels。 -- **compatibility**: - This script is compatible with mainstream browsers,include Chrome、Firefox、Edge、Opera and Safari。 - -![1.png](https://s2.loli.net/2024/09/24/NlaYfsZdcW7hTr5.png) - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-raw-file-plus/README.md b/Script details/github-raw-file-plus/README.md deleted file mode 100644 index 4776dbfd9..000000000 --- a/Script details/github-raw-file-plus/README.md +++ /dev/null @@ -1,198 +0,0 @@ - -
- - - - - -
-

GitHub下载单文件和复制文件URL

-

「 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ GitHub下载单文件和复制文件URL 更新日志

-

📅 2024/8/28 05:09 - Ver 2.2

-

新增: 增加下载功能。

-
- -
- - - - - -# Github 复制原始文件 URL 与下载文件 - - - -## 描述 -此用户脚本在 GitHub 文件行末尾添加按钮,以便用户复制原始文件 URL 和下载文件。按钮包括“复制原始文件 URL”按钮和“下载文件”按钮。 - - - -## 功能 -- 在每个文件行末尾添加“复制原始文件 URL”按钮。 -- 添加“下载文件”按钮,允许用户下载原始文件。 -- 复制按钮将原始文件 URL 复制到剪贴板。 -- 下载按钮触发文件下载。 - - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - -## 兼容性 -- 适用于 GitHub 网站。 - - - -## 许可证 -MIT 许可证 - - - -## 支持 -如有问题,请访问 [支持页面](https://github.com/ChinaGodMan/UserScripts/issues)。 - - - -## 感谢 - -脚本修改自用户 **[Kamikaze](https://greasyfork.org/zh-CN/users/928242)** 的脚本 [Button to copy the raw file URL | Github](https://greasyfork.org/scripts/453489) 感谢原作者 **Kamikaze** 的**勤劳**与**智慧** - -![Snipaste_2024-08-28_05-14-50.png](https://s2.loli.net/2024/08/28/QolM627BS8Avd9b.png) - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-raw-file-plus/README_en.md b/Script details/github-raw-file-plus/README_en.md deleted file mode 100644 index 30fcee482..000000000 --- a/Script details/github-raw-file-plus/README_en.md +++ /dev/null @@ -1,206 +0,0 @@ - -
- - - - - -
-

GitHubDownload single files and copy filesURL

-

「 Add button at the end of each file line,to copy the original file URL and download files 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ GitHubDownload single files and copy filesURL Change log

-

📅 2024/8/28 05:09 - Ver 2.2

-

New: Add download function。

-
- -
- - - - - -# Github Copy Raw File URL and Download File - - - -## Description -This userscript adds buttons at the end of each file line on GitHub to allow users to copy the raw file URL and download the file. The buttons include "Copy Raw File URL" and "Download File". - - - -## Features -- Adds a "Copy Raw File URL" button at the end of each file line. -- Adds a "Download File" button that triggers the download of the raw file. -- The copy button copies the raw file URL to the clipboard. -- The download button initiates the file download. - - - -## Installation Steps -1. Install the Tampermonkey extension. -2. Create a new script and paste the script code. -3. Save and enable the script. - - - -## Compatibility -- Works on GitHub website. - - - -## License -MIT License - - - -## Support -For issues, visit the [support page](https://github.com/ChinaGodMan/UserScripts/issues). - - - -## grateful - -The script is modified from user **[Kamikaze](https://greasyfork.org/zh-CN/users/928242)**’s script [Button to copy the raw file URL | Github](https://greasyfork.org/scripts/453489) Thanks to the original The **hard work** and **wisdom** of the author **Kamikaze** - -![Snipaste_2024-08-28_05-14-50.png](https://s2.loli.net/2024/08/28/QolM627BS8Avd9b.png) - - - - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-raw-file-plus/github-raw-file-plus.user.js b/Script details/github-raw-file-plus/github-raw-file-plus.user.js deleted file mode 100644 index cd5ef54bf..000000000 --- a/Script details/github-raw-file-plus/github-raw-file-plus.user.js +++ /dev/null @@ -1,226 +0,0 @@ -// ==UserScript== -// @name Github Copy Raw File URL and Download File -// @name:zh-CN Github 复制原始文件 URL 与下载文件 -// @description:zh-CN 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -// @name:ar Github نسخ الملف الأصلي URL مع تنزيل الملفات -// @description:ar زر إضافة في نهاية كل سطر ملف,لنسخ الملف الأصلي URL وتحميل الملفات -// @name:bg Github Копирайте оригиналния файл URL с файлове за изтегляне -// @description:bg Бутон за добавяне в края на всеки файлов ред,за да копирате оригиналния файл URL и изтегляне на файлове -// @name:cs Github Zkopírujte původní soubor URL se staženými soubory -// @description:cs Tlačítko Přidat na konci každého řádku souboru,pro zkopírování původního souboru URL a stahovat soubory -// @name:da Github Kopiér den originale fil URL med download filer -// @description:da Tilføj knap i slutningen af ​​hver fillinje,for at kopiere den originale fil URL og download filer -// @name:de Github Originaldatei kopieren URL mit Download-Dateien -// @description:de Schaltfläche „Hinzufügen“ am Ende jeder Dateizeile,um die Originaldatei zu kopieren URL und Dateien herunterladen -// @name:el Github Αντιγραφή αρχικού αρχείου URL με λήψη αρχείων -// @description:el Κουμπί προσθήκης στο τέλος κάθε γραμμής αρχείου,για να αντιγράψετε το αρχικό αρχείο URL και λήψη αρχείων -// @name:en Github Copy original file URL with download files -// @description:en Add button at the end of each file line,to copy the original file URL and download files -// @name:eo Github Kopiu originalan dosieron URL kun elŝutaj dosieroj -// @description:eo Aldoni butonon ĉe la fino de ĉiu dosierlinio,por kopii la originalan dosieron URL kaj elŝuti dosierojn -// @name:es Github Copiar archivo original URL con archivos de descarga -// @description:es Botón Agregar al final de cada línea de archivo,para copiar el archivo original URL y descargar archivos -// @name:fi Github Kopioi alkuperäinen tiedosto URL lataustiedostojen kanssa -// @description:fi Lisää-painike jokaisen tiedostorivin lopussa,kopioidaksesi alkuperäisen tiedoston URL ja ladata tiedostoja -// @name:fr Github Copier le fichier original URL avec des fichiers à télécharger -// @description:fr Ajouter un bouton à la fin de chaque ligne de fichier,pour copier le fichier original URL et télécharger des fichiers -// @name:he Github העתק את הקובץ המקורי URL עם קבצים להורדה -// @description:he כפתור הוסף בסוף כל שורת קובץ,כדי להעתיק את הקובץ המקורי URL ולהוריד קבצים -// @name:hr Github Kopiraj izvornu datoteku URL s datotekama za preuzimanje -// @description:hr Dodaj gumb na kraju svakog retka datoteke,za kopiranje izvorne datoteke URL i preuzimanje datoteka -// @name:hu Github Eredeti fájl másolása URL letölthető fájlokkal -// @description:hu Hozzáadás gomb minden fájlsor végén,az eredeti fájl másolásához URL és töltsön le fájlokat -// @name:id Github Salin file asli URL dengan file unduhan -// @description:id Tombol Tambah di akhir setiap baris file,untuk menyalin file asli URL dan mengunduh file -// @name:it Github Copia il file originale URL con file scaricabili -// @description:it Pulsante Aggiungi alla fine di ogni riga del file,per copiare il file originale URL e scaricare file -// @name:ja Github 元のファイルをコピーする URL ダウンロードファイル付き -// @description:ja 各ファイル行の末尾にある「追加」ボタン,元のファイルをコピーするには URL そしてファイルをダウンロードする -// @name:ka Github დააკოპირეთ ორიგინალი ფაილი URL ჩამოტვირთვის ფაილებით -// @description:ka დაამატეთ ღილაკი თითოეული ფაილის ხაზის ბოლოს,ორიგინალური ფაილის კოპირება URL და ჩამოტვირთეთ ფაილები -// @name:ko Github 원본 파일 복사 URL 다운로드 파일 포함 -// @description:ko 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 -// @name:nl Github Kopieer origineel bestand URL met downloadbestanden -// @description:nl Knop Toevoegen aan het einde van elke bestandsregel,om het originele bestand te kopiëren URL en bestanden downloaden -// @name:nb Github Kopier originalfilen URL med nedlastingsfiler -// @description:nb Legg til-knapp på slutten av hver fillinje,for å kopiere originalfilen URL og last ned filer -// @name:pl Github Skopiuj oryginalny plik URL z plikami do pobrania -// @description:pl Dodaj przycisk na końcu każdej linii pliku,aby skopiować oryginalny plik URL i pobierz pliki -// @name:pt-BR Github Copiar arquivo original URL com download de arquivos -// @description:pt-BR Botão Adicionar no final de cada linha do arquivo,para copiar o arquivo original URL e baixar arquivos -// @name:ro Github Copiați fișierul original URL cu fișiere descărcate -// @description:ro butonul Adaugă la sfârșitul fiecărei linii de fișier,pentru a copia fișierul original URL și descărcați fișiere -// @name:ru Github Скопировать исходный файл URL с загрузкой файлов -// @description:ru Добавить кнопку в конце каждой строки файла,скопировать исходный файл URL и скачать файлы -// @name:sk Github Skopírujte pôvodný súbor URL so stiahnutými súbormi -// @description:sk Tlačidlo Pridať na konci každého riadku súboru,na skopírovanie pôvodného súboru URL a sťahovať súbory -// @name:sr Github Копирајте оригиналну датотеку URL са датотекама за преузимање -// @description:sr Дугме Додај на крају сваке линије датотеке,да копирате оригиналну датотеку URL и преузимање датотека -// @name:sv Github Kopiera originalfilen URL med nedladdningsfiler -// @description:sv Lägg till-knappen i slutet av varje filrad,för att kopiera originalfilen URL och ladda ner filer -// @name:th Github คัดลอกไฟล์ต้นฉบับ URL พร้อมดาวน์โหลดไฟล์ -// @description:th เพิ่มปุ่มที่ท้ายแต่ละบรรทัดไฟล์,เพื่อคัดลอกไฟล์ต้นฉบับ URL และดาวน์โหลดไฟล์ -// @name:tr Github Orijinal dosyayı kopyala URL indirme dosyalarıyla -// @description:tr Her dosya satırının sonuna ekle düğmesi,orijinal dosyayı kopyalamak için URL ve dosyaları indir -// @name:ug Github ئەسلى ھۆججەتنى كۆچۈرۈڭ URL چۈشۈرۈش ھۆججىتى بىلەن -// @description:ug ھەر بىر ھۆججەت قۇرنىڭ ئاخىرىغا كۇنۇپكا قوشۇڭ,ئەسلى ھۆججەتنى كۆچۈرۈش URL ھۆججەتلەرنى چۈشۈرۈڭ -// @name:uk Github Скопіюйте вихідний файл URL з файлами для завантаження -// @description:uk Кнопка «Додати» в кінці кожного рядка файлу,щоб скопіювати вихідний файл URL і завантажити файли -// @name:vi Github Sao chép tập tin gốc URL với các tập tin tải về -// @description:vi Nút thêm vào cuối mỗi dòng tập tin,để sao chép tập tin gốc URL và tải về các tập tin -// @name:zh-TW Github 複製原始文件 URL 與下載文件 -// @description:zh-TW 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 -// @name:zh-HK Github 複製原始文件 URL 與下載文件 -// @description:zh-HK 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 -// @name:fr-CA Github Copier le fichier original URL avec des fichiers à télécharger -// @description:fr-CA Ajouter un bouton à la fin de chaque ligne de fichier,pour copier le fichier original URL et télécharger des fichiers -// @description Add buttons at the end of each file line to copy the raw file URL and download the file -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 2.2.0.22 -// @author Kamikaze (https://github.com/Kamiikaze) ,人民的勤务员 -// @match https://github.com/* -// @icon data:image/png;base64,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 -// @iconbak https://github.githubassets.com/pinned-octocat.svg -// @run-at document-ready -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - - -// Need an Interval to detect path changes on github tree one-pager -// Define the number of seconds -const scanInterval = 2 - - -const waitForFilelist = setInterval(() => { - let fileListContainer = document.querySelector("div.Box > div.js-details-container.Details div") || document.querySelector("table") - let fileList = [] - let isTable = false - - if (fileListContainer.tBodies) { - fileList = fileListContainer.tBodies[0].children - isTable = true - } else { - fileList = fileListContainer.children - } - - if (fileList < 1) return - - appendButtons(fileList, isTable) - -}, scanInterval * 1000) - -function appendButtons(fileList, isTable = false) { - let fileUrl = "" - let rawFileUrl = "" - for (let i = 0; i < fileList.length; i++) { - let file = fileList[i] - - if (file.classList.contains("cp-btn-rdy")) continue - - file.classList.add("cp-btn-rdy") - - if (!isTable) { - if ( - file.classList.contains("sr-only") || - file.childElementCount !== 4 - ) continue - - fileUrl = file.querySelector('div:nth-child(2) .js-navigation-open') - .href - } else { - if (i === 0) continue - - if ( - file.classList.contains("sr-only") - ) continue - - - fileUrl = file.querySelector("a") - .href - file = file.querySelector("td:nth-child(4) > div") - } - //alert(fileUrl) - // Dont add button if its a folder - if (!fileUrl.includes("/blob/")) continue - - rawFileUrl = fileUrl.replace('/blob/', '/raw/') - file.style = "display: flex; justify-content: flex-end;" - file.append(creatyCopyButton(rawFileUrl)) - file.append(creatyDownButton(rawFileUrl)) - } -}; - -function creatyCopyButton(copyText) { - const copy2clipboard = ` - - - ` - - const copyButton = document.createElement('div') - copyButton.setAttribute('role', 'gridcell') - copyButton.style = "margin-left: 10px; display: inline;" - copyButton.innerHTML = copy2clipboard - copyButton.children[0].value = copyText - copyButton.children[0].style = "cursor: pointer;" - - return copyButton -} -function creatyDownButton(copyText) { - const copy2clipboard = ` - - - -` - - const copyButton = document.createElement('div') - copyButton.setAttribute('role', 'gridcell') - copyButton.style = "margin-left: 10px; display: inline;" - copyButton.innerHTML = copy2clipboard - copyButton.children[0].value = copyText - copyButton.children[0].style = "cursor: pointer;" - copyButton.addEventListener('click', () => { - // window.location.href = copyText; - downloadFile(copyText, getFilenameFromUrl(copyText)) - }) - return copyButton -} -function downloadFile(url, filename) { - var xhr = new XMLHttpRequest() - xhr.open('GET', url, true) - xhr.responseType = 'blob' - xhr.onload = function () { - if (xhr.status === 200) { - var blob = xhr.response - var objectUrl = window.URL.createObjectURL(blob) - var a = document.createElement('a') - a.href = objectUrl - a.download = filename // 设置下载文件名 - document.body.appendChild(a) - a.click() - window.URL.revokeObjectURL(objectUrl) // 清理 object URL - document.body.removeChild(a) // 清理 DOM - } - } - xhr.send() -} -function getFilenameFromUrl(url) { - if (typeof url !== 'string' || url.trim() === '') { - logMessage('getFilenameFromUrl', 'URL无效,默认文件名download', false) - return 'download' // 返回一个默认的文件名 - } - var lastSlashIndex = url.lastIndexOf('/') - if (lastSlashIndex === -1 || lastSlashIndex === url.length - 1) { - logMessage('getFilenameFromUrl', 'URL格式无效缺少文件名,默认文件名download', false) - return 'download' // 返回一个默认的文件名 - } - var filenameWithExtension = url.substring(lastSlashIndex + 1) - var decodedFilename = decodeURIComponent(filenameWithExtension) - decodedFilename = decodedFilename.replace(/%20/g, '_') // 替换所有的 %20 为下划线 - return decodedFilename -} \ No newline at end of file diff --git a/Script details/github-repo-size-view/Change history/0.1.3.0github-repo-size-view.user.js b/Script details/github-repo-size-view/Change history/0.1.3.0github-repo-size-view.user.js deleted file mode 100644 index 11bdd87f1..000000000 --- a/Script details/github-repo-size-view/Change history/0.1.3.0github-repo-size-view.user.js +++ /dev/null @@ -1,424 +0,0 @@ -// ==UserScript== -// @name Github Repo Size+ -// @name:zh-CN Github 仓库大小 -// @description:zh-CN 在 github 搜索和存储库页面上的存储库名称旁边添加存储库大小 -// @name:ar Github حجم المستودع -// @description:ar يخرج github أضف حجم المستودع بجوار اسم المستودع في صفحات البحث والمستودع -// @name:bg Github Размер на склада -// @description:bg съществуват github Добавете размер на хранилището до името на хранилището на страниците за търсене и хранилище -// @name:cs Github Velikost skladu -// @description:cs existovat github Přidejte velikost úložiště vedle názvu úložiště na stránkách vyhledávání a úložiště -// @name:da Github Lagerstørrelse -// @description:da eksistere github Tilføj lagerstørrelse ud for lagernavn på søge- og lagersider -// @name:de Github Lagergröße -// @description:de existieren github Fügen Sie auf Such- und Repository-Seiten neben dem Repository-Namen die Repository-Größe hinzu -// @name:el Github Μέγεθος αποθήκης -// @description:el υπάρχω github Προσθέστε μέγεθος αποθετηρίου δίπλα στο όνομα χώρου αποθήκευσης στις σελίδες αναζήτησης και αποθετηρίου -// @name:en Github Warehouse size -// @description:en exist github Add repository size next to repository name on search and repository pages -// @name:eo Github Grando de magazeno -// @description:eo ekzisti github Aldonu deponejan grandecon apud la nomo de deponejo sur serĉo kaj deponejo paĝoj -// @name:es Github Tamaño del almacén -// @description:es existir github Agregue el tamaño del repositorio junto al nombre del repositorio en las páginas de búsqueda y repositorio -// @name:fi Github Varaston koko -// @description:fi olemassa github Lisää arkiston koko arkiston nimen viereen haku- ja arkistosivuilla -// @name:fr Github Taille de l’entrepôt -// @description:fr exister github Ajouter la taille du référentiel à côté du nom du référentiel sur les pages de recherche et du référentiel -// @name:he Github גודל המחסן -// @description:he לְהִתְקַיֵם github הוסף גודל מאגר ליד שם המאגר בדפי החיפוש והמאגר -// @name:hr Github Veličina skladišta -// @description:hr postojati github Dodajte veličinu repozitorija pored naziva repozitorija na stranicama pretraživanja i repozitorija -// @name:hu Github Raktár mérete -// @description:hu létezik github Adja hozzá a lerakat méretét a lerakat neve mellett a keresési és lerakatoldalakon -// @name:id Github Ukuran gudang -// @description:id ada github Tambahkan ukuran repositori di sebelah nama repositori pada halaman pencarian dan repositori -// @name:it Github Dimensioni del magazzino -// @description:it esistere github Aggiungi la dimensione del repository accanto al nome del repository nelle pagine di ricerca e del repository -// @name:ja Github 倉庫のサイズ -// @description:ja 存在する github 検索ページとリポジトリ ページでリポジトリ名の横にリポジトリ サイズを追加します -// @name:ka Github საწყობის ზომა -// @description:ka არსებობს github საძიებო და საცავის გვერდებზე საცავის სახელის გვერდით დაამატეთ საცავის ზომა -// @name:ko Github 창고 규모 -// @description:ko 존재하다 github 검색 및 저장소 페이지의 저장소 이름 옆에 저장소 크기 추가 -// @name:nl Github Grootte van magazijn -// @description:nl bestaan github Voeg de repositorygrootte toe naast de repositorynaam op zoek- en repositorypagina’s -// @name:nb Github Lagerstørrelse -// @description:nb eksistere github Legg til depotstørrelse ved siden av depotnavnet på søke- og depotsidene -// @name:pl Github Wielkość magazynu -// @description:pl istnieć github Dodaj rozmiar repozytorium obok nazwy repozytorium na stronach wyszukiwania i repozytorium -// @name:pt-BR Github Tamanho do armazém -// @description:pt-BR existir github Adicione o tamanho do repositório próximo ao nome do repositório nas páginas de pesquisa e do repositório -// @name:ro Github Dimensiunea depozitului -// @description:ro exista github Adăugați dimensiunea depozitului lângă numele depozitului pe paginile de căutare și depozit -// @name:ru Github Размер склада -// @description:ru существовать github Добавьте размер репозитория рядом с именем репозитория на страницах поиска и репозитория. -// @name:sk Github Veľkosť skladu -// @description:sk existujú github Pridajte veľkosť úložiska vedľa názvu úložiska na stránkach vyhľadávania a úložiska -// @name:sr Github Величина магацина -// @description:sr постоје github Додајте величину спремишта поред имена спремишта на страницама претраге и спремишта -// @name:sv Github Lagerstorlek -// @description:sv existera github Lägg till förvarsstorlek bredvid förvarets namn på sök- och förvarssidor -// @name:th Github ขนาดคลังสินค้า -// @description:th มีอยู่ github เพิ่มขนาดที่เก็บถัดจากชื่อที่เก็บในหน้าการค้นหาและที่เก็บ -// @name:tr Github Depo boyutu -// @description:tr var olmak github Arama ve depo sayfalarında depo adının yanına depo boyutunu ekleyin -// @name:ug Github ئامبارنىڭ چوڭلۇقى -// @description:ug مەۋجۇت github ئىزدەش ۋە ئامبار بېتىدىكى ئامبار نامىنىڭ يېنىغا ئامبار چوڭلۇقى قوشۇڭ -// @name:uk Github Розмір складу -// @description:uk існують github Додайте розмір сховища поруч із назвою сховища на сторінках пошуку та сховища -// @name:vi Github Kích thước kho -// @description:vi hiện hữu github Thêm kích thước kho lưu trữ bên cạnh tên kho lưu trữ trên các trang tìm kiếm và kho lưu trữ -// @name:zh-TW Github 倉庫大小 -// @description:zh-TW 在 github 搜尋和儲存庫頁面上的儲存庫名稱旁邊新增儲存庫大小 -// @name:zh-HK Github 倉庫大小 -// @description:zh-HK 在 github 搜尋和儲存庫頁面上的儲存庫名稱旁邊新增儲存庫大小 -// @name:fr-CA Github Taille de l’entrepôt -// @description:fr-CA exister github Ajouter la taille du référentiel à côté du nom du référentiel sur les pages de recherche et du référentiel -// @namespace https://github.com/ChinaGodMan/UserScripts -// @description Adds the repo size next to the repo name on github search and repo pages -// @version 0.1.3.0 -// @author mshll & 人民的勤务员 -// @match *://github.com/search* -// @match *://github.com/*/* -// @match *://github.com/*?tab=repositories* -// @grant none -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_addStyle -// @grant GM_registerMenuCommand -// @grant none -// @icon data:image/png;base64,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 -// @iconbak https://github.githubassets.com/pinned-octocat.svg -// @license MIT -// @source https://github.com/qinwuyuan-cn/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== -"use strict" -const translate = (function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const translations = { - 'en': { - save: 'Save', - cancel: 'Cancel', - modaltitle: 'Set GitHub Token', - description: 'Enter your GitHub personal access token with "repo" scope.', - githubtokeninput: 'Enter your GitHub personal access token', - newtoken: 'Click here to create a new token', - warncheckbox: ' Inactive Development Warning', - menu: 'Set GitHub Token', - renderWarning: 'WARNING: repo has not received an update in 1+ year(s)', - renderCaution: 'Caution: repo has not received an update in 6+ months', - confirm: 'You have not entered a Token, confirm to clear the GitHub Token?', - }, 'zh-CN': { - save: '保存', - cancel: '取消', - modaltitle: '设置 GitHub 令牌', - description: '请输入您的 GitHub 个人访问令牌,需具备 "repo" 权限。', - githubtokeninput: '请输入您的 GitHub 个人访问令牌', - newtoken: '点击此处创建新的令牌', - warncheckbox: ' 非活跃开发警告', - menu: '设置 GitHub 令牌', - renderWarning: '警告:该仓库在 1 年以上未更新', - renderCaution: '注意:该仓库在 6 个月以上未更新', - confirm: '你没有输入Token,确认清空GitHub Token?', - }, - 'zh-TW': { - save: '保存', - cancel: '取消', - modaltitle: '設定 GitHub 令牌', - description: '請輸入您的 GitHub 個人訪問令牌,需具備 "repo" 權限。', - githubtokeninput: '請輸入您的 GitHub 個人訪問令牌', - newtoken: '點擊此處創建新的令牌', - warncheckbox: ' 非活躍開發警告', - menu: '設定 GitHub 令牌', - renderWarning: '警告:該倉庫在 1 年以上未更新', - renderCaution: '注意:該倉庫在 6 個月以上未更新', - confirm: '你沒有輸入Token,確認清空GitHub Token?', - }, - 'vi': { - save: 'Lưu', - cancel: 'Hủy', - modaltitle: 'Đặt Token GitHub', - description: 'Nhập token truy cập cá nhân GitHub của bạn với phạm vi "repo".', - githubtokeninput: 'Nhập token truy cập cá nhân GitHub của bạn', - newtoken: 'Nhấn vào đây để tạo token mới', - warncheckbox: ' Cảnh báo phát triển không hoạt động', - menu: 'Đặt Token GitHub', - renderWarning: 'CẢNH BÁO: kho lưu trữ đã không nhận được cập nhật trong hơn 1 năm', - renderCaution: 'Cảnh báo: kho lưu trữ đã không nhận được cập nhật trong hơn 6 tháng', - confirm: 'Bạn chưa nhập Token, xác nhận xóa GitHub Token?', - }, - 'ja': { - save: '保存', - cancel: 'キャンセル', - modaltitle: 'GitHubトークンの設定', - description: '「repo」スコープを持つGitHub個人アクセストークンを入力してください。', - githubtokeninput: 'GitHub個人アクセストークンを入力してください', - newtoken: '新しいトークンを作成するにはここをクリックしてください', - warncheckbox: ' 非アクティブ開発警告', - menu: 'GitHubトークンの設定', - renderWarning: '警告:リポジトリは1年以上更新されていません', - renderCaution: '注意:リポジトリは6ヶ月以上更新されていません', - confirm: 'トークンが入力されていません。GitHubトークンをクリアしてもよろしいですか?', - }, - 'ko': { - save: '저장', - cancel: '취소', - modaltitle: 'GitHub 토큰 설정', - description: '“repo” 범위를 가진 GitHub 개인 액세스 토큰을 입력하세요.', - githubtokeninput: 'GitHub 개인 액세스 토큰을 입력하세요', - newtoken: '여기를 클릭하여 새 토큰을 만드세요', - warncheckbox: ' 비활성 개발 경고', - menu: 'GitHub 토큰 설정', - renderWarning: '경고: 이 저장소는 1년 이상 업데이트되지 않았습니다', - renderCaution: '주의: 이 저장소는 6개월 이상 업데이트되지 않았습니다', - confirm: '토큰을 입력하지 않았습니다. GitHub 토큰을 지우시겠습니까?', - }, - } - const getTranslations = (lang) => translations[lang] || translations['en'] - return new Proxy({}, { - get(target, prop) { - const lang = userLang - const strings = getTranslations(lang) - return strings[prop] || translations['en'][prop] - } - }) -}()) -//! Generate a new public access token from https://github.com/settings/tokens and insert it here -//*Note: to be able to see the size of your private repos, you need to select the `repo` scope when generating the token -let TOKEN = GM_getValue('githubToken', "") -let WARNING = GM_getValue('warn', true) -GM_addStyle(` - .modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000;} - .modal-content{background:white;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 15px rgba(0,0,0,0.2);position:relative;} - .modal-title{margin:0 0 10px 0;font-size:20px;} - .modal-description{margin-bottom:20px;font-size:14px;color:#666;} - .modal-description a{color:#007bff;text-decoration:underline;} - #github-token-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;margin-bottom:20px;font-size:14px;} - #save-token{background-color:#28a745;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;margin-right:10px;} - #cancel-token{background-color:#dc3545;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;} -`) -function createModal() { - const modalHTML = ` - - ` - const modalContainer = document.createElement('div') - modalContainer.innerHTML = modalHTML - document.body.appendChild(modalContainer) - const input = document.getElementById('github-token-input') - const warn = document.getElementById('warn') - warn.checked = GM_getValue('warn', true) - input.value = GM_getValue('githubToken', '') - document.getElementById('save-token').addEventListener('click', () => { - const token = input.value.trim() - GM_setValue('warn', warn.checked) - WARNING = warn.checked - if (token) { - GM_setValue('githubToken', token) - modalContainer.remove() - TOKEN = token - } else { - const userConfirmed = confirm(translate("confirm"))//提示是否删除 - if (userConfirmed) { - GM_setValue('githubToken', token) - modalContainer.remove() - TOKEN = token - } - } - }) - document.getElementById('cancel-token').addEventListener('click', () => modalContainer.remove()) -} -GM_registerMenuCommand(translate.menu, function () { - createModal() -}) -const getPageType = () => { - const { pathname, search } = window.location - const params = new URLSearchParams(search) - const [, username, repo] = pathname.split("/") - const q = params.get("q")?.toLocaleLowerCase() - const type = params.get("type")?.toLocaleLowerCase() - if (window.location.pathname.split('/').pop() === "repositories") return "list-view-container" - if (window.location.href.includes("?tab=repositories")) return "user-repositories" - if (username && repo) return "repo" - if (q && type === "code") return "code_search" - if (q) return "search" -} -const addSizeToRepos = () => { - const pageType = getPageType() - // Get the repo selector based on the page type - let repoSelector - switch (pageType) { - case "repo"://仓库详情界面 - repoSelector = "#repository-container-header strong a" - break - case "list-view-container"://ORG下的仓库列表 - repoSelector = 'div[data-testid="list-view-item-title-container"] h4 a' - break - case "user-repositories"://用户资料页面的仓库TAB - repoSelector = '#user-repositories-list h3 a' - break - case "search"://搜索 - repoSelector = 'div[data-testid="results-list"] .search-title a' - break - case "code_search"://代码搜索 - repoSelector = 'div[data-testid="results-list"] .search-title a' - break - default: - return - } - function extractPath(input) { - const thirdSlashIndex = input.indexOf('/', input.indexOf('/', input.indexOf('/') + 1) + 1) - if (thirdSlashIndex !== -1) { - return input.substring(0, thirdSlashIndex) - } - return input - } - // Get all the repo links - document.querySelectorAll(repoSelector).forEach(async (elem) => { - // Get json data from github api to extract the size - const tkn = TOKEN - var href = elem.getAttribute("href") - href = extractPath(href) - console.log(href) - const headers = tkn ? { authorization: `token ${tkn}` } : {} - const jsn = await ( - await fetch(`https://api.github.com/repos${href}`, { - headers: headers, - }) - ).json() - if (repoSelector == "#repository-container-header strong a" && WARNING) { - checkCommitDate(jsn.pushed_at) - } - // If JSON failed to load, skip - if (jsn.message) return - // Get parent element to append the size to - let parent = elem.parentElement - if (pageType === "repo") { - parent = elem.parentElement.parentElement - } - // Create the size container - let sizeContainer = parent.querySelector(`#mshll-repo-size`) - if (sizeContainer === null) { - sizeContainer = document.createElement("span") - sizeContainer.id = "mshll-repo-size" - sizeContainer.classList.add("Label", "Label--info", "v-align-middle", "ml-1") - sizeContainer.setAttribute("title", "Repository size") - sizeContainer.innerText = "-" - // Create the size icon - let sizeSVG = document.createElementNS("http://www.w3.org/2000/svg", "svg") - sizeSVG.setAttribute("aria-hidden", "true") - sizeSVG.setAttribute("viewBox", "-4 -4 22 22") - sizeSVG.setAttribute("width", "16") - sizeSVG.setAttribute("height", "16") - sizeSVG.setAttribute("fill", "currentColor") - sizeSVG.setAttribute("data-view-component", "true") - sizeSVG.classList.add("octicon", "octicon-file-directory", "mr-1") - let sizeSVGPath = document.createElementNS("http://www.w3.org/2000/svg", "path") - sizeSVGPath.setAttribute("fill-rule", "evenodd") - sizeSVGPath.setAttribute("d", "M1 3.5c0-.626.292-1.165.7-1.59.406-.422.956-.767 1.579-1.041C4.525.32 6.195 0 8 0c1.805 0 3.475.32 4.722.869.622.274 1.172.62 1.578 1.04.408.426.7.965.7 1.591v9c0 .626-.292 1.165-.7 1.59-.406.422-.956.767-1.579 1.041C11.476 15.68 9.806 16 8 16c-1.805 0-3.475-.32-4.721-.869-.623-.274-1.173-.62-1.579-1.04-.408-.426-.7-.965-.7-1.591Zm1.5 0c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 5.205 6.353 5.5 8 5.5c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55 0-.133-.058-.318-.282-.551-.227-.237-.591-.483-1.101-.707C11.102 1.795 9.647 1.5 8 1.5c-1.646 0-3.101.295-4.118.742-.508.224-.873.471-1.1.708-.224.232-.282.417-.282.55Zm0 4.5c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 9.705 6.353 10 8 10c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55V5.724c-.241.15-.503.286-.778.407C11.475 6.68 9.805 7 8 7c-1.805 0-3.475-.32-4.721-.869a6.15 6.15 0 0 1-.779-.407Zm0 2.225V12.5c0 .133.058.318.282.55.227.237.592.484 1.1.708 1.016.447 2.471.742 4.118.742 1.647 0 3.102-.295 4.117-.742.51-.224.874-.47 1.101-.707.224-.233.282-.418.282-.551v-2.275c-.241.15-.503.285-.778.406-1.247.549-2.917.869-4.722.869-1.805 0-3.475-.32-4.721-.869a6.327 6.327 0 0 1-.779-.406Z") - sizeSVG.appendChild(sizeSVGPath) - // Convert the size to human readable - const sizes = ["B", "KB", "MB", "GB", "TB"] - const size = jsn.size * 1024 // Github API returns size in KB so convert to bytes - let i = parseInt(Math.floor(Math.log(size) / Math.log(1024))) - const humanReadableSize = (size / Math.pow(1024, i)).toFixed(1) + " " + sizes[i] - // Insert the size into the size container - sizeContainer.innerHTML = `${humanReadableSize}` - sizeContainer.prepend(sizeSVG) - // Insert the size container into the DOM - if (pageType === "code_search") { - parent.style.direction = 'ltr' - } - parent.appendChild(sizeContainer) - } - }) -} -window.addSizeToRepos = addSizeToRepos -// Add the size to the repos on the page -//addSizeToRepos() -window.onload = function () { - addSizeToRepos() -} -// Watch for URL changes -let lastUrl = location.href -new MutationObserver(() => { - const url = location.href - if (url !== lastUrl) { - lastUrl = url - setTimeout(function () { - //NOTE - 此处增加延时了,就这样得了 - addSizeToRepos() - }, 1500) - } -}).observe(document, { subtree: true, childList: true }) -function displayMessage(el) { - document - .querySelector("#js-repo-pjax-container") - .insertAdjacentElement("beforebegin", el) -} -function renderWarning() { - const banner = document.createElement("div") - banner.id = "zh-banner-warning" - banner.setAttribute( - "style", - ` - background-color: red; - height: 100px; - margin-bottom: 20px; - display: flex; - justify-content: center; - align-items: center; - color: white; - font-size: 36px; - ` - ) - banner.textContent = translate.renderWarning - displayMessage(banner) -} -function renderCaution() { - const banner = document.createElement("div") - banner.id = "zh-banner-warning" - banner.setAttribute( - "style", - ` - background-color: yellow; - height: 50px; - margin-bottom: 20px; - display: flex; - justify-content: center; - align-items: center; - font-size: 24px; - ` - ) - banner.textContent = translate.renderCaution - displayMessage(banner) -} -function checkCommitDate(datetimeString) { - if (document.querySelector("#zh-banner-warning")) return - const date = new Date(datetimeString) - const daysSinceLastCommit = (Date.now() - date.getTime()) / 1000 / 60 / 60 / 24 - if (daysSinceLastCommit > 365) { - renderWarning() - } else if (daysSinceLastCommit > 182.5) { - renderCaution() - } else { - /* noop */ - } -} diff --git a/Script details/github-sort-by-date/README.md b/Script details/github-sort-by-date/README.md deleted file mode 100644 index c028ac16d..000000000 --- a/Script details/github-sort-by-date/README.md +++ /dev/null @@ -1,180 +0,0 @@ - -
- - - - - -
-

GitHub Sort by Date

-

「 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - - -# GitHub 按日期排序 - -此用户脚本将 GitHub 仓库中的文件自动按日期降序排列,方便查看最新更新的文件。 - - - -## 特性 - -- 页面加载时自动按更新日期排序文件。 -- 适用于所有 GitHub 仓库。 - - - -## 使用 -- 脚本将在页面加载时自动按日期排序文件,无需手动干预。 - - - - -> ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - - - - -## 修改来源 -作者[androidcn]( https://greasyfork.org/zh-CN/users/18158)的脚本[Github 按文件更新日期排序]( https://greasyfork.org/scripts/492514),感谢作者的勤劳智慧 - -![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/github-sort-by-date/README_en.md b/Script details/github-sort-by-date/README_en.md deleted file mode 100644 index 3e1c5c9c0..000000000 --- a/Script details/github-sort-by-date/README_en.md +++ /dev/null @@ -1,179 +0,0 @@ - -
- - - - - -
-

GitHub Sort by Date

-

「 Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - - -# GitHub Sort by date - -This userscript will GitHub Files in the warehouse are automatically sorted in descending order by date,Conveniently view the latest updated files。 - - - -## characteristic - -- Automatically sort files by updated date when page loads。 -- Applies to all GitHub storehouse。 - - - -## use -- Script will automatically sort files by date on page load,No manual intervention required。 - - - -## Modify source -author[androidcn]( https://greasyfork.org/zh-CN/users/18158)script[Github Sort by file update date]( https://greasyfork.org/scripts/492514),FeelingThanksauthorofdiligentlaborwisdomWisdom -![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) - - - - - - -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/github-sort-by-date/README_ko.md b/Script details/github-sort-by-date/README_ko.md deleted file mode 100644 index 604c0573a..000000000 --- a/Script details/github-sort-by-date/README_ko.md +++ /dev/null @@ -1,183 +0,0 @@ - -
- - - - - -
-

GitHub Sort by Date

-

「 창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - - -# GitHub 날짜별로 정렬 - -이 사용자 스크립트는 GitHub 창고에 있는 파일은 날짜별로 내림차순으로 자동 정렬됩니다.,최신 업데이트 파일을 편리하게 확인하세요。 - - - -## 특성 - -- 페이지가 로드될 때 업데이트된 날짜별로 파일을 자동으로 정렬합니다.。 -- 모두에게 적용됩니다 GitHub 창고。 - - - -## 사용 -- 스크립트는 페이지 로드 시 날짜별로 파일을 자동으로 정렬합니다.,수동 개입이 필요하지 않습니다.。 - - - -## 소스 수정 -작가[androidcn]( https://greasyfork.org/zh-CN/users/18158)적각본[Github 파일 업데이트 날짜별로 정렬]( https://greasyfork.org/scripts/492514),느낌감사해요작가~의성실한노동지혜지혜 -![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) - - -## 만들다사용돕다돕다 - - -## 돕다 - - - - -> ### 🔍당신은 찾고있을 수 있습니다GitHub관련 스크립트 -> - [**GitHub정보 표시 제출HTML**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 -> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。 -> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다 “다른” 아래에 -> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 -> - [**GitHub접는 사람下载**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 文件夹。 -> - [**GitHub단일 파일 다운로드 및 파일 복사URL**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 -> - [**🤠 Github 어시스턴트 강화 창고 전시 크기 비활성 개발 경고 창고 내 빠른 점프用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 존재하다Github창고 보기 및 검색 시 창고 크기 표시 ,비활성 개발 경고,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 - - - - - - - -## 돕다 - - 권장 브라우저 및 스크립트 관리자: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **사용자 스크립트 설치 방법에 대해 더 알고 싶다면,[나를 클릭하세요](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)그래픽 교육 보기!** - -

더 많은 사용자 스크립트 / -맨 위로 돌아가기↑

- - - - - - - -### 모든 게시 스크립트 보기 - - - - -> ### 🔍당신은 찾고있을 수 있습니다 ChatGPT관련 스크립트 -> - [**ChatGPT코드 글꼴 크기 감소**](https://greasyfork.org/scripts/505209): 허락하다 ChatGPT 코드 글꼴 크기가 작아집니다. -> - [**ChatGPT 聊天코드 복사단추**](https://greasyfork.org/scripts/509598): 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“复制代码”按钮 -> - [**ChatGPT 캐릭터 카운터**](https://greasyfork.org/scripts/506166): 添加一문자计数器到输入框,로 제한됨 32732 문자。(ChatGPT 한도는 32732 个字符。) -> - [**ChatGPT 자체 메시지 및 최대 너비 축소**](https://greasyfork.org/scripts/504901): 귀하가 보낸 긴 메시지를 자동으로 접습니다.,화면 공간 절약。채팅 창의 최대 너비를 설정할 수 있습니다.,긴 메시지가 지정된 범위를 초과하지 않도록 유지。 - - - -> ### 🔍당신은 찾고있을 수 있습니다 웹 관련 스크립트 -> - [**웹 페이지 작성 클립 버전 권한 관리자**](https://greasyfork.org/scripts/497403): 편집된 버전에서 웹페이지가 표시되는 것을 금지합니다.,출시용 녹색,빨간색 금지,주황색 임시 방향 -> - [**승강기CSDN로그인복사限制**](https://greasyfork.org/scripts/505207): 엿 먹어라 CSDN 登录复制,로그인하지 않고 코드 상자 내용 복사 -> - [**화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요**](https://greasyfork.org/scripts/507036): 웹 페이지 테이블의 모든 열에 색상 그라데이션 미화를 자동으로 적용합니다.. -> - [**웹페이지에서 키워드 강조표시+(추천하다)**](https://greasyfork.org/scripts/498906): 웹페이지의 텍스트 강조표시 -> - [**웹 텍스트 강조 표시_미니 버전**](https://greasyfork.org/scripts/498905): 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 -> - [**작은 창 미리보기**](https://greasyfork.org/scripts/504880): 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 -> - [**링크 밑줄 제거**](https://greasyfork.org/scripts/498625): 웹 링크에서 밑줄 제거 -> - [**위아래로 작은 스크롤 버튼**](https://greasyfork.org/scripts/497251): 페이지 오른쪽에 상하 스크롤 버튼 추가 -> - [**원터치 상하 버튼**](https://greasyfork.org/scripts/500255): 다음에서 수정됨Greasyfork사용자 스크립트 웹 페이지에 상단 및 하단 버튼 추가,긴 페이지의 상단 또는 하단으로 빠르게 이동할 수 있습니다.。 아래로 스크롤할 때 버튼 색상 변경 추가,3몇 초 내에 스크롤이 없으면 자동으로 중지됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 GitHub관련 스크립트 -> - [**GitHub정보 표시 제출HTML**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 -> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。 -> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다 “다른” 아래에 -> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 -> - [**GitHub접는 사람下载**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 文件夹。 -> - [**GitHub단일 파일 다운로드 및 파일 복사URL**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 -> - [**🤠 Github 어시스턴트 강화 창고 전시 크기 비활성 개발 경고 창고 내 빠른 점프用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 존재하다Github창고 보기 및 검색 시 창고 크기 표시 ,비활성 개발 경고,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 - - - -> ### 🔍당신은 찾고있을 수 있습니다 Google관련 스크립트 -> - [**Google 고급 검색**](https://greasyfork.org/scripts/502652): 이것은 Google 고급 검색 양식에 대한 사용자 스크립트 추가。페이지 상단에 숨길 수 있는 고급 검색 양식을 추가합니다.,보다 정확하게 정보를 검색할 수 있습니다.。 -> - [**Google 특정 사이트 검색 및 차단**](https://greasyfork.org/scripts/500262): 검색 엔진 결과에서 특정 사이트 차단,사용자가 원치 않는 검색 결과를 필터링하도록 지원。 사용자 정의 입력 차단 사이트。체재-zhihu -baidu Google 검색 콘텐츠를 차단하는 데 사용됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 GreasyFork관련 스크립트 -> - [**GreasyFork향상에 적합**](https://greasyfork.org/scripts/497317): 추가할 링크에 적합한 스크립트 세부정보 페이지가 추가됩니다.,웹페이지 복사,타이어 검색 -> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. -> - [**GreaysFork 향상시키다 WebHook동기화 설정**](https://greasyfork.org/scripts/506717): 이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가하세요.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 -> - [**GreasyFork 스크립트 등급 표시**](https://greasyfork.org/scripts/501119): 스크립트 목록에 평가 점수 추가 -> - [**GreasyFork 고급 검색**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 상적 각본 -> - [**GreasyFork 네비게이션 바향상시키다**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,사용자 목록 추가,사용자 콘솔 등 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 -> - [**Greasyfork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 -> - [**Script Finder그리스 원숭이 스크립트 찾기**](https://greasyfork.org/scripts/498904): Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 성인 각본 -> - [**MiSSAV자동 로그인**](https://greasyfork.org/scripts/505325): 발각 MisssAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -> - [**MissAV컬렉션 관리자**](https://greasyfork.org/scripts/497682): miss재생목록 백업,사진 다운로드 및 비디오 정보 저장 지원.로컬 웹페이지 내보내기 수출 지원webdav -> - [**TissAV자동 로그인**](https://greasyfork.org/scripts/506528): 발각 TissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -> - [**JableTV자동 로그인**](https://greasyfork.org/scripts/506730): 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 자동 번역 -> - [**외국어 터미네이터**](https://greasyfork.org/scripts/504890): 중국어가 아닌 문자 인식,길이가 그 이상인 경우 5 그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그럼 중국어로 바꾸세요,접근 가능해야 함google회로망 -> - [**웹페이지 번역——중국어로 자동 번역됨**](https://greasyfork.org/scripts/505208): 중국어가 아닌 웹페이지의 오른쪽 하단 모서리를 제공합니다.(왼쪽 하단으로 조정 가능)추가하다 google 번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 - - -
- - - diff --git a/Script details/github-sort-by-date/README_vi.md b/Script details/github-sort-by-date/README_vi.md deleted file mode 100644 index 7bce0616e..000000000 --- a/Script details/github-sort-by-date/README_vi.md +++ /dev/null @@ -1,183 +0,0 @@ - -
- - - - - -
-

GitHub Sort by Date

-

「 Thay đổi cách sắp xếp file danh sách kho theo thứ tự ngày giảm dần,Xem thuận tiện các tập tin cập nhật mới nhất。 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - - -# GitHub Sắp xếp theo ngày - -Bản mô tả người dùng này sẽ GitHub Các file trong kho được tự động sắp xếp theo thứ tự giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 - - - -## đặc trưng - -- Tự động sắp xếp tệp theo ngày cập nhật khi tải trang。 -- Áp dụng cho tất cả GitHub nhà kho。 - - - -## sử dụng -- Tập lệnh sẽ tự động sắp xếp tệp theo ngày tải trang,Không cần can thiệp thủ công。 - - - -## Sửa đổi nguồn -tác giả[androidcn]( https://greasyfork.org/zh-CN/users/18158)kịch bản[Github Sắp xếp theo ngày cập nhật tập tin]( https://greasyfork.org/scripts/492514),Cảm giácCảm ơntác giảcủasiêng năngnhân côngkhôn ngoanKhôn ngoan -![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) - - -## làmsử dụnggiúp đỡgiúp đỡ - - -## Giúp đỡ - - - - -> ### 🔍có thể bạn đang tìm kiếmGitHubTập lệnh liên quan -> - [**GitHubGửi hiển thị thông tinHTML**](https://greasyfork.org/scripts/505830): Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 -> - [**GitHub Trình làm đẹp danh sách tập tin**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。 -> - [**Github Danh sách ngôn ngữ mã hiển thị tất cả**](https://greasyfork.org/scripts/509889): Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong “khác” Xuống -> - [**GitHub Tự động xác nhận ủy quyền thiết bị**](https://greasyfork.org/scripts/508956): hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 -> - [**GitHubthư mục下载**](https://greasyfork.org/scripts/505496): Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub 文件夹。 -> - [**GitHubTải xuống các tập tin đơn lẻ và sao chép các tập tinURL**](https://greasyfork.org/scripts/505501): Nút thêm vào cuối mỗi dòng file,để sao chép tập tin gốc URL và tải về các tập tin -> - [**🤠 Github Tăng cường trợ lý Kích thước hiển thị kho Cảnh báo phát triển không hoạt động Nhảy nhanh vào kho用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): hiện hữuGithubHiển thị kích thước kho khi xem và tìm kiếm kho ,Cảnh báo phát triển không hoạt động,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Thay đổi cách sắp xếp file danh sách kho theo thứ tự ngày giảm dần,Thuận tiện xem các tập tin cập nhật mới nhất。 - - - - - - - -## Giúp đỡ - - Trình duyệt và trình quản lý tập lệnh được đề xuất: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **Nếu bạn cần biết thêm về cách cài đặt userscript,[bấm vào tôi](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)Xem giảng dạy đồ họa!** - -

Nhiều tập lệnh người dùng hơn / -trở lại đầu trang↑

- - - - - - - -### Xem tất cả các tập lệnh xuất bản - - - - -> ### 🔍có thể bạn đang tìm kiếm ChatGPTTập lệnh liên quan -> - [**ChatGPTKích thước phông chữ mã giảm**](https://greasyfork.org/scripts/505209): cho phép ChatGPT Kích thước phông chữ mã trở nên nhỏ hơn -> - [**ChatGPT 聊天Sao chép mãcái nút**](https://greasyfork.org/scripts/509598): hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“复制代码”按钮 -> - [**ChatGPT bộ đếm ký tự**](https://greasyfork.org/scripts/506166): 添加一nhân vật计数器到输入框,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 个字符。) -> - [**ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa**](https://greasyfork.org/scripts/504901): Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 - - - -> ### 🔍có thể bạn đang tìm kiếm Các tập lệnh liên quan đến web -> - [**Trình quản lý ủy quyền phiên bản clip viết trang web**](https://greasyfork.org/scripts/497403): Cấm các trang web ị trên các phiên bản đã chỉnh sửa,màu xanh lá cây để phát hành,lệnh cấm đỏ,hướng dẫn tạm thời màu cam -> - [**Thang máyCSDNĐăng nhậpSao chép限制**](https://greasyfork.org/scripts/505207): chết tiệt bạn CSDN 登录复制,Sao chép nội dung hộp mã mà không cần đăng nhập -> - [**Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp**](https://greasyfork.org/scripts/507036): Tự động áp dụng làm đẹp độ dốc màu cho tất cả các cột của bảng trên trang web. -> - [**Đánh dấu từ khóa trên các trang web+(gợi ý)**](https://greasyfork.org/scripts/498906): Đánh dấu văn bản trên các trang web -> - [**Làm nổi bật văn bản web_phiên bản nhỏ**](https://greasyfork.org/scripts/498905): Làm nổi bật từ khóa tùy chỉnh trên các trang web bao gồm nội dung được tải động khi cuộn -> - [**Xem trước cửa sổ nhỏ**](https://greasyfork.org/scripts/504880): Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 -> - [**Xóa gạch chân liên kết**](https://greasyfork.org/scripts/498625): Xóa gạch chân khỏi liên kết web -> - [**Nút cuộn nhỏ lên xuống**](https://greasyfork.org/scripts/497251): Thêm nút cuộn lên xuống ở bên phải trang -> - [**Nút trên và dưới một chạm**](https://greasyfork.org/scripts/500255): Được sửa đổi từGreasyforktập lệnh người dùng Thêm nút trên và dưới vào trang web,Tạo điều kiện di chuyển nhanh lên đầu hoặc cuối trang dài。 Đã thêm thay đổi màu nút khi cuộn xuống,3Tự động dừng nếu không cuộn trong vài giây - - - -> ### 🔍có thể bạn đang tìm kiếm GitHubTập lệnh liên quan -> - [**GitHubGửi hiển thị thông tinHTML**](https://greasyfork.org/scripts/505830): Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 -> - [**GitHub Trình làm đẹp danh sách tập tin**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。 -> - [**Github Danh sách ngôn ngữ mã hiển thị tất cả**](https://greasyfork.org/scripts/509889): Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong “khác” Xuống -> - [**GitHub Tự động xác nhận ủy quyền thiết bị**](https://greasyfork.org/scripts/508956): hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 -> - [**GitHubthư mục下载**](https://greasyfork.org/scripts/505496): Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub 文件夹。 -> - [**GitHubTải xuống các tập tin đơn lẻ và sao chép các tập tinURL**](https://greasyfork.org/scripts/505501): Nút thêm vào cuối mỗi dòng file,để sao chép tập tin gốc URL và tải về các tập tin -> - [**🤠 Github Tăng cường trợ lý Kích thước hiển thị kho Cảnh báo phát triển không hoạt động Nhảy nhanh vào kho用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): hiện hữuGithubHiển thị kích thước kho khi xem và tìm kiếm kho ,Cảnh báo phát triển không hoạt động,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Thay đổi cách sắp xếp file danh sách kho theo thứ tự ngày giảm dần,Thuận tiện xem các tập tin cập nhật mới nhất。 - - - -> ### 🔍có thể bạn đang tìm kiếm GoogleTập lệnh liên quan -> - [**Google Tìm kiếm nâng cao**](https://greasyfork.org/scripts/502652): Đây là một cho Google Thêm tập lệnh người dùng cho biểu mẫu tìm kiếm nâng cao。Nó thêm một biểu mẫu tìm kiếm nâng cao có thể ẩn ở đầu trang,Giúp bạn tìm kiếm thông tin chính xác hơn。 -> - [**Google Tìm kiếm và chặn các trang web cụ thể**](https://greasyfork.org/scripts/500262): Chặn các trang web cụ thể khỏi kết quả của công cụ tìm kiếm,Giúp người dùng lọc ra các kết quả tìm kiếm không mong muốn。 Trang web chặn đầu vào tùy chỉnh。Định dạng-zhihu -baidu Được sử dụng để chặn nội dung tìm kiếm của Google - - - -> ### 🔍có thể bạn đang tìm kiếm GreasyForkTập lệnh liên quan -> - [**GreasyForkthích hợp để nâng cao**](https://greasyfork.org/scripts/497317): Trang chi tiết tập lệnh được thêm vào. Nó phù hợp để thêm các liên kết. Nhấp để mở trang web.,Sao chép trang web,tìm kiếm lốp xe -> - [**GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản**](https://greasyfork.org/scripts/508968): sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. -> - [**GreaysFork Nâng cao WebHookĐồng bộ hóa cài đặt**](https://greasyfork.org/scripts/506717): Tập lệnh này có thể giúp bạn nhập nhanh thông tin đồng bộ hóa tập lệnh,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi tới URL tương ứng。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Được sử dụng theo mặc định trong diễn đàn Markdown Định dạng,Thêm liên kết trợ giúp định dạng và Markdown Giới thiệu thanh công cụ -> - [**GreasyFork Hiển thị xếp hạng kịch bản**](https://greasyfork.org/scripts/501119): Thêm điểm đánh giá vào danh sách tập lệnh -> - [**GreasyFork Tìm kiếm nâng cao**](https://greasyfork.org/scripts/505215): Tìm kiếm bằng Google GreasyFork Và SleazyFork chữ viết trên -> - [**GreasyFork Thanh điều hướngNâng cao**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Thêm danh sách người dùng,Bảng điều khiển người dùng, v.v. -> - [**GreasyforkThợ làm keo**](https://greasyfork.org/scripts/497346): Nâng caogreasyfork,Sao chép mã,Tải xuống tập lệnh,Thời gian chính xác đến từng giây,Dọn dẹp trang chủ,Thảo luận về báo cáo bằng một cú nhấp chuột,Đã thêm mã nhảy danh sách tập lệnh tải xuống Làm đẹp mã xem và hiển thị các tệp tham chiếu mã,hiển thị biểu tượng tập lệnh,Chuyển đến tập lệnh dành cho người lớn và các thao tác khác -> - [**Greasyfork Trợ lý thông báo**](https://greasyfork.org/scripts/506345): Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Kịch bản sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 -> - [**Script FinderCông cụ tìm tập lệnh Grease Monkey**](https://greasyfork.org/scripts/498904): Script Finder là một tập lệnh người dùng(userscript),Nó giúp bạn tìm và quản lý mô tả người dùng trên bất kỳ trang web nào - - - -> ### 🔍có thể bạn đang tìm kiếm kịch bản người lớn -> - [**MiSSAVĐăng nhập tự động**](https://greasyfork.org/scripts/505325): Phát hiện MisssAV tình trạng,và tự động đăng nhập khi chưa đăng nhập -> - [**MissAVNgười quản lý bộ sưu tập**](https://greasyfork.org/scripts/497682): missSao lưu danh sách phát,Hỗ trợ tải hình ảnh và lưu thông tin video.Xuất trang web địa phương Hỗ trợ xuất khẩu sangwebdav -> - [**TissAVĐăng nhập tự động**](https://greasyfork.org/scripts/506528): Phát hiện TissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập -> - [**JableTVĐăng nhập tự động**](https://greasyfork.org/scripts/506730): Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập - - - -> ### 🔍có thể bạn đang tìm kiếm dịch tự động -> - [**đầu cuối ngoại ngữ**](https://greasyfork.org/scripts/504890): Nhận biết các ký tự không phải tiếng Trung,Nếu chiều dài lớn hơn 5 Và văn bản dịch không chứa tiếng Trung Quốc,sau đó thay thế bằng tiếng Trung,Cần phải có thể truy cập đượcgooglemạng -> - [**dịch trang web——Tự động dịch sang tiếng Trung**](https://greasyfork.org/scripts/505208): Cung cấp góc dưới bên phải của mỗi trang web không phải tiếng Trung Quốc(Có thể điều chỉnh ở góc dưới bên trái)thêm một google Biểu tượng dịch,Phiên bản này là phiên bản dịch tiếng Trung,Chỉ dịch tiếng nước ngoài sang tiếng Trung,Thêm bản dịch tự động - - -
- - - diff --git a/Script details/github-sort-by-date/github-sort-by-date.user.js b/Script details/github-sort-by-date/github-sort-by-date.user.js deleted file mode 100644 index efeca161a..000000000 --- a/Script details/github-sort-by-date/github-sort-by-date.user.js +++ /dev/null @@ -1,133 +0,0 @@ -// ==UserScript== -// @name GitHub Sort by Date -// @name:zh-CN GitHub 按日期排序 -// @description:zh-CN 将文件排序方式改为日期降序,方便查看最新更新的文件。 -// @name:ar GitHub الترتيب حسب التاريخ -// @description:ar تغيير فرز الملفات إلى تنازلي حسب التاريخ,عرض مريح لأحدث الملفات المحدثة。 -// @name:bg GitHub Сортиране по дата -// @description:bg Променете сортирането на файлове на низходящо по дата,Удобен преглед на последните актуализирани файлове。 -// @name:cs GitHub Seřadit podle data -// @description:cs Změnit řazení souborů na sestupné podle data,Pohodlně si prohlédněte nejnovější aktualizované soubory。 -// @name:da GitHub Sorter efter dato -// @description:da Skift filsortering til faldende efter dato,Se bekvemt de seneste opdaterede filer。 -// @name:de GitHub Nach Datum sortieren -// @description:de Ändern Sie die Sortierung der Dateien auf absteigend nach Datum,Sehen Sie sich bequem die neuesten aktualisierten Dateien an。 -// @name:el GitHub Ταξινόμηση κατά ημερομηνία -// @description:el Αλλαγή της ταξινόμησης αρχείων σε φθίνουσα κατά ημερομηνία,Προβάλετε άνετα τα πιο πρόσφατα ενημερωμένα αρχεία。 -// @name:en GitHub Sort by date -// @description:en Change file sorting to descending by date,Conveniently view the latest updated files。 -// @name:eo GitHub Ordigi laŭ dato -// @description:eo Ŝanĝu dosierordigon al malkreskanta laŭ dato,Oportune vidi la lastajn ĝisdatigitajn dosierojn。 -// @name:es GitHub Ordenar por fecha -// @description:es Cambiar la clasificación de archivos a descendente por fecha,Vea cómodamente los últimos archivos actualizados。 -// @name:fi GitHub Lajittele päivämäärän mukaan -// @description:fi Muuta tiedostojen lajittelu päivämäärän mukaan laskevaksi,Tarkastele viimeisimmät päivitetyt tiedostot kätevästi。 -// @name:fr GitHub Trier par date -// @description:fr Changer le tri des fichiers en décroissant par date,Visualisez facilement les derniers fichiers mis à jour。 -// @name:he GitHub מיין לפי תאריך -// @description:he שנה את מיון הקבצים ליורד לפי תאריך,צפה בנוחות בקבצים המעודכנים האחרונים。 -// @name:hr GitHub Poredaj po datumu -// @description:hr Promijeni sortiranje datoteka na padajuće po datumu,Pogodan pregled najnovijih ažuriranih datoteka。 -// @name:hu GitHub Rendezés dátum szerint -// @description:hu Módosítsa a fájlrendezést dátum szerint csökkenőre,Kényelmesen megtekintheti a legfrissebb fájlokat。 -// @name:id GitHub Urutkan berdasarkan tanggal -// @description:id Ubah pengurutan file menjadi menurun berdasarkan tanggal,Lihat file terbaru yang diperbarui dengan mudah。 -// @name:it GitHub Ordina per data -// @description:it Cambia l’ordinamento dei file in discendente per data,Visualizza comodamente gli ultimi file aggiornati。 -// @name:ja GitHub 日付順に並べ替える -// @description:ja ファイルの並べ替えを日付順に変更します,最新の更新されたファイルを簡単に表示できます。 -// @name:ka GitHub დალაგება თარიღის მიხედვით -// @description:ka შეცვალეთ ფაილის დახარისხება თარიღის მიხედვით კლებადობით,მოხერხებულად ნახეთ უახლესი განახლებული ფაილები。 -// @name:ko GitHub 날짜순으로 정렬 -// @description:ko 파일 정렬을 날짜별 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 -// @name:nl GitHub Sorteer op datum -// @description:nl Wijzig de bestandssortering naar aflopend op datum,Bekijk handig de nieuwste bijgewerkte bestanden。 -// @name:nb GitHub Sorter etter dato -// @description:nb Endre filsortering til synkende etter dato,Se praktisk på de siste oppdaterte filene。 -// @name:pl GitHub Sortuj według daty -// @description:pl Zmień sortowanie plików na malejące według daty,Wygodnie przeglądaj najnowsze zaktualizowane pliki。 -// @name:pt-BR GitHub Classificar por data -// @description:pt-BR Alterar a classificação dos arquivos para decrescente por data,Visualize convenientemente os arquivos atualizados mais recentes。 -// @name:ro GitHub Sortați după dată -// @description:ro Schimbați sortarea fișierelor în descrescătoare după dată,Vizualizați în mod convenabil cele mai recente fișiere actualizate。 -// @name:ru GitHub Сортировать по дате -// @description:ru Изменить сортировку файлов по убыванию по дате,Удобно просматривать последние обновленные файлы。 -// @name:sk GitHub Zoradiť podľa dátumu -// @description:sk Zmeňte triedenie súborov na zostupné podľa dátumu,Pohodlne si prezerajte najnovšie aktualizované súbory。 -// @name:sr GitHub Сортирај по датуму -// @description:sr Промените сортирање датотека на опадајуће по датуму,Погодно прегледајте најновије ажуриране датотеке。 -// @name:sv GitHub Sortera efter datum -// @description:sv Ändra filsortering till fallande efter datum,Se bekvämt de senaste uppdaterade filerna。 -// @name:th GitHub เรียงตามวันที่ -// @description:th เปลี่ยนการเรียงลำดับไฟล์เป็นจากมากไปน้อยตามวันที่,ดูไฟล์ที่อัพเดตล่าสุดได้อย่างสะดวก。 -// @name:tr GitHub Tarihe göre sırala -// @description:tr Dosya sıralamasını tarihe göre azalan olarak değiştirin,En son güncellenen dosyaları rahatça görüntüleyin。 -// @name:ug GitHub چېسلا بويىچە تەرتىپلەش -// @description:ug ھۆججەت رەتلەشنى چېسلا بويىچە تۆۋەنگە ئۆزگەرتىڭ,ئەڭ يېڭى يېڭىلانغان ھۆججەتلەرنى قۇلايلىق كۆرۈڭ。 -// @name:uk GitHub Сортувати за датою -// @description:uk Змінити сортування файлів на спадання за датою,Зручний перегляд останніх оновлених файлів。 -// @name:vi GitHub Sắp xếp theo ngày -// @description:vi Thay đổi cách sắp xếp tệp thành giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 -// @name:zh-TW GitHub 按日期排序 -// @description:zh-TW 將文件排序方式改為日期降序,方便查看最新更新的文件。 -// @name:zh-HK GitHub 按日期排序 -// @description:zh-HK 將文件排序方式改為日期降序,方便查看最新更新的文件。 -// @name:fr-CA GitHub Trier par date -// @description:fr-CA Changer le tri des fichiers en décroissant par date,Visualisez facilement les derniers fichiers mis à jour。 -// @description Change the file sorting order to descending by date for easier viewing of the most recently updated files. -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.1.0.23 -// @author @Androidcn ,人民的勤务员 -// @match https://github.com/* -// @icon data:image/png;base64,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 -// @iconbak https://www.google.com/s2/favicons?sz=64&domain=github.com -// @grant none -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// ==/UserScript== -(function () { - 'use strict' - function createButton() { - // Create a button element - const button = document.createElement('button') - button.textContent = '排序' - button.style.position = 'fixed' - button.style.top = '60px' - button.style.right = '20px' - button.style.zIndex = '9999' - // Append the button to the body - document.body.appendChild(button) - // Add click event listener to the button - button.addEventListener('click', performSortedAction) - } - function waitForElement(selector) { - return new Promise((resolve) => { - const observer = new MutationObserver(() => { - if (document.querySelector(selector)) { - resolve() - observer.disconnect() - } - }) - observer.observe(document.body, { childList: true, subtree: true }) - }) - } - function performSortedAction() { - - var files = document.querySelector('[aria-labelledby="folders-and-files"] tbody') - var children = [...files.children] - files.replaceChildren( - children[0], ...[...files.querySelectorAll('.react-directory-row')].sort((a, b) => new Date(a.querySelector('relative-time').datetime) < new Date(b.querySelector('relative-time').datetime) ? 1 : -1), children.at(-1), - ) - console.log('已按文件更新日期排序') - } - function WaitForRelativeTime() { - waitForElement('relative-time').then(() => { - performSortedAction() - }) - } - // Wait for the page to load - window.addEventListener('load', WaitForRelativeTime) - - -})() diff --git a/Script details/google-advanced-search/README.md b/Script details/google-advanced-search/README.md deleted file mode 100644 index aa1b72295..000000000 --- a/Script details/google-advanced-search/README.md +++ /dev/null @@ -1,211 +0,0 @@ - -
- - - - - -
-

Google 高级搜索

-

「 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ Google 高级搜索 更新日志

-

📅 2024/8/5 23:18 - Ver 0.1.9.1

-

新增: 增加脚本图标

-
-

📅 2024/8/5 10:26 - Ver 0.1.9

-

问题: 移动设备无法显示高级搜索框。
-修复: 下面代码仅在 PC 端生效 searchContainer.appendChild(toggleButton)

-
- -
- - - - - -# Google 高级搜索助手 - -这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 - - - -## 功能 - -- 在 Google 搜索页面顶部添加一个“高级搜索”按钮,点击按钮可显示高级搜索表单。 -- 高级搜索表单包含了以下搜索选项: - - `以下所有字词`:搜索结果中必须包含所有指定的关键字。 - - `与以下字词完全匹配`:搜索结果中必须包含完全匹配指定字词的结果。 - - `以下任意字词`:搜索结果中必须包含指定的任意一个关键字。 - - `排除以下字词`:搜索结果中不包含指定的关键字。 - - `包含的数字范围`:搜索结果中包含指定范围内的数字。 - - `最后更新时间`:搜索结果中包含指定更新时间的结果。 - - `网站或域名`:搜索结果中包含指定网站或域名的结果。 - - `文件类型`:搜索结果中包含指定文件类型的结果。 -- 可以保存以前的搜索选项,这样在打开新页面时会自动填充表单。 -- 提供清空按钮,可以清除表单中的数据。 - - - -## 使用方法 - -1. 安装一个用户脚本管理器,比如 Tampermonkey。 -2. 安装用户脚本并启用它。 -3. 在谷歌搜索页面打开后,您会在页面顶部看到一个名为“高级搜索”的按钮。 -4. 点击“高级搜索”按钮,高级搜索表单将显示出来。 -5. 在表单中填入您想要的高级搜索选项。 -6. 点击“搜索”按钮进行高级搜索,或点击“清空”按钮清除表单数据。 - -注意:由于该脚本是针对谷歌搜索页面编写的,所以只能在谷歌搜索页面上使用。 - -

谷歌高级搜索助手 更新记录

- -- **2024/8/5 23:18 - Ver: 0.1.9.1** - - *增加脚本图标* - -- **2024/8/5 10:26 - Ver: 0.1.9** - - *问题: 移动设备无法显示高级搜索框* - - *修复方式:下面代码仅在PC端生效 `searchContainer.appendChild(toggleButton`* - - - - - -## 感谢 - -脚本修改自用户 **[shiquda](https://greasyfork.org/zh-CN/users/935206)** 的脚本 [ Google 高级搜索助手](https://greasyfork.org/scripts/474178) 感谢原作者 **shiquda** 的**勤劳**与**智慧** - -![mb.png](https://s2.loli.net/2024/08/05/DMIGuYrvTF1QRE9.png) -![PC.png](https://s2.loli.net/2024/08/05/Yo1pmz3v8uINMnR.png) - - - - - -> ### 🔍你可能在找Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/google-advanced-search/README_en.md b/Script details/google-advanced-search/README_en.md deleted file mode 100644 index 18eed473f..000000000 --- a/Script details/google-advanced-search/README_en.md +++ /dev/null @@ -1,205 +0,0 @@ - -
- - - - - -
-

Google Advanced search

-

「 This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ Google Advanced search Change log

-

📅 2024/8/5 23:18 - Ver 0.1.9.1

-

New: Add script icon

-
-

📅 2024/8/5 10:26 - Ver 0.1.9

-

issues: Advanced search box cannot be displayed on mobile devices。
-repair: The code below is only PC Effective on the terminal searchContainer.appendChild(toggleButton)

-
- -
- - - - - - -# Google Advanced Search Assistant - -This is a user script that adds an advanced search form to Google. It adds a collapsible advanced search form at the top of the page, allowing you to search for information with more precision. - - - -## Features - -- Adds an "Advanced Search" button at the top of the Google search page. Clicking the button will display the advanced search form. -- The advanced search form includes the following search options: - - "All of these words": The search results must include all specified keywords. - - "Exact word or phrase": The search results must include an exact match of the specified word or phrase. - - "Any of these words": The search results must include any of the specified keywords. - - "None of these words": The search results must not include the specified keywords. - - "Number range": The search results must include numbers within the specified range. - - "Last update": The search results must include results that were last updated within the specified time frame. - - "Site or domain": The search results must include results from the specified website or domain. - - "File type": The search results must include results of the specified file type. -- The script can save previous search options, so the form will be automatically filled when opening a new page. -- Provides a "Clear" button to clear the form data. - - - -## Usage - -1. Install a user script manager, such as Tampermonkey. -2. Install this Userscipt. -3. When opening a Google search page, you would see a button called "Advanced search" on the top of the page. -4. Click the blue button and the form of advanced search will be shown. -5. Fill in the desired search options in the form. -6. Click the "Search" button to perform the search, or click the "Clear" button to clear the form data. - -Note: This script is specifically designed for the Google search page and can only be used on Google search pages. - - - -## Author - -The script is modified from the user **[shiquda](https://greasyfork.org/users/935206)**'s script [Google Advanced Search Assistant](https://greasyfork.org/scripts/474178) Thanks to the original author** shiquda**’s **hard work** and **wisdom** - - -![mb_en.png](https://s2.loli.net/2024/08/05/VcqI6pXs3AaOW1C.png) -![PC_en.png](https://s2.loli.net/2024/08/05/MXF8JdpqnyreuRf.png) - - - - - - - - -> ### 🔍you may be looking forGoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/google-advanced-search/google-advanced-search.user.js b/Script details/google-advanced-search/google-advanced-search.user.js deleted file mode 100644 index e3afdf2ac..000000000 --- a/Script details/google-advanced-search/google-advanced-search.user.js +++ /dev/null @@ -1,463 +0,0 @@ -// ==UserScript== -// @name Advanced Search Assistant for Google -// @name:zh-CN Google 高级搜索助手 -// @description:zh-CN 在谷歌搜索页面顶部添加一个高级搜索表单 -// @name:ar Google مساعد البحث المتقدم -// @description:ar أضف نموذج بحث متقدم إلى أعلى صفحة بحث Google الخاصة بك -// @name:bg Google Помощник за разширено търсене -// @description:bg Добавете формуляр за разширено търсене в горната част на вашата страница за търсене в Google -// @name:cs Google Pokročilý asistent vyhledávání -// @description:cs Přidejte formulář pro pokročilé vyhledávání do horní části stránky vyhledávání Google -// @name:da Google Avanceret søgeassistent -// @description:da Tilføj en avanceret søgeformular øverst på din Google-søgeside -// @name:de Google Erweiterter Suchassistent -// @description:de Fügen Sie oben auf Ihrer Google-Suchseite ein erweitertes Suchformular hinzu -// @name:el Google Βοηθός σύνθετης αναζήτησης -// @description:el Προσθέστε μια φόρμα σύνθετης αναζήτησης στην κορυφή της σελίδας αναζήτησης Google -// @name:en Google Advanced search assistant -// @description:en Add an advanced search form to the top of your Google search page -// @name:eo Google Altnivela serĉa asistanto -// @description:eo Aldonu altnivelan serĉformularon al la supro de via serĉpaĝo de Guglo -// @name:es Google asistente de búsqueda avanzada -// @description:es Agregue un formulario de búsqueda avanzada en la parte superior de su página de búsqueda de Google -// @name:fi Google Tarkennettu hakuavustaja -// @description:fi Lisää tarkennettu hakulomake Google-hakusivusi yläosaan -// @name:fr Google Assistant de recherche avancée -// @description:fr Ajoutez un formulaire de recherche avancée en haut de votre page de recherche Google -// @name:he Google עוזר חיפוש מתקדם -// @description:he הוסף טופס חיפוש מתקדם לראש דף החיפוש שלך בגוגל -// @name:hr Google Pomoćnik za napredno pretraživanje -// @description:hr Dodajte obrazac za napredno pretraživanje na vrh svoje stranice Google pretraživanja -// @name:hu Google Speciális keresési asszisztens -// @description:hu Adjon hozzá egy speciális keresési űrlapot a Google keresési oldalának tetejére -// @name:id Google Asisten pencarian lanjutan -// @description:id Tambahkan formulir pencarian lanjutan ke bagian atas halaman pencarian Google Anda -// @name:it Google Assistente di ricerca avanzata -// @description:it Aggiungi un modulo di ricerca avanzata nella parte superiore della pagina di ricerca di Google -// @name:ja Google 高度な検索アシスタント -// @description:ja Google 検索ページの上部に高度な検索フォームを追加します -// @name:ka Google გაფართოებული საძიებო ასისტენტი -// @description:ka დაამატეთ გაფართოებული საძიებო ფორმა თქვენი Google ძიების გვერდის ზედა ნაწილში -// @name:ko Google 고급 검색 도우미 -// @description:ko Google 검색 페이지 상단에 고급 검색 양식을 추가하세요. -// @name:nl Google Geavanceerde zoekassistent -// @description:nl Voeg een geavanceerd zoekformulier toe bovenaan uw Google-zoekpagina -// @name:nb Google Avansert søkeassistent -// @description:nb Legg til et avansert søkeskjema øverst på Google-søkesiden din -// @name:pl Google Zaawansowany asystent wyszukiwania -// @description:pl Dodaj formularz wyszukiwania zaawansowanego na górze strony wyszukiwania Google -// @name:pt-BR Google Assistente de pesquisa avançada -// @description:pt-BR Adicione um formulário de pesquisa avançada ao topo da sua página de pesquisa do Google -// @name:ro Google Asistent de căutare avansată -// @description:ro Adăugați un formular de căutare avansată în partea de sus a paginii dvs. de căutare Google -// @name:ru Google Расширенный помощник поиска -// @description:ru Добавьте форму расширенного поиска в верхнюю часть страницы поиска Google. -// @name:sk Google Pokročilý asistent vyhľadávania -// @description:sk Pridajte formulár rozšíreného vyhľadávania do hornej časti stránky vyhľadávania Google -// @name:sr Google Помоћник за напредну претрагу -// @description:sr Додајте образац за напредну претрагу на врх ваше странице Гоогле претраге -// @name:sv Google Avancerad sökassistent -// @description:sv Lägg till ett avancerat sökformulär överst på din Google-söksida -// @name:th Google ผู้ช่วยการค้นหาขั้นสูง -// @description:th เพิ่มแบบฟอร์มการค้นหาขั้นสูงที่ด้านบนของหน้าการค้นหาของ Google -// @name:tr Google Gelişmiş arama asistanı -// @description:tr Google arama sayfanızın üst kısmına gelişmiş bir arama formu ekleyin -// @name:ug Google ئىلغار ئىزدەش ياردەمچىسى -// @description:ug Google ئىزدەش بېتىڭىزنىڭ ئۈستىگە ئىلغار ئىزدەش جەدۋىلىنى قوشۇڭ -// @name:uk Google Розширений пошуковий помічник -// @description:uk Додайте форму розширеного пошуку у верхній частині сторінки пошуку Google -// @name:vi Google Trợ lý tìm kiếm nâng cao -// @description:vi Thêm biểu mẫu tìm kiếm nâng cao vào đầu trang tìm kiếm Google của bạn -// @name:zh-TW Google 高級搜尋助手 -// @description:zh-TW 在谷歌搜尋頁面頂部新增一個高級搜尋表單 -// @name:zh-HK Google 高級搜尋助手 -// @description:zh-HK 在谷歌搜尋頁面頂部新增一個高級搜尋表單 -// @name:fr-CA Google Assistant de recherche avancée -// @description:fr-CA Ajoutez un formulaire de recherche avancée en haut de votre page de recherche Google -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.1.9.45 -// @description Add an advanced search form to the top of the page -// @author shiquda &人民的勤务员 -// @match *://www.google.com/search* -// @include *://*google*/search* -// @grant GM_addStyle -// @grant GM_setValue -// @grant GM_getValue -// @license MIT -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/Google-advance-search.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(function () { - "use strict" - let isMobile = false - if ( - navigator.userAgent.match(/Android/i) || - navigator.userAgent.match(/webOS/i) || - navigator.userAgent.match(/iPhone/i) || - navigator.userAgent.match(/iPad/i) || - navigator.userAgent.match(/iPod/i) || - navigator.userAgent.match(/BlackBerry/i) || - navigator.userAgent.match(/Windows Phone/i) - ) { - // On mobile device - isMobile = true - } - - let isDarkMode = false - - try { - if ( - window.matchMedia && - window.matchMedia("(prefers-color-scheme: dark)").matches - ) { - // Dark mode is enabled - isDarkMode = true - console.log("Dark mode is enabled.") - } - } catch (error) { - console.log("Failed to determine the color mode.", error) - } - - const userLanguage = "" // You can set your language config here manually. 'zh-CN' & 'en' are supported now. - - const supportedLanguages = ["zh-CN", "en"] - - const translation = { - as_q: { - "zh-CN": "搜索字词:", - en: "Search word:", - }, - as_epq: { - "zh-CN": "与以下字词完全匹配:", - en: "Match the following words exactly:", - }, - as_oq: { - "zh-CN": "包含以下任意字词:", - en: "Contains any of the following words:", - }, - as_eq: { - "zh-CN": "排除以下字词:", - en: "Exclude the following words:", - }, - as_nlo: { - "zh-CN": "包含的数字范围:从", - en: "Number range: from", - }, - as_nhi: { - "zh-CN": "到:", - en: "to:", - }, - lr: { - "zh-CN": "语言:", - en: "Language:", - }, - cr: { - "zh-CN": "地区:", - en: "Region:", - }, - as_qdr: { - "zh-CN": "最后更新时间:", - en: "Last update time:", - }, - as_sitesearch: { - "zh-CN": "网站或域名:", - en: "Website or domain:", - }, - as_occt: { - "zh-CN": "字词出现位置:", - en: "Word position:", - }, - as_filetype: { - "zh-CN": "文件类型:", - en: "File type:", - }, - tbs: { - "zh-CN": "使用权限:", - en: "Usage rights:", - }, - advancedSearch: { - "zh-CN": "高级搜索", - en: "Advanced Search", - }, - search: { - "zh-CN": "搜索", - en: "Search", - }, - clear: { - "zh-CN": "清空", - en: "Clear", - }, - as_qdr_select: { - "": { - "zh-CN": "请选择", - en: "Please select", - }, - d: { - "zh-CN": "一天内", - en: "Past 24 hours", - }, - w: { - "zh-CN": "一周内", - en: "Past week", - }, - m: { - "zh-CN": "一月内", - en: "Past month", - }, - y: { - "zh-CN": "一年内", - en: "Past year", - }, - }, - as_occt_select: { - "": { - "zh-CN": "请选择", - en: "Please select", - }, - title: { - "zh-CN": "网页标题中", - en: "In the title of the web page", - }, - body: { - "zh-CN": "网页正文中", - en: "In the body of the web page", - }, - url: { - "zh-CN": "网页网址中", - en: "In the URL of the web page", - }, - links: { - "zh-CN": "指向网页的链接中", - en: "In the links to the web page", - }, - }, - } - const style = ` - #advancedSearchToggleButton { - margin-right: 10px; - border: none; - border-radius: 5px; - background-color: #007bff; - color: #fff; - font-size: 14px; - font-weight: bold; - margin: 10px; - } - - - #advancedSearchFormContainer { - position: fixed; - ${isMobile ? "top: 150px;" : "top: 130px;"} - ${isMobile ? "left: 15px;" : "left: 30px;"} - display: none; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - font-size: 14px; - font-weight: bold; - ${isDarkMode - ? "background-color: rgba(0, 0, 0, 1);" - : "background-color: rgba(255, 255, 255, 1);" - } - ${isMobile ? "column-count: 2;" : ""} /* 在移动设备上分为两列 */ - z-index: 1000; // Make sure the button is on top of the search bar - } - - - #advancedSearchFormContainer label { - display: block; - margin-top: 5px; - } - - - #advancedSearchFormContainer input[type="text"] { - margin-top: 5px; - padding: 5px; - border: 1px solid #ccc; - border-radius: 5px; - } - - #advancedSearchFormContainer select { - margin-top: 5px; - padding: 5px; - border-radius: 5px; - } - - #advancedSearchFormContainer button { - border: none; - border-radius: 5px; - background-color: #007bff; - color: #fff; - font-size: 14px; - font-weight: bold; - margin: 20px; - } - ` - GM_addStyle(style) - - let language = "en" - if (userLanguage.length > 0) { // userLanguage is set manually - if (supportedLanguages.includes(userLanguage)) { - language = userLanguage - } else { - console.log(`Unsupported language: ${userLanguage}`) - } - } else { - // Check if any of the user's preferred languages are supported - language = - navigator.languages - .map((lang) => lang.split("-")[0]) // Consider only the language part, not the region - .map((lang) => supportedLanguages.find((supportedLang) => supportedLang.split("-")[0] === lang)) // Match with the supported languages - .filter(Boolean) // Remove undefined values - .shift() // Take the first matched language - || "en" // Default to 'en' if no match found - console.log(`Here is the language: ${language}`) - } - - // Create user interface - const toggleButton = document.createElement("button") - toggleButton.className = "nfSF8e" - toggleButton.textContent = translation["advancedSearch"][language] - toggleButton.id = "advancedSearchToggleButton" - if (isMobile) { - document.querySelector(".Fh5muf").appendChild(toggleButton) - } else { - document.querySelector(".logo").appendChild(toggleButton) - const searchContainer = document.querySelector(".RNNXgb") - searchContainer.appendChild(toggleButton) - } - - - - // Add minimal style for positioning - toggleButton.style.marginTop = "5px" // Add some space above the button - toggleButton.style.marginLeft = "5px" // Add some space to the left of the button - // Add any additional styles to match the search bar's height or other styling - - const formContainer = document.createElement("div") - formContainer.id = "advancedSearchFormContainer" - document.body.appendChild(formContainer) - - // - const form = document.createElement("form") - formContainer.appendChild(form) - - const params = { - as_q: translation["as_q"][language], - as_epq: translation["as_epq"][language], - as_oq: translation["as_oq"][language], - as_eq: translation["as_eq"][language], - as_nlo: translation["as_nlo"][language], - as_nhi: translation["as_nhi"][language], - // 'lr': translation['lr'][language], - // 'cr': translation['cr'][language], - as_qdr: { - name: translation["as_qdr"][language], - options: { - "": translation["as_qdr_select"][""][language], - d: translation["as_qdr_select"]["d"][language], - w: translation["as_qdr_select"]["w"][language], - m: translation["as_qdr_select"]["m"][language], - y: translation["as_qdr_select"]["y"][language], - }, - }, - as_sitesearch: translation["as_sitesearch"][language], - as_occt: { - name: translation["as_occt"][language], - options: { - "": translation["as_occt_select"][""][language], - title: translation["as_occt_select"]["title"][language], - body: translation["as_occt_select"]["body"][language], - url: translation["as_occt_select"]["url"][language], - links: translation["as_occt_select"]["links"][language], - }, - }, - as_filetype: translation["as_filetype"][language], - // 'tbs': translation['tbs'][language], - } - - for (const param in params) { - if (typeof params[param] === "object") { - const label = document.createElement("label") - label.textContent = params[param].name - const select = document.createElement("select") - select.name = param - - Object.keys(params[param]["options"]).forEach((option) => { - const optionElement = document.createElement("option") - optionElement.value = option - optionElement.textContent = params[param]["options"][option] - select.appendChild(optionElement) - }) - - form.appendChild(label) - form.appendChild(select) - form.appendChild(document.createElement("br")) - continue - } - const label = document.createElement("label") - label.textContent = params[param] - const input = document.createElement("input") - input.name = param - input.type = "text" - form.appendChild(label) - form.appendChild(input) - form.appendChild(document.createElement("br")) - } - - const searchButton = document.createElement("button") - searchButton.textContent = translation["search"][language] - form.appendChild(searchButton) - - // Add a clear button to reset the form - const clearButton = document.createElement("button") - clearButton.textContent = translation["clear"][language] - clearButton.addEventListener("click", function (event) { - event.preventDefault() - form.reset() - }) - form.appendChild(clearButton) - - // Load saved data and fill the form when opening a new page - window.addEventListener("load", function () { - for (const param in params) { - const savedValue = GM_getValue(param) - if (savedValue) { - form[param].value = savedValue - } - } - }) - - // Save form data to Greasemonkey storage - form.addEventListener("input", function () { - for (const param in params) { - GM_setValue(param, form[param].value) - } - }) - - // Toggle the form display - toggleButton.addEventListener("click", function (event) { - event.preventDefault() - let status = formContainer.style.display - status = status === "none" || status === "" ? "block" : "none" - formContainer.style.display = status - }) - - // Submit the form - form.addEventListener("submit", function (event) { - event.preventDefault() - const searchParams = new URLSearchParams() - for (const param in params) { - const value = form[param].value - if (value) { - searchParams.set(param, value) - } - } - const searchUrl = - "https://www.google.com/search?" + searchParams.toString() - window.location.href = searchUrl - }) -})() diff --git a/Script details/google-block-search-sites/README.md b/Script details/google-block-search-sites/README.md deleted file mode 100644 index a26ff8dd6..000000000 --- a/Script details/google-block-search-sites/README.md +++ /dev/null @@ -1,154 +0,0 @@ - -
- - - - - -
-

Google 搜索屏蔽指定站点

-

「 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - - -## 屏蔽谷歌搜索中的指定站点 - -- **帮助用户过滤掉不需要的搜索结果** -- **自定义输入屏蔽站点** -- **格式** `"-zhihu" "-baidu"` 用于屏蔽谷歌搜索内容 - - - - -> ### 🔍你可能在找Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/google-block-search-sites/google-block-search-sites.user.js b/Script details/google-block-search-sites/google-block-search-sites.user.js deleted file mode 100644 index 3526d5c17..000000000 --- a/Script details/google-block-search-sites/google-block-search-sites.user.js +++ /dev/null @@ -1,98 +0,0 @@ -// ==UserScript== -// @name 屏蔽谷歌搜索站点 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.0.1.51 -// @description 在google搜索屏蔽指定站点 -// @license MIT -// @author 人民的勤务员 -// @include /^https?://(www|cse)\.google(\.\w+)+/search\?.*$/ -// @run-at document-start -// @grant GM_registerMenuCommand -// @compatible chrome >= 49 -// @compatible firefox >= 29 -// @compatible opera >= 46 -// @compatible safari >= 10.1 -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-google-96.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(function () { - 'use strict' - - // 初始化默认屏蔽站点 - const DEFAULT_BLOCKED_SITES = "csdn" - - // 获取存储的屏蔽站点列表 - function getBlockedSites() { - return localStorage.getItem("blockedSites") || DEFAULT_BLOCKED_SITES - } - - // 设置屏蔽站点列表 - function setBlockedSites(sites) { - localStorage.setItem("blockedSites", sites) - } - - // 注册油猴菜单命令 - GM_registerMenuCommand("❌编辑屏蔽站点", function () { - showEditDialog(getBlockedSites()) - }) - - // 显示编辑对话框 - function showEditDialog(currentSites) { - const overlay = document.createElement('div') - overlay.id = 'overlay' - overlay.style = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 9998;' - - const dialog = document.createElement('div') - dialog.id = 'editDialog' - dialog.style = 'position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; border: 1px solid #ccc; box-shadow: 3px 3px 5px rgba(0,0,0,0.3); z-index: 9999; width: 60%; max-width: 600px; resize: both; overflow: auto;' - dialog.innerHTML = ` -

编辑屏蔽站点

-

请输入用英文逗号分隔的站点:

- -
- - -
- ` - - document.body.appendChild(overlay) - document.body.appendChild(dialog) - - document.getElementById('saveBtn').addEventListener('click', function () { - const newSites = document.getElementById('sitesInput').value - setBlockedSites(newSites) - alert("屏蔽站点已更新,刷新页面以生效。") - closeEditDialog() - }) - - document.getElementById('cancelBtn').addEventListener('click', function () { - closeEditDialog() - }) - - overlay.addEventListener('click', function () { - closeEditDialog() - }) - - function closeEditDialog() { - document.body.removeChild(dialog) - document.body.removeChild(overlay) - } - } - - // 获取搜索参数 - var params = new URLSearchParams(location.search), - q = params.get("q") - - // 获取当前屏蔽站点列表并格式化 - const blockedSites = getBlockedSites().split(",").map(site => `-${site.trim()}`).join(" ") - - // 如果查询参数中没有屏蔽站点,则添加 - if (q && !blockedSites.split(" ").some(site => q.includes(site))) { - params.set("q", q + " " + blockedSites) - location.search = "?" + params.toString() - } - -})() diff --git a/Script details/greasyfork-discussion-watcher/README.md b/Script details/greasyfork-discussion-watcher/README.md deleted file mode 100644 index 631da98b9..000000000 --- a/Script details/greasyfork-discussion-watcher/README.md +++ /dev/null @@ -1,222 +0,0 @@ - -
- - - - - -
-

Greasyfork 通知助手

-

「 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ Greasyfork 通知助手 更新日志

-

📅 2024/9/28 10:17 - Ver 1.5.0.4

-

新增: https://greasyfork.org/users/*/notifications反转排序,让最新的信息显示在顶部,而不是底部.

-
-

📅 2024/9/24 08:32 - Ver 1.5.0.3

-

优化: 🙄 窗口显示新消息数量,当一个discussions没有未读信息时,不会添加分类标题.
-新增: i18n→[zh-CN,zh-TW,en,ko,ja,vi]

-
-

📅 2024/9/20 18:40 - Ver 1.5.0.2

-

新增: 🙄 增加个sweetalert.js第三方库,方便自己在 KIWi 浏览器上使用罢了

-
-

📅 2024/9/12 07:42 - Ver 1.5.0.0

-

新增: 添加read=unread参数,只提取未读信息,此版本为最终版本.#259731GreasyFork 已经逐步支持站内通知,脚本将失去存在的意义.

-
-

📅 2024/9/11 07:52 - Ver 1.4.0.0

-

新增: 跳过自己新开的讨论,并且在匹配最后发言人用户 ID 失败时,匹配最后发言人.

-
-

📅 2024/9/7 09:06 - Ver 1.3.0.0

-

改进: 改为使用网站的讨论列表,增加在信息内添加分类。

-
-

📅 2024/9/4 04:39 - Ver 1.2.0.0

-

新增: 增加设置最大消息数量的油猴菜单。
-新增: 增加跳过最后发言人是 自己 的选项。

-
-

📅 2024/9/3 09:10 - Ver 1.1.0.0

-

新增: 增加设置刷新时间的油猴菜单。

-
-

📅 2024/9/2 12:24 - Ver 1.0.0.0

-

初始: 初始版本,欢迎使用。

-
- -
- - - - - -# GreasyFork 通知助手 - ![Snipaste_2024-09-02_12-30-03.png](https://s2.loli.net/2024/09/02/Ftpq1KomRcALjIE.png) - -一个 Tampermonkey 脚本,用于在 GreasyFork 上增强讨论列表功能。当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 - - - -## 功能 - -- **自定义样式:** 提供一个干净、用户友好的模态窗口,用于显示最新的讨论内容,样式可自定义。 -- **自动更新:** 脚本会定期检查讨论的更新,并在有新回复时提醒你。 -- **信息提取:** 从网页上提取讨论标题、时间戳和用户名,并将其整理到模态窗口中。 - - - -## 自定义检查时间 - -脚本使用 `delay` 配置项来设定检查更新的间隔时间。时间格式为以下几种组合: - -- `1h1m`:1小时1分钟 -- `30m`:30分钟 -- `1h`:1小时 -- `1m`:1分钟 -- `1s`:1秒 -- `2m1s`:2分1秒 - -你可以根据需要修改 `delay` 配置项的值,以调整脚本检查讨论更新的频率。例如,如果你希望每15分钟检查一次,可以将 `delay` 设置为 `15m`。 - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - - -## 项目与反馈 - -- **项目页面:** [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) -- **支持与问题反馈:** [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/greasyfork-discussion-watcher/README_en.md b/Script details/greasyfork-discussion-watcher/README_en.md deleted file mode 100644 index 138ecdb78..000000000 --- a/Script details/greasyfork-discussion-watcher/README_en.md +++ /dev/null @@ -1,224 +0,0 @@ - -
- - - - - -
-

Greasyfork Notification assistant

-

「 When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ Greasyfork Notification assistant Change log

-

📅 2024/9/28 10:17 - Ver 1.5.0.4

-

New: https://greasyfork.org/users/*/notificationsreverse sort,Keep the latest information at the top,instead of the bottom.

-
-

📅 2024/9/24 08:32 - Ver 1.5.0.3

-

optimization: 🙄 The window displays the number of new messages,when adiscussionsWhen there are no unread messages,Category titles will not be added.
-New: i18n→[zh-CN,zh-TW,en,ko,ja,vi]

-
-

📅 2024/9/20 18:40 - Ver 1.5.0.2

-

New: 🙄 addsweetalert.jsThird-party libraries,Convenient for yourself KIWi Just use it on the browser

-
-

📅 2024/9/12 07:42 - Ver 1.5.0.0

-

New: Add toread=unreadparameter,Extract only unread messages,This version is final.#259731GreasyFork In-site notifications have been gradually supported,Scripts will lose their meaning.

-
-

📅 2024/9/11 07:52 - Ver 1.4.0.0

-

New: Skip your own newly opened discussion,and inMatch last speakeruser ID on failure,Match last speaker.

-
-

📅 2024/9/7 09:06 - Ver 1.3.0.0

-

improve: Use the site’s discussion list instead,Add categories to information。

-
-

📅 2024/9/4 04:39 - Ver 1.2.0.0

-

New: Added grease monkey menu for setting the maximum number of messages。
-New: Added skip last speaker is Own options。

-
-

📅 2024/9/3 09:10 - Ver 1.1.0.0

-

New: Added oil monkey menu to set refresh time。

-
-

📅 2024/9/2 12:24 - Ver 1.0.0.0

-

initial: initial version,Welcome。

-
- -
- - - - - -# GreasyFork Discussion Watcher - -A Tampermonkey script designed to enhance the discussion list functionality on GreasyFork. When there are new replies to your scripts or discussions you are involved in, the script will display the latest discussion content in a modal window on the webpage. - - - -## Features - -- **Customizable Style:** Provides a clean, user-friendly modal window to display the latest discussion content, with customizable styles. -- **Automatic Updates:** The script periodically checks for discussion updates and notifies you when there are new replies. -- **Information Extraction:** Extracts discussion titles, timestamps, and usernames from the webpage and organizes them into the modal window. - - - -## Custom Check Interval - -The script uses the `delay` configuration option to set the interval for checking updates. The time format can be one of the following combinations: - -- `1h1m`: 1 hour and 1 minute -- `30m`: 30 minutes -- `1h`: 1 hour -- `1m`: 1 minute -- `1s`: 1 second -- `2m1s`: 2 minutes and 1 second - -You can modify the value of the `delay` configuration option as needed to adjust how often the script checks for discussion updates. For example, if you want to check every 15 minutes, you can set `delay` to `15m`. - - - -## Project and Feedback - -- **Project Page:** [GitHub Repository](https://github.com/ChinaGodMan/UserScripts) -- **Support and Issues:** [Report Issues](https://github.com/ChinaGodMan/UserScripts/issues) - -![Snipaste_2024-09-02_12-30-03.png](https://s2.loli.net/2024/09/02/Ftpq1KomRcALjIE.png) - - - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/greasyfork-discussion-watcher/greasyfork-discussion-watcher.user.js b/Script details/greasyfork-discussion-watcher/greasyfork-discussion-watcher.user.js deleted file mode 100644 index 09a79a1f8..000000000 --- a/Script details/greasyfork-discussion-watcher/greasyfork-discussion-watcher.user.js +++ /dev/null @@ -1,417 +0,0 @@ -// ==UserScript== -// @name GreasyFork Discussion Watcher -// @name:zh-CN GreasyFork 通知助手 -// @description:zh-CN 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -// @name:ar GreasyFork مساعد الإخطار -// @description:ar عندما يكون هناك رد جديد على البرنامج النصي الخاص بك أو على مناقشة تشارك فيها,سيعرض البرنامج النصي أحدث محتوى للمناقشة في نافذة مشروطة على صفحة الويب。 -// @name:bg GreasyFork Асистент за уведомяване -// @description:bg Когато има нов отговор на вашия скрипт или на дискусия, в която участвате,Скриптът ще покаже най-новото съдържание на дискусия в модален прозорец на уеб страницата。 -// @name:cs GreasyFork Asistent upozornění -// @description:cs Když přijde nová odpověď na váš scénář nebo na diskuzi, které se účastníte,Skript zobrazí nejnovější obsah diskuse v modálním okně na webové stránce。 -// @name:da GreasyFork Underretningsassistent -// @description:da Når der er et nyt svar på dit manuskript eller til en diskussion, du deltager i,Scriptet vil vise det seneste diskussionsindhold i et modalt vindue på websiden。 -// @name:de GreasyFork Benachrichtigungsassistent -// @description:de Wenn es eine neue Antwort auf Ihr Skript oder auf eine Diskussion gibt, an der Sie teilnehmen,Das Skript zeigt den neuesten Diskussionsinhalt in einem modalen Fenster auf der Webseite an。 -// @name:el GreasyFork Βοηθός ειδοποιήσεων -// @description:el Όταν υπάρχει μια νέα απάντηση στο σενάριό σας ή σε μια συζήτηση στην οποία συμμετέχετε,Το σενάριο θα εμφανίσει το πιο πρόσφατο περιεχόμενο συζήτησης σε ένα παράθυρο τρόπου στην ιστοσελίδα。 -// @name:en GreasyFork Notification Assistant -// @description:en When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -// @name:eo GreasyFork Asistanto pri sciigo -// @description:eo Kiam estas nova respondo al via skripto aŭ al diskuto, kiun vi partoprenas,La skripto montros la lastan diskutenhavon en modala fenestro sur la retpaĝo。 -// @name:es GreasyFork Asistente de notificaciones -// @description:es Cuando hay una nueva respuesta a tu guión o a una discusión en la que estás participando,El script mostrará el contenido de la discusión más reciente en una ventana modal en la página web.。 -// @name:fi GreasyFork Ilmoitusassistentti -// @description:fi Kun käsikirjoitukseen tai keskusteluun, johon osallistut, tulee uusi vastaus,Käsikirjoitus näyttää uusimman keskustelusisällön web-sivun modaaliikkunassa。 -// @name:fr GreasyFork Assistant de notifications -// @description:fr Lorsqu’il y a une nouvelle réponse à votre script ou à une discussion à laquelle vous participez,Le script affichera le dernier contenu de la discussion dans une fenêtre modale sur la page Web。 -// @name:he GreasyFork עוזר הודעות -// @description:he כאשר יש תשובה חדשה לתסריט שלך או לדיון שאתה משתתף בו,הסקריפט יציג את תוכן הדיון העדכני ביותר בחלון מודאלי בדף האינטרנט。 -// @name:hr GreasyFork Pomoćnik za obavijesti -// @description:hr Kada postoji novi odgovor na vašu skriptu ili na raspravu u kojoj sudjelujete,Skripta će prikazati najnoviji sadržaj rasprave u modalnom prozoru na web stranici。 -// @name:hu GreasyFork Értesítési asszisztens -// @description:hu Amikor új válasz érkezik a forgatókönyvére vagy egy beszélgetésre, amelyben részt vesz,A szkript megjeleníti a legfrissebb vitatartalmat egy modális ablakban a weboldalon。 -// @name:id GreasyFork Asisten Pemberitahuan -// @description:id Ketika ada balasan baru pada naskah Anda atau pada diskusi yang Anda ikuti,Script akan menampilkan konten diskusi terbaru di jendela modal di halaman web。 -// @name:it GreasyFork Assistente alle notifiche -// @description:it Quando c’è una nuova risposta al tuo script o a una discussione a cui stai partecipando,Lo script visualizzerà il contenuto della discussione più recente in una finestra modale sulla pagina web。 -// @name:ja GreasyFork 通知アシスタント -// @description:ja スクリプトまたは参加しているディスカッションに対して新しい返信があったとき,スクリプトは、Web ページ上のモーダル ウィンドウに最新のディスカッション コンテンツを表示します。。 -// @name:ka GreasyFork შეტყობინებების ასისტენტი -// @description:ka როდესაც არის ახალი პასუხი თქვენს სკრიპტზე ან დისკუსიაზე, რომელშიც თქვენ მონაწილეობთ,სკრიპტი აჩვენებს უახლესი დისკუსიის შინაარსს მოდალურ ფანჯარაში ვებ გვერდზე。 -// @name:ko GreasyFork 알림 도우미 -// @description:ko 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 -// @name:nl GreasyFork Meldingsassistent -// @description:nl Wanneer er een nieuw antwoord is op uw script of op een discussie waaraan u deelneemt,Het script geeft de nieuwste discussie-inhoud weer in een modaal venster op de webpagina。 -// @name:nb GreasyFork Varslingsassistent -// @description:nb Når det kommer et nytt svar på manuset ditt eller på en diskusjon du deltar i,Skriptet vil vise det siste diskusjonsinnholdet i et modalt vindu på nettsiden。 -// @name:pl GreasyFork Asystent powiadomień -// @description:pl Kiedy pojawi się nowa odpowiedź na Twój skrypt lub dyskusję, w której bierzesz udział,Skrypt wyświetli najnowszą treść dyskusji w oknie modalnym na stronie internetowej。 -// @name:pt-BR GreasyFork Assistente de Notificação -// @description:pt-BR Quando há uma nova resposta ao seu script ou a uma discussão da qual você está participando,O script exibirá o conteúdo da discussão mais recente em uma janela modal na página da web。 -// @name:ro GreasyFork Asistent de notificare -// @description:ro Când există un nou răspuns la scenariul dvs. sau la o discuție la care participați,Scriptul va afișa cel mai recent conținut de discuție într-o fereastră modală pe pagina web。 -// @name:ru GreasyFork Помощник по уведомлениям -// @description:ru Когда появляется новый ответ на ваш сценарий или на обсуждение, в котором вы участвуете.,Скрипт будет отображать последнее содержимое обсуждения в модальном окне на веб-странице.。 -// @name:sk GreasyFork Asistent upozornení -// @description:sk Keď príde nová odpoveď na váš scenár alebo na diskusiu, ktorej sa zúčastňujete,Skript zobrazí najnovší obsah diskusie v modálnom okne na webovej stránke。 -// @name:sr GreasyFork Помоћник за обавештења -// @description:sr Када постоји нови одговор на ваш сценарио или на дискусију у којој учествујете,Скрипта ће приказати најновији садржај дискусије у модалном прозору на веб страници。 -// @name:sv GreasyFork Aviseringsassistent -// @description:sv När det kommer ett nytt svar på ditt manus eller på en diskussion du deltar i,Skriptet kommer att visa det senaste diskussionsinnehållet i ett modalt fönster på webbsidan。 -// @name:th GreasyFork ผู้ช่วยการแจ้งเตือน -// @description:th เมื่อมีการตอบกลับสคริปต์ของคุณหรือการสนทนาที่คุณเข้าร่วมใหม่,สคริปต์จะแสดงเนื้อหาการสนทนาล่าสุดในหน้าต่างโมดอลบนหน้าเว็บ。 -// @name:tr GreasyFork Bildirim Asistanı -// @description:tr Senaryonuza veya katıldığınız bir tartışmaya yeni bir yanıt geldiğinde,Komut dosyası, en son tartışma içeriğini web sayfasındaki kalıcı bir pencerede görüntüleyecektir.。 -// @name:ug GreasyFork ئۇقتۇرۇش ياردەمچىسى -// @description:ug قوليازمىڭىزغا ياكى سىز قاتناشقان مۇنازىرىگە يېڭى جاۋاب كەلگەندە,بۇ قوليازما ئەڭ يېڭى مۇنازىرە مەزمۇنىنى تور بەتتىكى مودېل كۆزنەكتە كۆرسىتىدۇ。 -// @name:uk GreasyFork Помічник сповіщень -// @description:uk Коли є нова відповідь на ваш сценарій або на обговорення, в якому ви берете участь,Сценарій відображатиме останній вміст обговорення в модальному вікні на веб-сторінці。 -// @name:vi GreasyFork Trợ lý thông báo -// @description:vi Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Tập lệnh sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 -// @name:zh-TW GreasyFork 通知助手 -// @description:zh-TW 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -// @name:zh-HK GreasyFork 通知助手 -// @description:zh-HK 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -// @name:fr-CA GreasyFork Assistant de notifications -// @description:fr-CA Lorsqu’il y a une nouvelle réponse à votre script ou à une discussion à laquelle vous participez,Le script affichera le dernier contenu de la discussion dans une fenêtre modale sur la page Web。 -// @description On GreasyFork, when there are new replies to your scripts or discussions you're involved in, the latest discussion content will be displayed on the webpage. -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.5.0.4 -// @icon data:image/png;base64,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 -// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @author 人民的勤务员 -// @license MIT -// @match https://greasyfork.org/* -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_registerMenuCommand -// @require https://unpkg.com/sweetalert2@10.16.6/dist/sweetalert2.min.js -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @modified 2024-09-11 07:52:25 -// ==/UserScript== -(function () { - 'use strict' - var DEBUG = false - const config = { - reversal: GM_getValue('reversal', true), - isInstalled: GM_getValue('Installed', false),//第一次不加载. - lastUpdated: GM_getValue('lastUpdated', 0),//上次更新时间 - delay: GM_getValue('delay', "30m"), // 格式如下: 1h1m1s, 1h1s, 1m, 1s, 1m1s - userId: null,//当前登录id - userName: null, - maxItem: GM_getValue('maxItem', 50),//访问时显示最大的信息数量 - saveDiscussions: GM_getValue('saveDiscussions', true)//可以不保存到本地,如保存到本地,未读每次都会弹出提示,反之保存在本地,未读只会弹出一次,除非有新回复, - } - const translate = (function () { - const userLang = location.pathname.split('/')[1] - const strings = { - 'en': { - reversal: 'Reverse Notifications:', - loadingquantity: 'Discussions loading quantity:', - popup: 'Pop-up time:', - Save: 'Save Discussions:', - Setoptions: 'Set Options', - ScriptsDiscussions: 'ScriptsDiscussions', - Discussions: 'Discussions', - title: 'GreasyFork Discussion Watcher Settings', - saveBtn: 'Save', - cancelBtn: 'Cancel', - }, 'zh-CN': { - reversal: '反转通知信息:', - loadingquantity: '讨论加载数量:', - popup: '弹出时间:', - Save: '保存讨论:', - Setoptions: '设置选项', - ScriptsDiscussions: '脚本讨论', - Discussions: '讨论', - title: 'GreasyFork 通知助手设置', - saveBtn: '保存', - cancelBtn: '取消' - }, 'zh-TW': { - reversal: '反轉通知信息:', - loadingquantity: '討論加載數量:', - popup: '彈出時間:', - Save: '保存討論:', - Setoptions: '設置選項', - ScriptsDiscussions: '腳本討論', - Discussions: '討論', - title: 'GreasyFork 通知助手設置', - saveBtn: '保存', - cancelBtn: '取消' - }, 'vi': { - reversal: 'Lật ngược thông báo:', - loadingquantity: 'Số lượng thảo luận đang tải:', - popup: 'Thời gian pop-up:', - Save: 'Lưu thảo luận:', - Setoptions: 'Cài đặt tùy chọn', - ScriptsDiscussions: 'Thảo luận kịch bản', - Discussions: 'Thảo luận', - title: 'Cài đặt Trình giám sát Thảo luận GreasyFork', - saveBtn: 'Lưu', - cancelBtn: 'Hủy' - }, 'ko': { - reversal: '알림 정보를 반전:', - loadingquantity: '토론 로딩 수량:', - popup: '팝업 시간:', - Save: '토론 저장:', - Setoptions: '옵션 설정', - ScriptsDiscussions: '스크립트 토론', - Discussions: '토론', - title: 'GreasyFork 토론 감시기 설정', - saveBtn: '저장', - cancelBtn: '취소' - }, 'ja': { - reversal: '通知情報を反転:', - loadingquantity: 'ディスカッションの読み込み数量:', - popup: 'ポップアップ時間:', - Save: 'ディスカッションを保存:', - Setoptions: 'オプションを設定', - ScriptsDiscussions: 'スクリプトディスカッション', - Discussions: 'ディスカッション', - title: 'GreasyForkディスカッションウォッチャーの設定', - saveBtn: '保存', - cancelBtn: 'キャンセル' - }, - } - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } - // return id => (strings[userLang] || strings.en)[id] || strings.en[id]; - }()) - function setSettings() { - const currentDelay = config.delay - const currentSaveDiscussions = GM_getValue('saveDiscussions', true) - const currentMax = config.maxItem - const content = ` -
- - -
- - -
- -
- -      ${config.userName} -
- ` - Swal.fire({ - imageUrl: "https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png", - imageWidth: 96, - imageHeight: 96, - footer: '', - title: translate('title'), - html: content, - focusConfirm: false, - showCancelButton: true, - confirmButtonText: translate('saveBtn'), - cancelButtonText: translate('cancelBtn') - }).then((result) => { - if (result.isConfirmed) { - const newDelay = document.getElementById('delay-input').value - const newSaveDiscussions = document.getElementById('save-discussions').checked - const reversalNotifications = document.getElementById('reversal-notifications').checked - const newMaxItem = document.getElementById('max-input').value - if (/^\d+(h|m|s)?(\d+(h|m|s)?)*$/.test(newDelay)) { - GM_setValue('delay', newDelay) - config.delay = newDelay - } else { - Swal.fire('Error', 'The refresh time format is incorrect!', 'error') - return - } - GM_setValue('saveDiscussions', newSaveDiscussions) - config.saveDiscussions = newSaveDiscussions - GM_setValue('reversal', reversalNotifications) - config.reversal = reversalNotifications - if (newMaxItem && !isNaN(newMaxItem)) { - GM_setValue('maxItem', newMaxItem) - config.maxItem = newMaxItem - } else { - Swal.fire('Error', 'Please enter a valid number for max item count!', 'error') - return - } - } - }) - } - GM_registerMenuCommand(translate('Setoptions'), setSettings) - function timeToSeconds(timeStr) { - let hours = 0, minutes = 0, seconds = 0 - const hoursMatch = timeStr.match(/(\d+)h/) - const minutesMatch = timeStr.match(/(\d+)m/) - const secondsMatch = timeStr.match(/(\d+)s/) - if (hoursMatch) { - hours = parseInt(hoursMatch[1], 10) - } - if (minutesMatch) { - minutes = parseInt(minutesMatch[1], 10) - } - if (secondsMatch) { - seconds = parseInt(secondsMatch[1], 10) - } - let totalSeconds = (hours * 3600) + (minutes * 60) + seconds - return totalSeconds - } - function isUpdate() { - const now = Math.floor(new Date().getTime() / 1000) - const lastUpdated = config.lastUpdated - const secondsDifference = now - lastUpdated - if (secondsDifference > timeToSeconds(config.delay)) { - GM_setValue('lastUpdated', now) - console.log(`时间超过${config.delay} 进行更新`) - return true - } - return DEBUG - } - function isMobileDevice() { - return /Mobi|Android|iPhone|iPad|iPod|Windows Phone/i.test(navigator.userAgent) - } - function fetchAndDisplayDiscussions(urls) { - if (DEBUG) GM_setValue('discussions', []) - if (!isUpdate()) return - let discussions = GM_getValue('discussions', []) - let fetchPromises = [] - let itemCount = 0 - var modalHTML = ` - - ` - document.body.insertAdjacentHTML('beforeend', modalHTML) - const discussionList = document.getElementById('discussion-list-a') - const modalContent = document.getElementById('modal-content') - const closeButton = document.getElementById('close-button') - if (isMobileDevice()) { - modalContent.appendChild(closeButton) - closeButton.style.alignSelf = 'flex-end' - closeButton.style.padding = '5px 5px' - } - var isFirst = false - urls.forEach(([url, description]) => { - fetchPromises.push( - fetch(url) - .then(response => response.text()) - .then(data => { - var parser = new DOMParser() - var doc = parser.parseFromString(data, 'text/html') - var elements = doc.querySelectorAll('.discussion-list > div > div') - var discussionsHTML = "" - var currentCount = 0 - elements.forEach(function (element) { - var discussionTitle = element.querySelector('.discussion-title') - var relativeTimes = element.querySelectorAll('relative-time') - if (!discussionTitle || relativeTimes.length === 0) return - var discussionTitleHref = discussionTitle.getAttribute('href') - var latestRelativeTime = relativeTimes[relativeTimes.length - 1].getAttribute('datetime') - var existingDiscussion = discussions.find(function (disc) { - return disc.discussionTitleHref === discussionTitleHref - }) - const userLinks = element.querySelectorAll('a.user-link') - if (existingDiscussion && existingDiscussion.relativeTime === latestRelativeTime) return - var discussionInfo = { - discussionTitleHref: discussionTitleHref, - relativeTime: latestRelativeTime, - lasteduserName: userLinks.length > 0 ? userLinks[userLinks.length - 1].textContent.trim() : null,//最后的发言人 - lastedID: userLinks.length > 0 ? userLinks[userLinks.length - 1].href.match(/\/users\/(\d+)-/)[1] : null//ANCHOR - 获取最后的发言人ID - } - if (existingDiscussion) { - existingDiscussion.relativeTime = latestRelativeTime - existingDiscussion.lasteduserName = discussionInfo.lasteduserName - } else { - discussions.push(discussionInfo) - } - if (discussionInfo.lastedID === config.userId || discussionInfo.lasteduserName === config.userName) { - // 最新发言ID是自己,或用户名是自己,跳过 - console.log("skip ") - return - } - var listItemHTML = '
' + element.innerHTML + '
' - currentCount++ - discussionsHTML += listItemHTML - itemCount++ - }) - if (currentCount > 0) { - discussionsHTML = `
${isFirst ? `` : `${description} (${currentCount})`}
` + discussionsHTML - isFirst = true // 后续描述都以嵌套结构添加 - } - discussionList.innerHTML += discussionsHTML - }) - ) - }) - Promise.all(fetchPromises).then(() => { - if (itemCount === 0) return - // 将讨论信息保存到 GM_setValue - if (config.saveDiscussions) GM_setValue('discussions', discussions) - if (!config.isInstalled) { - console.log('首次安装时,不弹出:') - GM_setValue('Installed', true) - return - } - // 计算关闭按钮的位置,并动态设置 - closeButton.style.position = 'absolute' - var closeButtonRect = closeButton.getBoundingClientRect() - var modalContentRect = modalContent.getBoundingClientRect() - if (isMobileDevice()) { - closeButton.style.top = `${discussionList.offsetTop - closeButtonRect.height}px` - closeButton.style.left = `${discussionList.right}px` - } else { - closeButton.style.top = `${modalContentRect.top - closeButtonRect.height}px` - closeButton.style.left = `${modalContentRect.width / 2}px` - } - document.getElementById('discussion-modal').style.visibility = 'visible' - // 设置所有链接在新窗口中打开 - var links = discussionList.querySelectorAll('a') - links.forEach(function (link) { - link.setAttribute('target', '_blank') - }) - closeButton.addEventListener('click', function () { - document.body.removeChild(document.getElementById('discussion-modal')) - }) - }).catch(error => { - console.error('无法获取讨论列表:', error) - }) - } - function getUserId() { - const profileLinkElement = document.querySelector("#nav-user-info > span.user-profile-link > a") - if (profileLinkElement) { - const href = profileLinkElement.getAttribute('href') - const match = href.match(/\/users\/(\d+)-/) - if (match) { - const userId = match[1] - config.userId = userId - const nameMatch = href.match(/\/users\/\d+-([^\/]+)$/) - config.userName = nameMatch ? decodeURIComponent(nameMatch[1]) : '' - return true - } else { - console.log('放弃操作,无法找到id') - return false - } - } else { - return false - } - } - if (getUserId()) { - fetchAndDisplayDiscussions([ - [`https://greasyfork.org/discussions?user=${config.userId}&read=unread&per_page=${config.maxItem}`, translate('Discussions')], - [`https://greasyfork.org/discussions?me=script&read=unread&per_page=${config.maxItem}`, translate('ScriptsDiscussions')]//添加read=unread参数,只提取未读信息,此版本为最后版本,Greasyfork已经逐步支持站内通知. - ]) - } else { - console.log("没有登录,放弃操作") - } - - const notificationList = document.querySelector(".notification-list") - if (notificationList && config.reversal) { - const items = Array.from(notificationList.children) - items.reverse() - notificationList.innerHTML = '' - items.forEach(item => notificationList.appendChild(item)) - - } -})() diff --git a/Script details/greasyfork-link/README.md b/Script details/greasyfork-link/README.md deleted file mode 100644 index 5b25ce0c5..000000000 --- a/Script details/greasyfork-link/README.md +++ /dev/null @@ -1,211 +0,0 @@ - -
- - - - - -
-

GreasyFork适用于增强

-

「 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 」

- Views - -

Download:Github | ⭐Greasy - Fork

- -
- - - -

-
- 该脚本存在BUG, 建议使用 - 【Greasyfork 糊裱匠】 - 【点我安装】 -
- 内置超多功能, 并且新脚本内的适用于增强功能经过测试完全的没有BUG -
-
-

- - - - - - -## 脚本功能 - -脚本详情页"适用于"下的网址去除默认跳转论坛搜索,改为可以点击的文本链接。点击时弹出提示: - -- 点击"确定"跳转搜索 -- 点击"取消"直接跳转到网站 - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - - -## 版本更新 - - - -### 0.1 版本 - -~~提供一个菜单可以修改数值点击生效方式~~ -- 0=弹出提示 -- 1=打开网址 -- 2=在论坛搜索 - - - -### 0.6 版本 -新增在脚本详情页下方增加一个更改跳转方式的选择框。 - - - - -### 0.7 版本 -新增大人的叉子 - - - -### 0.8 版本(2024 年 06 月 09 日 06:17:02) - -- 移除弹出提示,改为显示窗口,有“跳转,搜索,复制”三个操作 -- 移除更改点击行为时弹出提示,改为 toast 通知 -- 新增链接新窗口打开选项,默认为当前页面跳转 - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/greasyfork-link/greasyfork-link.user.js b/Script details/greasyfork-link/greasyfork-link.user.js deleted file mode 100644 index 1b072e818..000000000 --- a/Script details/greasyfork-link/greasyfork-link.user.js +++ /dev/null @@ -1,231 +0,0 @@ -// ==UserScript== -// @name Greasy fork脚本页面适用于网址增强 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.9.3.66 -// @description 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 -// @author 人民的勤务员 -// @match https://*.greasyfork.org/zh-CN/scripts/* -// @match https://*.sleazyfork.org/zh-CN/scripts/* -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYRBAceMUIR3QAAEg9JREFUeNrtXWlwVNW2/k4n3RkbM5FRMEHUBOIAekGMJV4lYVDBAeQ+IYTJODAVjwBXfRZFQRn04vthiQgGEOMDiylY4lB6g1CG8VFJLF4SSYiBRBDTSZM06aQzdH/vB+ccex5Id9IBV9WuJDvnnL3P+s7+9tprr723gBsUkkoAEAShG96VQABqAOHiz+EARog/7wAwGECkmMLEe/QAropJA+AigPMAKsWfbQCuianH7B2iAOgFQehEP4kA/xClqOQHANwL4B4AdwEYCiCkl8/uAFAPoAbAOQBnAZQDqALQhVtcEgAsB3AcwG/il0ofpzaxrONi2Qm3ksIFAFEAxgHYDqDVE+VJEhISwoKCAra0tFCj0TA/P9/uddb363Q6/vTTT/Lfw4YNo0KhaBXrMk6sm3CzKj8JwKsAvlGpVO2zZ8/mkSNHePnyZRoMBrsKcwTAnj17aC2LFi1yCYB1/vnz57ljxw7p73YA34h1TLqZFB8MIDcwMLBi6NChHUuXLuXFixdpT9wF4MyZMxw5ciQHDRrEjz/+mCR5+vRpjwGw/jszM5NRUVEdACoA5Ip1H7ASC+A5AP/rLf6WZMyYMXJeQkICSfLatWu9BqCjo4Pfffed+T0lAB4xs7YGjEwRrQ2jNztQSVQqlUeKdfc6B/e1ANgEIG0gKD4QwGYA3QCoUCgoCAIFQWBqaip//fVXOhN3AfBUsQCoUqluFACK73MBwGwACn+mnN0ATEqlki+//DIrKyu5detWJiUlySCcPXuWJpPJpwA0NjaSJBMTE+W8sWPH9gYAKRkA/Et8V7+SvwE4JFFOQkICT58+TZLs7u7mgQMHOGTIEK9RkKv8Y8eOkSQ3b95MtVrNESNG8MyZM94AgOJI+pD4zn5h108BUG1eyYiICBYVFckv1N3dzeLiYkZGRvYJAPPmzbNpXXv37vUYABeAVIvv3m/jhgAATwO4bK+Co0aNYnl5uYUSiouLOWTIEAqC4FMAADA/P58ajYatra389NNPGRoa6pHCIyMjSZLV1dXO6nRZ1EFAXytfBWCp6NxyWMFRo0bx2LFjMudLdHT77bf72t3Q67R48WLq9Xred999rq5tFscMqr788v9TdGS5fJHU1FSZk83pKCIiwq8BKC0t5bx589y9XiuCENAXnP+s6GFkUFAQU1JSmJiYSEGhcNoSvE1HfpiaRTryaZ8wBcAfUqFz5sxhXV0dy8vL+cL06QwIDHQKQklJiQ0decM68qN0WdSRz0zNGvMCd+3aJX/Rly5d4vQZM5y2hIFKRx6mal+YqLEAvrYubMqUKfKghyTr6+s5ITPzLzq6Pk7w2mBNIY7+bPw6QUFBzM3NpUajsQBhuht0ZM86uonoqEfUmVfcFh8BMDkqLCgoiNnZ2ezo6PiLjmzdFrO90el2C4LAQCdfNABmZ2dbtISGhgZmZWU5BWH06NG9piN3/Ui+8Mq6ce0FAKm94f2zkmNt/fr1fOSRR+isJdiloxkzvGIdeTIK9iMAukVX9g3NJ7wCwDRlyhTq9XoajUbW19czKyuLntLRDC/QkeTKHoBU1CJO6ng8jfgbAM6cOZPd3d0WCp00aRIDAgLcpiNvWEeSK3uA9gclnk5v5ko3h4eHc8eOHezq6iJJmkwmVlRUcNKkSQ4LVNmho4aGBs7oBR0JgsBHH32UZ8+etaAAazpQKpVctWoVy8rKqNfrqdfrWVZWxry8PIt+zN0IC3cpyN7zGhsbOWfOHOmaXE+iF/4PAJ944gkCYGxsLAsLC9nT0yODcOnSpRuiI1fW0YQJE6jT6ezSkfXMmrUyVCoVjxw54nDGrbi4WAbB3QgLTwGw9zzR+VjhTrSFIIZltFsXGhcXx0OHDtFoNHpER7PdpCOFQsG0tDRWVVU5VJ4968hcGatWrSJJarVazp07lzExMYyJieG8efPY0tJCkszLy/MowsJTAOw9b+/evVLYy6uufEVRYmyMxcOllhAfH8/CwkKP6Mgd60ihUDAjI4NlZWUOv153rCOpD8nJybGpx/z580mSpaWlHkVYeAqAvefpdDop7xtRxw5lnL2vv7a21oaOpJYg0dHEiROd9gnO6CgtLY1lZWUWrcsRCIcOHWJISIhdZbS3t5Mko6OjbeoQExNDktTr9R5FWHgKgIvntYs6dijbHRVYVVXVazqyZx39x0svOaQdR/Lee+/J5fz++++9AuBGbHxnALhx7XZHyk9wFKtp7+FxcXEe05E960i63xOpra3lPffcQwD88MMPbSgoOzvbpuy5c+fapaB+AKAVDgKCl3s68vOWdeSptLa28sUXXyQALliwwKYTbm5uZnZ2NqOjoxkdHc2cnBxqtVq7nXBfAyC23OXWylfieri22wVKzdxTOpKsnfr6+hsGwGAw8PXXXycA5uTkWJihR48edXjf4cOHqVQq+xWAjIwMirpWmgNwvzTy9aQFDBs2zCM6csfacUfa29u5cOFCGwAkEFatWsXy8nK2t7dTr9ezvLycK1eulJXfnwAUFhZS1PX95gDkoJeLI9yhI3etHVei0WiYmZk5kF3VbaLO5XjOjd54sCM6mjx5MtPT0z22dhzJiRMnGBUVNdDnCzaKukckgK+89WB7dFRdXc2amhqvKF+j0Tgdcwyg9JWoewwB8Is3H25NR94UjUbDkenpNwMAv+D6IkSMsDf69QUdeUsqKio4avRop069AZDaRd1jqq8KsaYjb4nRaGRJSQlHjR490FvBVAD4py8L8RUdGY1GVlRUMG3EiIEMwD8BoMDXBf1FRw5TAQD84KsCli1bxgcffNAv6Kg/Ju/dSD8A15fte/3hw4cPp8FgsBgNx8bGcufOnS7pyNESpt7QUV8DoFKpuGbNGtbW1tJgMLC2tpZr1qyxGI2LusdFX1Tg888/p1artYknui0iglu2bGFTU5MNJXV1dbG6upqLFi3iwYMHPe43/ImO9u3bZ7eO4uyYlC4CgM7bhcfHx7Ozs1Pye9j1iGZlZXHjxo388ssvWVxczN27d/ONN97g/fffT4VCwZiYGBYUFLCzs3PAWUcTJ04kSba0tDArK0t+X2la1MyNosPkyZNNNTU1LqMHgoOD+cEHH/DKlSvs7u52WoElS5aQJBcsWCB7Tjs6OlhTU8OgoCCLZhoZGcnBgwdTrVbbeE8lEDxpCY7oqC8p6LPPPiNJrl692iJ/9erVJMmdO3dKeUbMmjXLdOnSJZfRA+aL3Fy9yMGDB0mSDz30kE0o++LFi22uDw4OZmJiouziLioqkjvvmJgY7t+/v9d0tHXrVpcfjifi7DmSzyvdasSenp5OkqysrPwTgJSUlLaoqCiX0QMNDQ2cPHkyw8LCXH4BtbW1JMnBgwfLeY8//rgcNWB9/ebNm1lWVsbhw4cTAPfs2cO0tDQ5AsIbdBQfH8+tW7f2CQBSWE1oaKhFvrRQsLW19U8Ksu6EHUUPPPvss243wba2NrsT1OfOnSNJpqamWgRjkWRJSYnTZ3qDjtRqdZ9QkFRH6xAaQRDk4ALzTrjcnclrT8LGJQDM+R4A8/LySJLr1q2T86TYmfnz58uTNitWrGBpaSnb2tpYVVXldTrydfKgBZTbDMTcjR5wh4JiY2NtvmLJJpbCHnU6HXU6nUxt77//vo0Cq6qq5LAYX1pH/dAH/GDjinA3esCdTtg8SElKX3zxBUkyIyODr7zyCkmyoKBA/n9TU5Mc2RAZGUmFQsHIyEiL2CRvWke+AMADK6gACQkJa8LDwz2OHnDHDM3NzaW9KDtpH4fS0lKS5Lhx4+T/Nzc3kySnTZtGlUrFlJQU2QIzj03yZzqaNGmSPA7IzMykSqViZmambOA8+eSTfzrjZsyYkfv22297HD3gaiBmMBi4e/duu/+vrq6Ww1LMmqM8graWAwcO2K2HPw/WzOtsLvv377d0Ry9ZsuTvU6dO7fQ0esCdwUhLS4u178Mifse8pUkpMjKShYWFbGpqolar5bZt2xgWFmZTD1/TkTd8QWvXrmVdXR07OztZV1fHtWvXmluG8oTMUG9PSQLgnXfeyY6ODs6cOdPnVsdAsY4cTUl6dVLePK1bt44nTpzokxcagL4jeVLea2Ep/Z38lY5chaV4JTDLn0AYAHRkEZjlMjRxoLYEP6Yjm9BElbPg3L/oyOvpuL0NnpbfTAD4OR0t92iBxl905NXkcIGGwyVK/bDE/2amo+0uF+l9//339iaQvQ6AK0B6uRTIH+nI5SK9KIVC8e3JkyfZ1NRk404eyAD4CR3ZLlMlKVgv1H7qqac6X3rpJZ9TUF8D0M90ZH+htslksl65nRQeHl7l6AXDwsK4fft2trS08PLly1y6dKmFE02r1VKj0XD9+vVeB8BTMb8nKCiIQ4cO9RodBQYGcsWKFdRoNDQYDKypqeG7777LQYMGyfVNTk5mUVERV65c6fZWBTabdVi//P79+20q9swzz/DkyZM2+bNnz/YbAPbt2+f1mbX4+Hh5mawkZ8+epVqtZlRUFOvr6/nzzz9Ls31ub9YhbVdTYk8ZpaWlvPfee6lWq+XCr169ajff/LyW3ii0NxQkSV1dHR977DGGhITI89veoqPAwEA+/PDDPHXqFEkyPz+fGzZsYEdHB5977rkb2q4G4iZDLdYvMnbsWIuJF2f5V65c8RsAnn76acsQydtu87p1lJycTJI8d+4cKysr+fXXXzMoKOiGNmyCuM3WJnHbLZd7IdjLNxqN/d4JSyIpXEpqtdordCRNvD/wwAPyNjqdnZ1sa2vj+PHje1xuWWanEzaXNHHjOTli2dMX91cAIiIiWFtby/Hjx/eKjo4fP87Q0FAGBATwzTffJEn29PTwrbfekjbtc370iZUZak9mAzA0NDT4BQBSRLXCamDkKN8RBU2bNo0k+dVXX/V6sGY9rSpuSeDetpUuWgAgbtz62muvGf0BAGmjj6ysLIvIM0f51p1wWFgYx48fzwsXLpAkN2zYYHeO2RM6KikpYXBwMAHwhRde4F133eXVjVulLSwPbdq0qd8BsLclmLN8Z+ZzfX29fKpHb+KOKisrZctKnAP36tbFkvwtKirqfH8DkJCQwL1791os8HCWL0loaCg/+eQTNjc389q1aywqKmJycrLDPZE8oaOjR4/KYYiCIPhk825JpsDBkSX+mnrjgXWHjoxGo/lBD13w4fb1kq/oaVw/rOCmB0BaXLJp0ya7iwtNJhO3bdsm8b8JwH+hDw71CRCH1dpbAQAADAsLY15eHqurq9nY2MimpibW1tYyPz9fMm9NAApxA+fI3ChaKgBzAeS72gWwv+W67gFB6P2HmZiYiLvvvhtKpRIXLlxAXV0denp6COB/ALwmRjv0mTg9xuoWSUYAa9GHJyjZa0E2B7ndIukygH/ATw6Alo4y7LkFFO9XRxlaD9b+hesnR9ysyvfbwzzN3RazRSdU901kJQ2I42zNJVV0w7YMRAACAgI4c+ZMPv/880xKStIFBAR8hAFyoLP1fMIj1jNr/g5AXFwc33nnHaakpEgzWQPySHPr6c1ccVK63R8BMJlM8hLZMWPGGAIDAyvFOgfjJpIkAK8mJSX9OyMjw6BUKrlx40ZqNBrqdDoeOHCAd9xxh4VyZs2axR9//JFXr151GHkgiauTMKQIhWvXrlGj0fCjjz5iSEgIy8rKpMiOdqVS+a0YOpKEm1QEceQ8DsD2sLAw3YIFC1hSUkKtVsuamhrZPWxvsZ515AHcPAlDilAwGo1sa2tjY2Mjd+3axbS0NAYGBraK4YLjxLoJuIUkAcByQRCOp6WlXVm4cKFh6tSpnDhxIquqqlhVVcXp06czOjqawcHBNpEHcHFyxalTp+Rls/v27eOKFSsYExOjFwThN1wPEV8OJ4Gyt5IocX3BQk5QUNB/x8bGfpeenv6rWq226TOSkpJ44cIFedOPzs5OajQai4OXBw0axGXLlnHChAkE0J6cnHw+Ojr6W1xfFpQjlqXyF0pwKUajMUAQBMV1n5Zg4ehSKBRd4u8q0enVZcchppKudXXdli1bAvfs2aP+448/wvV6fbhOp7uzq6srzWg03knyDpIxJCMBRHR1dYWpVCoA0Hd1dV0FcBWABsDF8PDwOpVKVaXVan8ZOXJkZ1xcXNvhw4ebxZGsRZlSfUwmk0oQBLS3t3eLwVTuOPvsvo+z9zSX/wfl+jWwZp8+ogAAAABJRU5ErkJggg== -// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @license MIT -// @grant GM_getValue -// @grant GM_setValue -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(function () { - 'use strict' - let useWindowOpen = GM_getValue('useWindowOpen', false) // 默认在当前页面跳转 - let linkBehavior = GM_getValue('linkBehavior', 0) - let shouldMatchLink = false // 添加一个全局变量,默认为假 不显示适用于脚本的数量 - - function Toast(msg, duration) { - duration = isNaN(duration) ? 3000 : duration - var m = document.createElement('div') - m.innerHTML = msg - m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: black;line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: white;font-size: 16px;" - document.body.appendChild(m) - setTimeout(function () { - var d = 0.5 - m.style.transition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in' - m.style.opacity = '0'; setTimeout(function () { document.body.removeChild(m) }, d * 1000) - }, duration) - } - - - function navigateTo(url, useWindowOpen) { - if (useWindowOpen) { - window.open(url, '_blank') - } else { - window.location.href = url - } - } - - const ddElements = document.querySelectorAll('dd.script-show-applies-to ul.block-list.expandable > li') - - ddElements.forEach(dd => { - const link = dd.querySelector('a[title^="查看其他"]') - const text = dd.textContent.trim() - if (shouldMatchLink && link) { // 检查 shouldMatchLink 变量的值 - const match = link.title.match(/查看其他 (\d+) 个适用/) - if (match) { - const count = match[1] - const note = document.createElement('sup') - note.textContent = count - link.appendChild(note) - link.title = link.title.replace(/ \d+ /, ' ') - link.addEventListener('click', function (event) { - event.preventDefault() - handleLinkClick(text) - }) - } - } else { - const newLink = document.createElement('a') - newLink.textContent = text - newLink.href = '#' - newLink.addEventListener('click', function (event) { - event.preventDefault() - handleLinkClick(text) - }) - dd.textContent = '' - dd.appendChild(newLink) - } - }) - - function handleLinkClick(linkText) { - if (linkBehavior === 0) { - const bodyBackgroundColor = window.getComputedStyle(document.body).backgroundColor - const dialogBox = document.createElement('div') - dialogBox.style.position = 'fixed' - dialogBox.style.top = '50%' - dialogBox.style.left = '50%' - dialogBox.style.transform = 'translate(-50%, -50%)' - dialogBox.style.background = bodyBackgroundColor - dialogBox.style.padding = '20px' - dialogBox.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)' - dialogBox.style.borderRadius = '8px' - dialogBox.style.zIndex = '9999' - dialogBox.innerHTML = ` - × -

${linkText} 操作

- - - - ` - document.body.appendChild(dialogBox) - - let dialogInitialX, dialogInitialY, initialX, initialY - dialogBox.addEventListener('mousedown', onMouseDown) - dialogBox.addEventListener('touchstart', onTouchStart) - - function onMouseDown(event) { - dialogInitialX = dialogBox.offsetLeft - dialogInitialY = dialogBox.offsetTop - initialX = event.clientX - initialY = event.clientY - document.addEventListener('mousemove', onMouseMove) - document.addEventListener('mouseup', onMouseUp) - } - - function onTouchStart(event) { - dialogInitialX = dialogBox.offsetLeft - dialogInitialY = dialogBox.offsetTop - initialX = event.touches[0].clientX - initialY = event.touches[0].clientY - document.addEventListener('touchmove', onTouchMove) - document.addEventListener('touchend', onTouchEnd) - } - - function onMouseMove(event) { - const deltaX = event.clientX - initialX - const deltaY = event.clientY - initialY - dialogBox.style.left = dialogInitialX + deltaX + 'px' - dialogBox.style.top = dialogInitialY + deltaY + 'px' - } - - function onTouchMove(event) { - const deltaX = event.touches[0].clientX - initialX - const deltaY = event.touches[0].clientY - initialY - dialogBox.style.left = dialogInitialX + deltaX + 'px' - dialogBox.style.top = dialogInitialY + deltaY + 'px' - } - - function onMouseUp() { - document.removeEventListener('mousemove', onMouseMove) - document.removeEventListener('mouseup', onMouseUp) - } - - function onTouchEnd() { - document.removeEventListener('touchmove', onTouchMove) - document.removeEventListener('touchend', onTouchEnd) - } - - document.getElementById('linkTextSpan').style.pointerEvents = 'none' - document.getElementById('closeBtn').addEventListener('click', function () { - document.body.removeChild(dialogBox) - }) - - document.getElementById('copyLinkBtn').addEventListener('click', function () { - const linkText = document.getElementById('linkTextSpan').innerText - const tempTextarea = document.createElement('textarea') - tempTextarea.value = linkText - document.body.appendChild(tempTextarea) - tempTextarea.select() - document.execCommand('copy') - document.body.removeChild(tempTextarea) - document.body.removeChild(dialogBox) - Toast('文本已复制到剪贴板!', 1000) - }) - - document.getElementById('forumSearchBtn').addEventListener('click', function () { - const newUrl = `https://${location.host}/zh-CN/scripts/by-site/${linkText}` - navigateTo(newUrl, useWindowOpen) - document.body.removeChild(dialogBox) - }) - - document.getElementById('openUrlBtn').addEventListener('click', function () { - const originalUrl = `https://${linkText.replace(/\d+/g, '')}` - navigateTo(originalUrl, useWindowOpen) - document.body.removeChild(dialogBox) - }) - } else if (linkBehavior === 1) { - const originalUrl = `https://${linkText.replace(/\d+/g, '')}` - navigateTo(originalUrl, useWindowOpen) - } else if (linkBehavior === 2) { - const newUrl = `https://${location.host}/zh-CN/scripts/by-site/${linkText}` - navigateTo(newUrl, useWindowOpen) - } - } - - const appliesToSection = document.querySelector('dt.script-show-applies-to') - if (appliesToSection) { - const changeConfigText = document.createElement('span') - changeConfigText.textContent = '[适用于] ' - changeConfigText.style.fontWeight = 'bold' - - const checkboxLabel = document.createElement('label') - checkboxLabel.textContent = '新窗口打开' - checkboxLabel.style.marginLeft = '10px' - - const checkboxInput = document.createElement('input') - checkboxInput.type = 'checkbox' - checkboxInput.checked = useWindowOpen - checkboxInput.style.marginRight = '5px' - - checkboxInput.addEventListener('change', function () { - useWindowOpen = checkboxInput.checked - GM_setValue('useWindowOpen', useWindowOpen) - }) - - checkboxLabel.appendChild(checkboxInput) - - const selectList = document.createElement('select') - selectList.style.width = '7em' - const options = [ - { value: 0, text: '弹出提示' }, - { value: 1, text: '打开网址' }, - { value: 2, text: '论坛搜索' } - ] - options.forEach(option => { - const optionElement = document.createElement('option') - optionElement.textContent = option.text - optionElement.value = option.value - if (linkBehavior === option.value) { - optionElement.selected = true - } - selectList.appendChild(optionElement) - }) - selectList.addEventListener('change', function () { - linkBehavior = parseInt(selectList.value) - GM_setValue('linkBehavior', linkBehavior) - Toast(`点击"适用于"网址已设置为: ${options.find(option => option.value === linkBehavior).text}`, 1000) - }) - - appliesToSection.parentElement.appendChild(changeConfigText) - appliesToSection.parentElement.appendChild(selectList) - appliesToSection.parentElement.appendChild(checkboxLabel) - } -})(); - diff --git a/Script details/greasyfork-markdown-toolbar/README.md b/Script details/greasyfork-markdown-toolbar/README.md deleted file mode 100644 index 5f0cc774d..000000000 --- a/Script details/greasyfork-markdown-toolbar/README.md +++ /dev/null @@ -1,201 +0,0 @@ - -
- - - - - -
-

GreasyFork Markdown toobar

-

「 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 」

- Views - -

Download:Github | ⭐Greasy - Fork

更新记录

🛠️ GreasyFork Markdown Toobar 更新日志

-

📅 2024-10-02 - Ver: 2.0.5

-

新增: 谷歌快速翻译选中的文本到英格里斯
可在脚本设置翻译到语言:var translate = "en".

-

tl.gif

-
-

📅 2024-08-04 - Ver: 2.0.4

-

修改: GreasyFork markdown

-
    -
  • DOMContentLoaded 有时会与其他脚本冲突,导致监听失败。已更改为 load
  • -
-
- -
- - - -这个脚本是 [wOxxOm](https://greasyfork.org/en/scripts/6779-markdown-toolbar-for-gf-and-uso/code?version=179573) 编写的脚本的一个分支,旨在使其适应新的 GF 布局。 -感谢他制作了如此重要的脚本。 - -- 常用格式化按钮(仅限 Markdown) -- (论坛)HTML 和 Markdown 格式化帮助链接 -- CODE Markdown 按钮,用于将选中的文本包裹在 ` 或 ``` 中(如果选中了多行文本)。 -- 默认情况下,新的评论使用 MARKDOWN 格式 - 也可以在您的个人资料设置中进行设置。 - -该脚本在 Tampermonkey 和 Violentmonkey 上经过测试并正常工作。 -不支持 Greasemonkey 的任何版本(脚本可能工作,但未经过测试)。 - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - -**注意事项:** - -- 如果您遇到脚本问题,请在 [repo](https://github.com/darkred/Userscripts/issues) 中报告,始终欢迎 PR。 -- 另外,请注意,我并没有自己编写脚本: - 我付出了努力,使由其他人编写的、比我更有经验的脚本在新的 GF 布局中正常工作。 - 我的目标是恢复其功能,仅此而已。 -- `.markup_choice` 单选按钮是网站的,而不是脚本的! - ![markup_choice](https://i.imgur.com/fUkqf9I.jpg) -- 已知问题: - - 目前用于在切换到预览标签时隐藏工具栏的方法不幸存在缺陷: - 有时工具栏可能没有隐藏,或者之后没有恢复。 - 并且它被隐藏得比预期更早:点击预览时立即隐藏 - 而不是当预览标签本身获得红色焦点时才隐藏。 - -**截图:**(见附件) - -如果您有任何错误、修复建议或创意,请在我的 [GitHub repo](https://github.com/darkred/Userscripts) 上报告。 - -![tl.gif](https://s2.loli.net/2024/10/02/oI7mw3JLyzKCDRc.gif) -![Screenshot 1](https://greasyfork.s3.us-east-2.amazonaws.com/mjjezdy220vguyllvmpsgpfjqpz8) -![Screenshot 2](https://greasyfork.s3.us-east-2.amazonaws.com/asth9x7akm7goqddr5u0f7uia92k) -![Screenshot 3](https://greasyfork.s3.us-east-2.amazonaws.com/0imd0nxmpd0jztoqhgionebw4jfi) -![Screenshot 4](https://greasyfork.s3.us-east-2.amazonaws.com/u3fgy6vyn01419tqb3zvd9h96bue) - - - - - -## 使用帮助 - -推荐浏览器和脚本管理器: - -- **Greasemonkey + Waterfox** -- **Tampermonkey/Violentmonkey + Firefox** -- **Tampermonkey/Violentmonkey + Chrome** -- **Userscripts + ios Safari** -- **Violentmonkey/KiWiBrowser + Android** - -**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

更多用户脚本 / -回到顶部↑

- - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
- - - diff --git a/Script details/greasyfork-markdown-toolbar/README_en.md b/Script details/greasyfork-markdown-toolbar/README_en.md deleted file mode 100644 index 2a0282bf0..000000000 --- a/Script details/greasyfork-markdown-toolbar/README_en.md +++ /dev/null @@ -1,205 +0,0 @@ - -
- - - - - -
-

GreasyFork Markdown toobar

-

「 Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction 」

- Views - -

Download:Github | ⭐Greasy - Fork

Update record

🛠️ GreasyFork Markdown Toobar Change log

-

📅 2024-10-02 - Ver: 2.0.5

-

New: Quickly translate selected text from Google to Inglis
You can set the translation to language in the script:var translate = "en".

-

tl.gif

-
-

📅 2024-08-04 - Ver: 2.0.4

-

Revise: GreasyFork markdown

-
    -
  • DOMContentLoaded Sometimes conflicts with other scripts,Cause monitoring to fail。changed to load
  • -
-
- -
- - - -The script is a fork of [this script](https://greasyfork.org/en/scripts/6779-markdown-toolbar-for-gf-and-uso/code?version=179573) by wOxxOm, to work with the new GF layout. -Thanks for his work making such an essential script. - -- Common formatting buttons (markdown only) -- (forum) HTML & markdown formatting help links -- CODE markdown button that wraps selected text in ` or ``` if multiple lines are selected. -- MARKDOWN format by default for new comments - also can be set in your profile settings. - -The script works and is tested on Tampermonkey and Violentmonkey. -Greasemonkey -any version- is not supported (the script might work, but is not tested). - -**Notes:** - -- If you have an issue with the script, please report it in the [repo](https://github.com/darkred/Userscripts/issues), always open for PRs. -- Also, please keep in mind that I didn't write the script myself: - I put an effort to make this script, written by someone else, much more experienced than me, work in the new GF layout. - My aim is to restore the functionality. That's all. -- The `.markup_choice` radio buttons are of the site, not of the script! - ![markup_choice](https://i.imgur.com/fUkqf9I.jpg) -- Known issues: - - the method currently used to hide the toolbar when switching to the Preview tab is unfortunately flawed: - sometimes the toolbar might not be hidden, or isn't restored afterwards. - And it's hidden earlier than expected: it's hidden immediately, as you click Preview - not when the Preview tab itself gets the red focus. - -**Modification:** -[GreasyFork markdown](https://greasyfork.org/scripts/422887) - -- 2024-08-04T08:59:11 `DOMContentLoaded` sometimes conflicts with other scripts, causing the listener to fail. Changed to `load`. - -**Screenshots:** (see attachments) - -If you have any bugs, bug fixes or ideas, please report at my [GitHub repo](https://github.com/darkred/Userscripts) - -![tl.gif](https://s2.loli.net/2024/10/02/oI7mw3JLyzKCDRc.gif) -![Screenshot 1](https://greasyfork.s3.us-east-2.amazonaws.com/mjjezdy220vguyllvmpsgpfjqpz8) -![Screenshot 2](https://greasyfork.s3.us-east-2.amazonaws.com/asth9x7akm7goqddr5u0f7uia92k) -![Screenshot 3](https://greasyfork.s3.us-east-2.amazonaws.com/0imd0nxmpd0jztoqhgionebw4jfi) -![Screenshot 4](https://greasyfork.s3.us-east-2.amazonaws.com/u3fgy6vyn01419tqb3zvd9h96bue) - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - -Recommended browsers and script managers: - -- **Greasemonkey + Waterfox** -- **Tampermonkey/Violentmonkey + Firefox** -- **Tampermonkey/Violentmonkey + Chrome** -- **Userscripts + ios Safari** -- **Violentmonkey/KiWiBrowser + Android** - -**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

More user scripts / -back to top↑

- - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
- - - diff --git a/Script details/greasyfork-markdown-toolbar/greasyfork-markdown-toolbar.user.js b/Script details/greasyfork-markdown-toolbar/greasyfork-markdown-toolbar.user.js deleted file mode 100644 index 3785bedc3..000000000 --- a/Script details/greasyfork-markdown-toolbar/greasyfork-markdown-toolbar.user.js +++ /dev/null @@ -1,456 +0,0 @@ -// ==UserScript== -// @name Markdown toolbar for GreasyFork -// @name:zh-CN GreasyFork markdown -// @description:zh-CN 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 -// @name:ar GreasyFork markdown -// @description:ar التنسيق الافتراضي المستخدم في المنتدى هوMarkdown,إضافة رابط تعليمات التنسيق ونشر برنامج نصي جديد,شريط أدوات وقت الرد مع تمكين التحرير السريع -// @name:bg GreasyFork markdown -// @description:bg Форматът по подразбиране, използван във форума, еMarkdown,Добавете връзка за помощ при форматиране и публикувайте нов скрипт,Лента с инструменти за време за отговор с активирано бързо редактиране -// @name:cs GreasyFork markdown -// @description:cs Výchozí formát používaný ve fóru jeMarkdown,Přidejte odkaz na nápovědu formátu a publikujte nový skript,Panel nástrojů doby odpovědi s povolenou rychlou úpravou -// @name:da GreasyFork markdown -// @description:da Standardformatet brugt i forummet erMarkdown,Tilføj format hjælpelink og udgiv nyt script,Værktøjslinjen Svartid med hurtig redigering aktiveret -// @name:de GreasyFork markdown -// @description:de Das im Forum verwendete Standardformat istMarkdown,Fügen Sie einen Link zur Formathilfe hinzu und veröffentlichen Sie ein neues Skript,Symbolleiste „Antwortzeit“ mit aktivierter Schnellbearbeitung -// @name:el GreasyFork markdown -// @description:el Η προεπιλεγμένη μορφή που χρησιμοποιείται στο φόρουμ είναιMarkdown,Προσθήκη συνδέσμου βοήθειας μορφής και δημοσίευση νέου σεναρίου,Γραμμή εργαλείων χρόνου απάντησης με ενεργοποιημένη τη γρήγορη επεξεργασία -// @name:en GreasyFork markdown -// @description:en The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled -// @name:eo GreasyFork markdown -// @description:eo La defaŭlta formato uzata en la forumo estasMarkdown,Aldonu formatan helpligon kaj publikigu novan skripton,Ilobreto de responda tempo kun rapida redaktado ebligita -// @name:es GreasyFork markdown -// @description:es El formato predeterminado utilizado en el foro esMarkdown,Agregue un enlace de ayuda de formato y publique un nuevo script,Barra de herramientas de tiempo de respuesta con edición rápida habilitada -// @name:fi GreasyFork markdown -// @description:fi Foorumilla käytetty oletusmuoto onMarkdown,Lisää muodon ohjelinkki ja julkaise uusi skripti,Vastausajan työkalupalkki, jossa pikamuokkaus käytössä -// @name:fr GreasyFork markdown -// @description:fr Le format par défaut utilisé dans le forum estMarkdown,Ajouter un lien d’aide au format et publier un nouveau script,Barre d’outils de temps de réponse avec édition rapide activée -// @name:he GreasyFork markdown -// @description:he פורמט ברירת המחדל בשימוש בפורום הואMarkdown,הוסף קישור עזרה בפורמט ופרסם סקריפט חדש,סרגל הכלים של זמן תשובה עם עריכה מהירה מופעלת -// @name:hr GreasyFork markdown -// @description:hr Zadani format koji se koristi na forumu jeMarkdown,Dodajte vezu za pomoć u formatu i objavite novu skriptu,Alatna traka vremena odgovora s omogućenim brzim uređivanjem -// @name:hu GreasyFork markdown -// @description:hu A fórumban használt alapértelmezett formátum aMarkdown,Formátum súgóhivatkozás hozzáadása és új szkript közzététele,Válaszidő eszköztár a gyors szerkesztés engedélyezésével -// @name:id GreasyFork markdown -// @description:id Format default yang digunakan dalam forum adalahMarkdown,Tambahkan tautan bantuan format dan publikasikan skrip baru,Bilah alat waktu balasan dengan pengeditan cepat diaktifkan -// @name:it GreasyFork markdown -// @description:it Il formato predefinito utilizzato nel forum èMarkdown,Aggiungi il collegamento alla guida sul formato e pubblica un nuovo script,Barra degli strumenti del tempo di risposta con modifica rapida abilitata -// @name:ja GreasyFork markdown -// @description:ja フォーラムで使用されるデフォルトの形式は次のとおりです。Markdown,フォーマットヘルプリンクを追加し、新しいスクリプトを公開します,クイック編集が有効になった返信時間ツールバー -// @name:ka GreasyFork markdown -// @description:ka ფორუმში გამოყენებული ნაგულისხმევი ფორმატი არისMarkdown,დაამატეთ ფორმატის დახმარების ბმული და გამოაქვეყნეთ ახალი სკრიპტი,პასუხის დროის ინსტრუმენტთა პანელი ჩართულია სწრაფი რედაქტირებით -// @name:ko GreasyFork markdown -// @description:ko 포럼에서 사용되는 기본 형식은 다음과 같습니다.Markdown,형식 도움말 링크 추가 및 새 스크립트 게시,빠른 편집이 활성화된 응답 시간 도구 모음 -// @name:nl GreasyFork markdown -// @description:nl Het standaardformaat dat op het forum wordt gebruikt isMarkdown,Voeg de Help-link voor het formaat toe en publiceer een nieuw script,Werkbalk Antwoordtijd met snelle bewerking ingeschakeld -// @name:nb GreasyFork markdown -// @description:nb Standardformatet som brukes i forumet erMarkdown,Legg til format hjelpekobling og publiser nytt skript,Verktøylinje for svartid med hurtigredigering aktivert -// @name:pl GreasyFork markdown -// @description:pl Domyślnym formatem używanym na forum jestMarkdown,Dodaj link pomocy formatu i opublikuj nowy skrypt,Pasek narzędzi czasu odpowiedzi z włączoną szybką edycją -// @name:pt-BR GreasyFork markdown -// @description:pt-BR O formato padrão usado no fórum éMarkdown,Adicionar link de ajuda de formato e publicar novo script,Barra de ferramentas de tempo de resposta com edição rápida habilitada -// @name:ro GreasyFork markdown -// @description:ro Formatul implicit folosit în forum esteMarkdown,Adăugați linkul de ajutor pentru format și publicați un nou script,Bara de instrumente pentru timpul de răspuns cu editarea rapidă activată -// @name:ru GreasyFork markdown -// @description:ru Формат по умолчанию, используемый на форуме:Markdown,Добавьте ссылку на справку по формату и опубликуйте новый скрипт.,Панель инструментов времени ответа с включенным быстрым редактированием -// @name:sk GreasyFork markdown -// @description:sk Predvolený formát používaný vo fóre jeMarkdown,Pridajte odkaz na pomoc s formátom a publikujte nový skript,Panel s nástrojmi času odpovede s povolenou rýchlou úpravou -// @name:sr GreasyFork markdown -// @description:sr Подразумевани формат који се користи на форуму јеMarkdown,Додајте везу за помоћ за формат и објавите нову скрипту,Трака са алаткама за време одговора са омогућеним брзим уређивањем -// @name:sv GreasyFork markdown -// @description:sv Standardformatet som används i forumet ärMarkdown,Lägg till hjälplänk för format och publicera nytt skript,Verktygsfältet Svarstid med snabb redigering aktiverad -// @name:th GreasyFork markdown -// @description:th รูปแบบเริ่มต้นที่ใช้ในฟอรั่มคือMarkdown,เพิ่มลิงก์วิธีใช้รูปแบบและเผยแพร่สคริปต์ใหม่,แถบเครื่องมือเวลาตอบกลับพร้อมเปิดใช้งานการแก้ไขด่วน -// @name:tr GreasyFork markdown -// @description:tr Forumda kullanılan varsayılan format:Markdown,Biçim yardım bağlantısı ekleyin ve yeni komut dosyası yayınlayın,Hızlı düzenlemenin etkin olduğu yanıt süresi araç çubuğu -// @name:ug GreasyFork markdown -// @description:ug مۇنبەردە ئىشلىتىلگەن سۈكۈتتىكى فورماتىMarkdown,فورمات ياردەم ئۇلانمىسىنى قوشۇڭ ۋە يېڭى قوليازما ئېلان قىلىڭ,تېز تەھرىرلەش ئىقتىدارى بىلەن ۋاقىت قورال ستونىغا جاۋاب قايتۇرۇڭ -// @name:uk GreasyFork markdown -// @description:uk Стандартний формат, який використовується на форуміMarkdown,Додайте посилання на довідку щодо формату та опублікуйте новий сценарій,Панель інструментів часу відповіді з увімкненим швидким редагуванням -// @name:vi GreasyFork markdown -// @description:vi Định dạng mặc định được sử dụng trong diễn đàn làMarkdown,Thêm liên kết trợ giúp định dạng và xuất bản tập lệnh mới,Thanh công cụ thời gian trả lời có bật tính năng chỉnh sửa nhanh -// @name:zh-TW GreasyFork markdown -// @description:zh-TW 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 -// @name:zh-HK GreasyFork markdown -// @description:zh-HK 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 -// @name:fr-CA GreasyFork markdown -// @description:fr-CA Le format par défaut utilisé dans le forum estMarkdown,Ajouter un lien d’aide au format et publier un nouveau script,Barre d’outils de temps de réponse avec édition rapide activée -// @namespace https://github.com/ChinaGodMan/UserScripts -// @description Select Markdown format by default, add help links, add toolbar formatting buttons for markdown -// @author wOxxOm, darkred, 人民的勤务员 -// @contributor JixunMoe -// @contributor 人民的勤务员 -// @license MIT -// @grant GM_xmlhttpRequest -// @include https://greasyfork.org/*discussions/* -// @include https://greasyfork.org/*scripts/*/versions/new* -// @include https://greasyfork.org/*scripts/*/feedback* -// @include https://greasyfork.org/*script_versions/new* -// @include https://greasyfork.org/*/conversations/* -// @include https://greasyfork.org/*/users/edit -// @grant GM_addStyle -// @run-at document-start -// @version 2.0.5 -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAoCAQAAADgMuRfAAABWklEQVR4Ae3YJQIUYRxA8R8OESs4BXcOsHXqngDnFtglKFjEqVOwjtNxd3f547Duux/2Xhx7Y98ITLbHdZHA6/aYDLM9EAl9YB77RWIP8Vgk9hkhvaKp/yP+R5SyXdRxl1KipqV0ETHGGVHDM8YMLoKZHogKH5jJICPIRIUZg45giyhxCykihsnFd3PD0kQwzkUhXDGOVBEs9+azy0kZwZrPShFRf7MrBxfx0hK1WOLl4CLCReNqX6Z1NrFeM9a3HxFyleSibsQbBY0oeNNJRNiolI1NDvZd09Rjmruis4j3Mj/IvG8SEc4boxZjnBedRZQ+sqZ50NJld0gt9otuIsJJIz97suVrf6NKNopuI8L2z7ZzAxaVUhRdR3Qw3zML/WChZ2kiwkUTwUQXRaqIcNzIzx4RKSPC1s/+ia/8/yP+R/wmP0kOicQeYl76H2cw2X63RAJv2W8ynwCwbA7V/z22eQAAAABJRU5ErkJggg== -// @iconbak https://raw.githubusercontent.com/dcurtis/markdown-mark/master/png/66x40-solid.png -// @supportURL https://github.com/darkred/Userscripts/issues -// @downloadURL https://update.greasyfork.org/scripts/505164/Markdown%20toolbar%20for%20GreasyFork.user.js -// @updateURL https://update.greasyfork.org/scripts/505164/Markdown%20toolbar%20for%20GreasyFork.meta.js -// ==/UserScript== - -// Example URLS to test: -// https://greasyfork.org/en/discussions/new -// https://greasyfork.org/en/scripts/422887-markdown-toolbar-for-greasyfork/discussions/78139 -// https://greasyfork.org/en/scripts/23493/versions/new -// https://greasyfork.org/en/scripts/422445-github-watcher/feedback -// https://greasyfork.org/en/users/2160-darkred/conversations/new -// https://greasyfork.org/en/users/edit -var translate = "en" -var inForum = location.href.indexOf('/discussions') > 0 -var inPostNewScriptVer = location.href.indexOf('/versions/new') > 0 - -function contains(selector, text) { - var elements = document.querySelectorAll(selector) - return Array.from(elements).filter(function (element) { - return RegExp(text).test(element.textContent) - }) -} -//DOMContentLoaded有时会和其他脚本冲突导致监听失败 -window.addEventListener('load', function (e) { - var refElements = document.querySelectorAll(` - input[name="authenticity_token"] + .label-note, - label[for="script-version-additional-info-0"] + .label-note, - label[for="changelog"] + .label-note, - label[for="conversation_messages_attributes_0_content"] + .label-note, - label[for="user_profile"] + .label-note, - form > .label-note - `) - - - if (inForum) { - refElements.forEach(element => { - element.insertAdjacentHTML('beforeend', '
') - addFeatures(element) - }) - } else { // not in Forum - // This page has 2 non-code textareas: 'Additional info' and 'Changelog' - if (inPostNewScriptVer) { - refElements.forEach(element => { - addFeatures(element.appendChild(document.createElement('br'))) - }) - } else { // every other page - if (nn = document.querySelectorAll('input[value="markdown"]')) { - for (var n, i = 0; (i < nn.length) && (n = nn[i]); i++) { - if (location.href.indexOf('/script_versions/')) { - n.click() - } - n.click() // posting a new script - addFeatures(n.parentNode.appendChild(document.createElement('br'))) - } - } - } - } -}) - -function addFeatures(n) { - if (!n) { - return - } - - var form = n.closest('form') - - if (form.action.indexOf('/edit') < 0) { - //NOTE - 取消自动点击 - // n.click() - } - - if (inPostNewScriptVer) { - n.parentNode.textAreaNode = n.parentNode.querySelector('textarea.TextBox, textarea.previewable, div.previewable textarea') - } else { - n.parentNode.textAreaNode = form.querySelector('textarea.TextBox, textarea.previewable, div.previewable textarea') - } - - GM_addStyle(` - .mdButton { - display: inline-block; - cursor: pointer; - margin: 0px; - font-size: 12px; - line-height: 1; - font-weight: bold; - padding: 4px 6px; - background: -moz-linear-gradient(center bottom , #CCC 0%, #FAFAFA 100%) repeat scroll 0% 0% #F8F8F8; - border: 1px solid #999; - border-radius: 2px; - white-space: nowrap; - text-shadow: 0px 1px 0px #FFF; - box-shadow: 0px 1px 0px #FFF inset, 0px -1px 2px #BBB inset; - color: #333; - } - `) - - // Add buttons - btnMake(n, '' + __('B') + '', __('Bold'), '**') - btnMake(n, __('#') , __('Title'), '#', ' ') - btnMake(n, '
  • ' +__('-')+'
  • ', __('List'), '- ', ' ') - btnMake(n, __( '>'), __('blockquote'), '
    ', '
    ') - btnMake(n, ''+__('标记')+'', __('高亮显示选中文本'), '', '') - btnMake(n, '' + __('I') + '', __('Italic'), '*') - btnMake(n, '
    ' + __('居中') + '
    ', __('内容居中显示'), '
    ','
    ') - btnMake(n, '' + __('U') + '', __('Underline'), '', '') - btnMake(n, '' + __('S') + '', __('Strikethrough'), '', '') - btnMake(n, '<br>', __('Force line break'), '
    ', '', true) - btnMake(n, __('---'), __('Horizontal line'), '\n\n---\n\n', '', true) - btnMake(n, __('URL'), __('Add URL to selected text'), - function (e) { - try { - edWrapInTag('[', '](' + prompt(__('URL') + ':') + ')', edInit(e.target)) - } catch (ex) { } - } - ) - btnMake(n, __('Image (https)'), __('Convert selected https://url to inline image'), '![' + __('image') + '](', ')') - // if (inForum) { - btnMake(n, __('Table'), __('Insert table template'), __('\n| head1 | head2 |\n|-------|-------|\n| cell1 | cell2 |\n| cell3 | cell4 |\n'), '', true) - //} 都添加表格 - btnMake(n, __('Code'), __('Apply CODE markdown to selected text'), - function (e) { - var ed = edInit(e.target) - if (ed.sel.indexOf('\n') < 0) { - edWrapInTag('`', '`', ed) - } else { - edWrapInTag( - ((ed.sel1 == 0) || (ed.text.charAt(ed.sel1 - 1) == '\n') ? '' : '\n') + '```' + (ed.sel.charAt(0) == '\n' ? '' : '\n'), - (ed.sel.substr(-1) == '\n' ? '' : '\n') + '```' + (ed.text.substr(ed.sel2, 1) == '\n' ? '' : '\n'), - ed - ) - } - } - ) - btnMake(n, __("谷歌翻译"), __("快速翻译选中的内容"), - function (e) { - const translatedzh = edInit(e.target) - translateText(translatedzh.sel).then(translatedText => { - - edWrapInTag("", translatedText, translatedzh, true) - }).catch(error => { - alert(" GoogleTranslate ERROR!!! ") - }) - } - ) - const WeiWeiimages = [ - ["npzhyrb4txdoegwl82bkapekufb5", "维维发问:你有眼界吗?"], - ["gkhj9p2qhtm62uza3qveshtooe2u", "维维被你震撼到了!"], - ["p0i0f5xubhln1wvph3ip70zhpzqq", "维维发问:什么叫做搬起石头砸自己的脚?"], - ["nahzae6vc3d3osq861cbt8uaopkk", "维维断言:这就是个国际笑话"], - ["kzpmox79idq4gmsbyoj0yyuhx13v", "维维发问:你怎么敢讲这种话的?"], - ] - const WeiWeiLoveYou = WeiWei(WeiWeiimages, true) - btnMake(n, "维维嘲讽", "来自爱国教授维维的五连问", __(`\n\n` + WeiWeiLoveYou + `\n\n -`), '', true) - function WeiWei(images, WeiWeiSays) { - let html = ` -

    爱国教授维维有话对你说


    -

    ` - images.forEach(([imgSrc, rtText]) => { - const WeiWeiImg = `https://greasyfork.s3.us-east-2.amazonaws.com/${imgSrc} ` - if (WeiWeiSays) { - html += ` - - - ${rtText} - ` - } else { - html += `\n` - } - }) - - html += ` -
    -

    -
    ` - return html - } - var allPreviewTabs = contains('.preview-tab', 'Preview') - allPreviewTabs.forEach(element => { - element.onclick = function (event) { - let target = event.target // delegation: where was the click? - if (target.tagName !== 'A' && target.tagName !== 'SPAN') { return } - form.querySelectorAll('.Button').forEach(element2 => element2.style.display = 'none') - } - }) - - var allWriteTabs = contains('.write-tab', 'Write') - allWriteTabs.forEach(element => { - element.onclick = function (event) { - let target = event.target // where was the click? - if (target.tagName !== 'A' && target.tagName !== 'SPAN') { return } - form.querySelectorAll('.Button').forEach(element2 => element2.style.display = 'inline-block') - } - }) -} - -function btnMake(afterNode, label, title, tag1_or_cb, tag2, noWrap) { - var a = document.createElement('a') - a.className = 'mdButton' - a.innerHTML = label - a.title = title - - a.addEventListener('click', - typeof (tag1_or_cb) === 'function' ? tag1_or_cb : // if - noWrap ? function (e) { edInsertText(tag1_or_cb, edInit(e.target)) } : // else if - function (e) { edWrapInTag(tag1_or_cb, tag2, edInit(e.target)) } // else - ) - - var nparent - inForum ? nparent = afterNode : nparent = afterNode.parentNode - a.textAreaNode = nparent.textAreaNode || nparent.parentNode.querySelector('textArea') - nparent.appendChild(a) -} - -function edInit(btn) { - var ed = { node: btn.textAreaNode || btn.parentNode.textAreaNode } - ed.sel1 = ed.node.selectionStart - ed.sel2 = ed.node.selectionEnd - ed.text = ed.node.value - ed.sel = ed.text.substring(ed.sel1, ed.sel2) - return ed -} - -function edWrapInTag(tag1, tag2, ed, rep = false) { - if (rep) { - ed.node.value = ed.text.substr(0, ed.sel1) + (tag2 ? tag2 : tag1) + ed.text.substr(ed.sel2) - } else { - ed.node.value = ed.text.substr(0, ed.sel1) + tag1 + ed.sel + (tag2 ? tag2 : tag1) + ed.text.substr(ed.sel2) - } - ed.node.setSelectionRange(ed.sel1 + tag1.length, ed.sel1 + tag1.length + ed.sel.length) - if (rep) return//不选中,文本太长了,选中干啥, - ed.node.focus() -} - -function edInsertText(text, ed) { - ed.node.value = ed.text.substr(0, ed.sel2) + text + ed.text.substr(ed.sel2) - ed.node.setSelectionRange(ed.sel2 + text.length, ed.sel2 + text.length) - ed.node.focus() -} - -var __ = (function (l, langs) { - var lang = langs[l] || langs[l.replace(/-.+/, '')] - return lang ? function (text) { return lang[text] || text } - : function (text) { return text } // No matching language, fallback to english -})(location.pathname.match(/^\/(.+?)\//)[1], { - 'zh-CN': { - 'B': '粗体', - 'I': '斜体', - 'U': '下划线', - 'S': '删除线', - 'Bold': '粗体', - '-': '列表', - '#': '标题', - '>': '引用', - '---': '分割线', - 'Italic': '斜体', - 'Underline': '下划线', - 'Strikethrough': '删除线', - 'Force line break': '强制换行', - 'Horizontal line': '水平分割线', - 'URL': '链接', - 'Title': '正文标题H1', - 'List': '无序列表,用作分类下的信息展示', - 'Add URL to selected text': '为所选文字添加链接', - 'Image (https)': '图片 (https)', - 'Convert selected https://url to inline image': '将所选地址转换为行内图片', - 'image': '图片描述', // Default image alt value - 'Table': '表格', - 'blockquote': '引用文本', - 'Insert table template': '插入表格模板', - 'Code': '代码', - 'Apply CODE markdown to selected text': '将选中代码围起来', - '\n| head1 | head2 |\n|-------|-------|\n| cell1 | cell2 |\n| cell3 | cell4 |\n': - '\n| 表头 1 | 表头 2 |\n|-------|-------|\n| 表格 1 | 表格 2 |\n| 表格 3 | 表格 4 |\n' - }, - 'ru': { - 'B': 'Ж', - 'I': 'К', - 'U': 'Ч', - 'S': 'П', - 'Bold': 'Жирный', - 'Italic': 'Курсив', - 'Underline': 'Подчеркнутый', - 'Strikethrough': 'Перечеркнутый', - 'Force line break': 'Новая строка', - 'Horizontal line': 'Горизонтальная линия', - 'URL': 'ссылка', - 'Title': 'Заголовок', - 'List': 'Неупорядоченный список', - 'Add URL to selected text': 'Добавить ссылку к выделенному тексту', - 'Image (https)': 'Картинка (https)', - 'Convert selected https://url to inline image': 'Преобразовать выделенный https:// адрес в картинку', - 'image': 'картинка', // Default image alt value - 'Table': 'Таблица', - 'Insert table template': 'Вставить шаблон таблицы', - 'Code': 'Код', - 'Apply CODE markdown to selected text': 'Пометить выделенный фрагмент как программный код', - '\n| head1 | head2 |\n|-------|-------|\n| cell1 | cell2 |\n| cell3 | cell4 |\n': - '\n| заголовок1 | заголовок2 |\n|-------|-------|\n| ячейка1 | ячейка2 |\n| ячейка3 | ячейка4 |\n' - }, - 'fr': { - 'B': 'G', - 'I': 'I', - 'U': 'S', - 'S': 'B', - 'Bold': 'Gras', - 'Italic': 'Italique', - 'Underline': 'Souligné', - 'Strikethrough': 'Barré', - 'Force line break': 'Forcer le saut de ligne', - 'Horizontal line': 'Ligne horizontale', - 'URL': 'URL', - 'Title': 'Titre', - 'List': 'Liste non ordonnée', - 'Add URL to selected text': 'Ajouter URL au texte sélectionné', - 'Image (https)': 'Image (https)', - 'Convert selected https://url to inline image': 'Convertir https://url sélectionnés en images', - 'image': 'image', // Default image alt value - 'Table': 'Tableau', - 'Insert table template': 'Insérer un modèle de table', - 'Code': 'Code', - 'Apply CODE markdown to selected text': 'Appliquer CODE markdown au texte sélectionné', - '\n| head1 | head2 |\n|-------|-------|\n| cell1 | cell2 |\n| cell3 | cell4 |\n': - '\n| En-tête 1 | En-tête 2 |\n|-------|-------|\n| cellule 1 | cellule 2 |\n| cellule 3 | cellule 4 |\n' - } -}) -function translateText(text) { - return new Promise((resolve, reject) => { - var api = 'https://translate.googleapis.com/translate_a/single' - var params = { - client: 'gtx', - dt: 't', - sl: 'auto', - tl: translate, - q: text - } - - GM_xmlhttpRequest({ - method: 'GET', - url: api + buildQueryString(params), - onload: function (response) { - try { - var data = JSON.parse(response.responseText.replace("'", '\u2019')) - var translatedText = data[0].reduce((acc, item) => acc + item[0], '') - resolve(translatedText) - } catch (error) { - console.error('翻译失败:', error) - reject('翻译失败') - } - }, - onerror: function (response) { - console.error('请求翻译失败:', response.statusText) - reject('请求翻译失败') - } - }) - }) -} -function buildQueryString(params) { - return '?' + Object.keys(params).map(function (key) { - return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]) - }).join('&') -} diff --git a/Script details/greasyfork-ranks/README.md b/Script details/greasyfork-ranks/README.md deleted file mode 100644 index c1cf14a37..000000000 --- a/Script details/greasyfork-ranks/README.md +++ /dev/null @@ -1,183 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork 显示脚本评分

    -

    「 脚本列表添加评价分数 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - -# Greasyfork ranks - -**中文:** -- 在脚本列表名称后面显示脚本评分 - -**繁体:** -- 在腳本列表名稱後面添加腳本評分 - -**English:** -- Display the script rating after the script list name - -**French:** -- Afficher la note du script après le nom de la liste de scripts - -**Japanese:** -- スクリプトリスト名の後にスクリプト評価を表示する - -**Korean:** -- 스크립트 목록 이름 뒤에 스크립트 평가 표시 - - - -## photo: -![rank.png](https://s2.loli.net/2024/08/05/wvyAz8iVGMWJjEQ.png) - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/greasyfork-search/README.md b/Script details/greasyfork-search/README.md deleted file mode 100644 index d9f7eb21d..000000000 --- a/Script details/greasyfork-search/README.md +++ /dev/null @@ -1,198 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork 高级搜索

    -

    「 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# GreasyFork SleazyFork 谷歌搜索脚本 - - - -## 描述 - -**GreasyFork SleazyFork 谷歌搜索脚本**是一款用户脚本,通过利用谷歌搜索增强了 [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) 上的脚本搜索功能。此脚本允许您使用谷歌强大的搜索引擎来搜索脚本,提供更准确和全面的搜索结果。 - - - -## 用法 - -目前只有两个功能。只需在主页面或者侧边搜索框 [https://greasyfork.org/](https://greasyfork.org/) [https://sleazyfork.org/](https://sleazyfork.org/)上输入并搜索。 - -1. `g YouTube` - > 它将使用谷歌搜索 Greasy Fork 上与 "YouTube" 相关的脚本。 - -2. `youtube.com tamer` - > 它将使用 Greasy Fork 搜索与 "tamer" 相关的脚本,搜索范围限定在 "youtube.com" 域名内。 - - - -## 特点 - -- **改进的搜索**:此用户脚本集成了谷歌搜索,而不是仅仅依赖于 GreasyFork 内置的搜索功能,从而增强了脚本搜索体验。 -- **谷歌搜索语法**:您可以使用谷歌支持的高级搜索操作符和语法来优化您的搜索查询。这包括排除特定类型的页面以及将搜索范围限制在 GreasyFork 的脚本页面内。 -- **准确且全面的结果**:通过利用谷歌搜索的强大功能,您可以获得更准确和广泛的搜索结果,从而提高找到所需脚本的几率。 -- **易于使用**:此用户脚本无缝集成到 [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) 网站,增强了现有搜索输入框的功能。您只需在查询前输入 "g "(例如,"g 脚本名称")即可启动谷歌搜索。 - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - - -## 兼容性 - -**GreasyFork 谷歌搜索脚本**设计用于 [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) 网站。它兼容支持用户脚本的现代网络浏览器,例如 Tampermonkey 和 Greasemonkey。 - - -## 修改来源 -作者[𝖢𝖸 𝖥𝗎𝗇𝗀]( https://greasyfork.org/zh-CN/users/371179)的脚本[GreasyFork Search]( https://greasyfork.org/scripts/468495),感谢作者的勤劳智慧 - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/greasyfork-search/README_en.md b/Script details/greasyfork-search/README_en.md deleted file mode 100644 index 1fdd6d421..000000000 --- a/Script details/greasyfork-search/README_en.md +++ /dev/null @@ -1,198 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork Advanced search

    -

    「 Search using Google GreasyFork and SleazyFork upper script 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# GreasyFork SleazyFork Scripts by Google Search - - - -## Description - -The **GreasyFork SleazyFork Scripts by Google Search** is a user script that enhances the script search functionality on [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) by utilizing Google Search. This script allows you to search for scripts using Google's powerful search engine, providing you with more accurate and comprehensive search results. - - - -## Usage - -Currently, there are only two features. Just type and search on the main page or the side search box [https://greasyfork.org/](https://greasyfork.org/) [https://sleazyfork.org/](https://sleazyfork.org/). - -1. `g YouTube` - > It will use Google to search the scripts with "YouTube" in Greasy Fork. - -2. `youtube.com tamer` - > It will use Greasy Fork to search the scripts with "tamer" on Greasy Fork with the site (domain) "youtube.com". - - - -## Features - -- **Improved Search**: Instead of relying solely on GreasyFork's built-in search functionality, this user script integrates Google Search to enhance the script search experience. -- **Google Search Syntax**: You can use advanced search operators and syntax supported by Google to refine your search queries. This includes options such as excluding specific types of pages and limiting the search to GreasyFork's script pages. -- **Accurate and Comprehensive Results**: By leveraging the capabilities of Google Search, you can expect more accurate and extensive results, improving your chances of finding the desired scripts. -- **Easy to Use**: The user script seamlessly integrates with the [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) website, adding the enhanced search functionality to the existing search input. You can initiate a Google search by simply entering your query preceded by "g " (e.g., "g script name"). - - - -## Compatibility - -The **GreasyFork Scripts by Google Search** user script is designed to work with the [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) website. It is compatible with modern web browsers that support user scripts, such as Tampermonkey and Greasemonkey. - - -## Modify source -The author [𝖢𝖸 𝖥𝗎𝗇𝗀]( https://greasyfork.org/zh-CN/users/371179) script [GreasyFork Search]( https://greasyfork.org/scripts/468495), thank the author for his hard work and wisdom - - - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/greasyfork-user-control-panel-button/README.md b/Script details/greasyfork-user-control-panel-button/README.md deleted file mode 100644 index 308152b16..000000000 --- a/Script details/greasyfork-user-control-panel-button/README.md +++ /dev/null @@ -1,189 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork 导航栏增强

    -

    「 增强greasyfork导航栏,增加用户列表,用户控制台等 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -## 功能说明 - -增强GreasyFork的导航栏, 添加用户列表、用户收藏、用户控制台等等.... - ---- - - - -## 其他说明 - -增加的项目较多,会出现拥挤导航栏,可以使用脚本进行修复 [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) -强烈建议使用 **[GreasyFork 糊裱匠](https://greasyfork.org/zh-CN/scripts/497346)** 可以修复导航栏并且美化导航栏 - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - ---- - - - -## 感谢 - -脚本修改自用户 **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** 的脚本 [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) 感谢原作者 **CY Fung** 的**勤劳**与**智慧** - - - ---- - - - -## 图片 -![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) -![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) -![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/greasyfork-user-control-panel-button/README_en.md b/Script details/greasyfork-user-control-panel-button/README_en.md deleted file mode 100644 index 126b0f222..000000000 --- a/Script details/greasyfork-user-control-panel-button/README_en.md +++ /dev/null @@ -1,203 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork Navigation bar enhancement

    -

    「 EnhancegreasyforkNavigation bar,Add user list,User console etc. 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# GreasyFork: Add categories to navigation bar - ---- - - -## Function Description - -EnhanceGreasyForknavigation bar, Add user list、User favorites、User console etc..... - - ---- - - - -## other instructions - -More items added,A crowded navigation bar will appear,Can be fixed using script [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) - -Strongly recommended to use **[GreasyFork Glue craftsman](https://greasyfork.org/zh-CN/scripts/497346)** Can repair and beautify the navigation bar - ---- - - - -## grateful - -Script modified from user **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** script [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) Thanks to the original author **CY Fung** of**Diligent**and**wisdom** - - - ---- - - - -## picture -![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) -![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) -![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) - - - - - - - - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/greasyfork-user-control-panel-button/README_ko.md b/Script details/greasyfork-user-control-panel-button/README_ko.md deleted file mode 100644 index b94a6c924..000000000 --- a/Script details/greasyfork-user-control-panel-button/README_ko.md +++ /dev/null @@ -1,197 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork 탐색 표시줄 개선

    -

    「 향상시키다greasyfork네비게이션 바,사용자 목록 추가,사용자 콘솔 등 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# GreasyFork: 탐색 표시줄에 카테고리 추가 - ---- - - - -## 기능 설명 - -향상시키다GreasyFork네비게이션 바, 사용자 목록 추가、사용자 즐겨찾기、사용자 콘솔 등.... - - ---- - - - -## 기타 지침 - -더 많은 항목이 추가되었습니다,혼잡한 내비게이션 바가 나타납니다.,스크립트를 사용하여 수정 가능 [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) - -사용을 적극 권장합니다. **[GreasyFork 반죽액자장인](https://greasyfork.org/zh-CN/scripts/497346)** 네비게이션 바를 수리하고 아름답게 할 수 있습니다. - ---- - - - -## 고마워하는 - -사용자가 수정한 스크립트 **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** 적각본 [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) 원작자님 감사합니다 **CY Fung** ~의**성실한**그리고**지혜** - - ---- - - - -## 그림 -![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) -![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) -![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) - - - - - -> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 -> - [**GreasyFork향상에 적합**](https://greasyfork.org/scripts/497317): 추가할 링크에 적합한 스크립트 세부정보 페이지가 추가됩니다.,웹페이지 복사,타이어 검색 -> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. -> - [**GreaysFork 향상시키다 WebHook동기화 설정**](https://greasyfork.org/scripts/506717): 이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가하세요.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 -> - [**GreasyFork 스크립트 등급 표시**](https://greasyfork.org/scripts/501119): 스크립트 목록에 평가 점수 추가 -> - [**GreasyFork 고급 검색**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 상적 각본 -> - [**GreasyFork 네비게이션 바향상시키다**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,사용자 목록 추가,사용자 콘솔 등 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 -> - [**Greasyfork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 -> - [**Script Finder그리스 원숭이 스크립트 찾기**](https://greasyfork.org/scripts/498904): Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. - - - - - - - -## 돕다 - - 권장 브라우저 및 스크립트 관리자: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **사용자 스크립트 설치 방법에 대해 더 알고 싶다면,[나를 클릭하세요](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)그래픽 교육 보기!** - -

    더 많은 사용자 스크립트 / -맨 위로 돌아가기↑

    - - - - - - - -### 모든 게시 스크립트 보기 - - - - -> ### 🔍당신은 찾고있을 수 있습니다 ChatGPT관련 스크립트 -> - [**ChatGPT코드 글꼴 크기 감소**](https://greasyfork.org/scripts/505209): 허락하다 ChatGPT 코드 글꼴 크기가 작아집니다. -> - [**ChatGPT 聊天코드 복사단추**](https://greasyfork.org/scripts/509598): 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“复制代码”按钮 -> - [**ChatGPT 캐릭터 카운터**](https://greasyfork.org/scripts/506166): 添加一문자计数器到输入框,로 제한됨 32732 문자。(ChatGPT 한도는 32732 个字符。) -> - [**ChatGPT 자체 메시지 및 최대 너비 축소**](https://greasyfork.org/scripts/504901): 귀하가 보낸 긴 메시지를 자동으로 접습니다.,화면 공간 절약。채팅 창의 최대 너비를 설정할 수 있습니다.,긴 메시지가 지정된 범위를 초과하지 않도록 유지。 - - - -> ### 🔍당신은 찾고있을 수 있습니다 웹 관련 스크립트 -> - [**웹 페이지 작성 클립 버전 권한 관리자**](https://greasyfork.org/scripts/497403): 편집된 버전에서 웹페이지가 표시되는 것을 금지합니다.,출시용 녹색,빨간색 금지,주황색 임시 방향 -> - [**승강기CSDN로그인복사限制**](https://greasyfork.org/scripts/505207): 엿 먹어라 CSDN 登录复制,로그인하지 않고 코드 상자 내용 복사 -> - [**화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요**](https://greasyfork.org/scripts/507036): 웹 페이지 테이블의 모든 열에 색상 그라데이션 미화를 자동으로 적용합니다.. -> - [**웹페이지에서 키워드 강조표시+(추천하다)**](https://greasyfork.org/scripts/498906): 웹페이지의 텍스트 강조표시 -> - [**웹 텍스트 강조 표시_미니 버전**](https://greasyfork.org/scripts/498905): 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 -> - [**작은 창 미리보기**](https://greasyfork.org/scripts/504880): 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 -> - [**링크 밑줄 제거**](https://greasyfork.org/scripts/498625): 웹 링크에서 밑줄 제거 -> - [**위아래로 작은 스크롤 버튼**](https://greasyfork.org/scripts/497251): 페이지 오른쪽에 상하 스크롤 버튼 추가 -> - [**원터치 상하 버튼**](https://greasyfork.org/scripts/500255): 다음에서 수정됨Greasyfork사용자 스크립트 웹 페이지에 상단 및 하단 버튼 추가,긴 페이지의 상단 또는 하단으로 빠르게 이동할 수 있습니다.。 아래로 스크롤할 때 버튼 색상 변경 추가,3몇 초 내에 스크롤이 없으면 자동으로 중지됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 GitHub관련 스크립트 -> - [**GitHub정보 표시 제출HTML**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 -> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。 -> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다 “다른” 아래에 -> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 -> - [**GitHub접는 사람下载**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 文件夹。 -> - [**GitHub단일 파일 다운로드 및 파일 복사URL**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 -> - [**🤠 Github 어시스턴트 강화 창고 전시 크기 비활성 개발 경고 창고 내 빠른 점프用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 존재하다Github창고 보기 및 검색 시 창고 크기 표시 ,비활성 개발 경고,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 - - - -> ### 🔍당신은 찾고있을 수 있습니다 Google관련 스크립트 -> - [**Google 고급 검색**](https://greasyfork.org/scripts/502652): 이것은 Google 고급 검색 양식에 대한 사용자 스크립트 추가。페이지 상단에 숨길 수 있는 고급 검색 양식을 추가합니다.,보다 정확하게 정보를 검색할 수 있습니다.。 -> - [**Google 특정 사이트 검색 및 차단**](https://greasyfork.org/scripts/500262): 검색 엔진 결과에서 특정 사이트 차단,사용자가 원치 않는 검색 결과를 필터링하도록 지원。 사용자 정의 입력 차단 사이트。체재-zhihu -baidu Google 검색 콘텐츠를 차단하는 데 사용됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 GreasyFork관련 스크립트 -> - [**GreasyFork향상에 적합**](https://greasyfork.org/scripts/497317): 추가할 링크에 적합한 스크립트 세부정보 페이지가 추가됩니다.,웹페이지 복사,타이어 검색 -> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. -> - [**GreaysFork 향상시키다 WebHook동기화 설정**](https://greasyfork.org/scripts/506717): 이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가하세요.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 -> - [**GreasyFork 스크립트 등급 표시**](https://greasyfork.org/scripts/501119): 스크립트 목록에 평가 점수 추가 -> - [**GreasyFork 고급 검색**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 상적 각본 -> - [**GreasyFork 네비게이션 바향상시키다**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,사용자 목록 추가,사용자 콘솔 등 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 -> - [**Greasyfork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 -> - [**Script Finder그리스 원숭이 스크립트 찾기**](https://greasyfork.org/scripts/498904): Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 성인 각본 -> - [**MiSSAV자동 로그인**](https://greasyfork.org/scripts/505325): 발각 MisssAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -> - [**MissAV컬렉션 관리자**](https://greasyfork.org/scripts/497682): miss재생목록 백업,사진 다운로드 및 비디오 정보 저장 지원.로컬 웹페이지 내보내기 수출 지원webdav -> - [**TissAV자동 로그인**](https://greasyfork.org/scripts/506528): 발각 TissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -> - [**JableTV자동 로그인**](https://greasyfork.org/scripts/506730): 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 자동 번역 -> - [**외국어 터미네이터**](https://greasyfork.org/scripts/504890): 중국어가 아닌 문자 인식,길이가 그 이상인 경우 5 그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그럼 중국어로 바꾸세요,접근 가능해야 함google회로망 -> - [**웹페이지 번역——중국어로 자동 번역됨**](https://greasyfork.org/scripts/505208): 중국어가 아닌 웹페이지의 오른쪽 하단 모서리를 제공합니다.(왼쪽 하단으로 조정 가능)추가하다 google 번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 - - -
    - - - diff --git a/Script details/greasyfork-user-control-panel-button/README_zh-TW.md b/Script details/greasyfork-user-control-panel-button/README_zh-TW.md deleted file mode 100644 index 5ecf7873f..000000000 --- a/Script details/greasyfork-user-control-panel-button/README_zh-TW.md +++ /dev/null @@ -1,202 +0,0 @@ - -
    - - - - - -
    -

    GreasyFork 導覽列增強

    -

    「 增強greasyfork導覽列,增加用戶列表,使用者控制台等 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# GreasyFork: 導航列增加分類 - ---- - - - -## 功能說明 - -增強GreasyFork的導覽列, 新增使用者列表、用戶收藏、用戶控制台等等.... - - ---- - - - -## 其他說明 - -增加的項目較多,會出現擁擠導覽列,可以使用腳本進行修復 [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) - -強烈建議使用 **[GreasyFork 膠水工匠](https://greasyfork.org/zh-CN/scripts/497346)** 可以修復導覽列並且美化導覽列 - ---- - - - -## 感謝 - -腳本修改自用戶 **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** 腳本 [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) 感謝原作者 **CY Fung** 的**勤勞**與**智慧** - - ---- - - - -## 圖片 -![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) -![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) -![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) - - - - - - - - - - -> ### 🔍你可能在找GreasyFork相關腳本 -> - [**GreasyFork適用於增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 -> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝狀況 -> - [**GreaysFork 增強 WebHook同步設定**](https://greasyfork.org/scripts/506717): 這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 -> - [**GreasyFork 顯示腳本評分**](https://greasyfork.org/scripts/501119): 腳本清單新增評價分數 -> - [**GreasyFork 進階搜尋**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋 GreasyFork 和 SleazyFork 上體文字 -> - [**GreasyFork 導覽列增強**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用戶列表,使用者控制台等 -> - [**Greasyfork膠水工匠**](https://greasyfork.org/scripts/497346): 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -> - [**Script Finder油猴腳本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 - - - - - - - -## 使用幫助 - - 推薦瀏覽器和腳本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多關於如何安裝使用者腳本,[點擊我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看圖文教學!** - -

    更多用戶腳本 / -回到頂部↑

    - - - - - - - -### 查看所有發布腳本 - - - - -> ### 🔍你可能在找 ChatGPT相關腳本 -> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): 讓 ChatGPT 程式碼字體變小 -> - [**ChatGPT 聊天複製程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“复制代码”按钮 -> - [**ChatGPT 字元計數器**](https://greasyfork.org/scripts/506166): 添加一個字元计数器到输入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 - - - -> ### 🔍你可能在找 網頁相關腳本 -> - [**網頁寫入剪輯版授權管理員**](https://greasyfork.org/scripts/497403): 禁止網頁向剪輯版拉屎,綠色為放行,紅色禁止,橙色臨時方向 -> - [**解除CSDN登入複製限制**](https://greasyfork.org/scripts/505207): 去你媽的 CSDN 登录复制,無需登入即可複製程式碼框內容 -> - [**絢麗漸層美化網頁表格**](https://greasyfork.org/scripts/507036): 自動為網頁上的表格所有欄位套用顏色漸層美化. -> - [**網頁高亮關鍵字+(推薦)**](https://greasyfork.org/scripts/498906): 對網頁上的文字進行高亮顯示 -> - [**高亮網頁文本_迷你版**](https://greasyfork.org/scripts/498905): 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 -> - [**小視窗預覽**](https://greasyfork.org/scripts/504880): 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -> - [**去除連結下劃線**](https://greasyfork.org/scripts/498625): 去除網頁連結的下劃線 -> - [**上下滾動小按鈕**](https://greasyfork.org/scripts/497251): 頁面右側新增上下滾動按鈕 -> - [**一鍵置頂和置底按鈕**](https://greasyfork.org/scripts/500255): 修改自Greasyfork使用者腳本 為網頁新增置頂和置底按鈕,方便在長頁面中快速移動到頂部或底部。 增加向下滾動時按鈕變色,3秒內無滾動自動停止 - - - -> ### 🔍你可能在找 GitHub相關腳本 -> - [**GitHub提交資訊顯示HTML**](https://greasyfork.org/scripts/505830): 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。 -> - [**Github 代碼語言列表顯示全部**](https://greasyfork.org/scripts/509889): 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在 “其他” 下 -> - [**GitHub 自動確認設備授權**](https://greasyfork.org/scripts/508956): 在GitHub授權頁面自動輸入授權碼與自動確認。 -> - [**GitHub資料夾下载**](https://greasyfork.org/scripts/505496): 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 文件夹。 -> - [**GitHub下載單一文件和複製文件URL**](https://greasyfork.org/scripts/505501): 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 -> - [**🤠 Github 增強助手 倉庫顯示大小 不活躍開發警告 倉庫內快捷跳轉用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看倉庫和搜尋倉庫時顯示倉庫大小 ,不活躍開發警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 倉庫列表文件排序方式改為日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相關腳本 -> - [**Google 進階搜尋**](https://greasyfork.org/scripts/502652): 這是一個為 Google 新增進階搜尋表單的使用者腳本。它能在頁面頂部添加一個可隱藏的高級搜尋表單,使您能夠更精確地搜尋訊息。 -> - [**Google 搜尋屏蔽指定站點**](https://greasyfork.org/scripts/500262): 在搜尋引擎結果中封鎖特定的站點,幫助用戶過濾掉不需要的搜尋結果。 自訂輸入屏蔽站點。格式-zhihu -baidu 用於封鎖谷歌搜尋內容 - - - -> ### 🔍你可能在找 GreasyFork相關腳本 -> - [**GreasyFork適用於增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 -> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝狀況 -> - [**GreaysFork 增強 WebHook同步設定**](https://greasyfork.org/scripts/506717): 這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 -> - [**GreasyFork 顯示腳本評分**](https://greasyfork.org/scripts/501119): 腳本清單新增評價分數 -> - [**GreasyFork 進階搜尋**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋 GreasyFork 和 SleazyFork 上體文字 -> - [**GreasyFork 導覽列增強**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用戶列表,使用者控制台等 -> - [**Greasyfork膠水工匠**](https://greasyfork.org/scripts/497346): 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -> - [**Script Finder油猴腳本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 - - - -> ### 🔍你可能在找 成人劇本 -> - [**MiSSAV自動登入**](https://greasyfork.org/scripts/505325): 偵測 MisssAV 狀態,並且在未登入時自動登入 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss單張備份,支援下載圖片保存影片訊息.導出本地網頁 支援導出到webdav -> - [**TissAV自動登入**](https://greasyfork.org/scripts/506528): 偵測 TissAV 狀態,並且在未登入時自動登入 -> - [**JableTV自動登入**](https://greasyfork.org/scripts/506730): 偵測 JableTV 狀態,並且在未登入時自動登入 - - - -> ### 🔍你可能在找 自動翻譯 -> - [**外語終結者**](https://greasyfork.org/scripts/504890): 識別非中文字符,如果長度大於 5 且翻譯文中不含中文,則替換為中文,需要可訪問google的網路 -> - [**網頁翻譯——自動翻譯為中文**](https://greasyfork.org/scripts/505208): 給每個非中文的網頁右下角(可以調整到左下角)添加一個 google 翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 - - -
    - - - diff --git a/Script details/greasyfork-user-control-panel-button/greasyfork-user-control-panel-button.user.js b/Script details/greasyfork-user-control-panel-button/greasyfork-user-control-panel-button.user.js deleted file mode 100644 index 7352fc611..000000000 --- a/Script details/greasyfork-user-control-panel-button/greasyfork-user-control-panel-button.user.js +++ /dev/null @@ -1,236 +0,0 @@ -// ==UserScript== -// @name GreasyFork: User Control Panel Button -// @name:zh-CN GreasyFork: 导航栏增强 -// @description:zh-CN 在导航栏上添加用户列表,控制台,收藏等.. -// @name:ar GreasyFork: تعزيز شريط التنقل -// @description:ar إضافة قائمة المستخدمين على شريط التنقل,وحدة التحكم,جمع الخ.. -// @name:bg GreasyFork: Подобряване на лентата за навигация -// @description:bg Добавяне на потребителски списък в лентата за навигация,конзола,Колекция и др... -// @name:cs GreasyFork: Vylepšení navigační lišty -// @description:cs Přidejte seznam uživatelů na navigační lištu,utěšit,Sbírka atd... -// @name:da GreasyFork: Forbedring af navigationslinjen -// @description:da Tilføj brugerliste på navigationslinjen,konsol,Indsamling mv... -// @name:de GreasyFork: Verbesserung der Navigationsleiste -// @description:de Benutzerliste zur Navigationsleiste hinzufügen,Konsole,Sammlung usw... -// @name:el GreasyFork: Βελτίωση της γραμμής πλοήγησης -// @description:el Προσθήκη λίστας χρηστών στη γραμμή πλοήγησης,κονσόλα,Συλλογή κλπ... -// @name:en GreasyFork: Navigation bar enhancement -// @description:en Add user list on navigation bar,console,Collection etc... -// @name:eo GreasyFork: Plibonigo de navigado trinkejo -// @description:eo Aldonu uzantliston sur navigadbreto,konzolo,Kolekto ktp... -// @name:es GreasyFork: Mejora de la barra de navegación -// @description:es Agregar lista de usuarios en la barra de navegación,consola,Colección, etc... -// @name:fi GreasyFork: Navigointipalkin parannus -// @description:fi Lisää käyttäjäluettelo navigointipalkkiin,konsoli,Kokoelma jne... -// @name:fr GreasyFork: Amélioration de la barre de navigation -// @description:fr Ajouter une liste d’utilisateurs sur la barre de navigation,console,Collecte etc.. -// @name:he GreasyFork: שיפור סרגל הניווט -// @description:he הוסף רשימת משתמשים בסרגל הניווט,לְנַחֵם,אוסף וכו’... -// @name:hr GreasyFork: Poboljšanje navigacijske trake -// @description:hr Dodajte popis korisnika na navigacijsku traku,konzola,Zbirka itd... -// @name:hu GreasyFork: A navigációs sáv továbbfejlesztése -// @description:hu Felhasználói lista hozzáadása a navigációs sávhoz,konzol,Gyűjtemény stb... -// @name:id GreasyFork: Peningkatan bilah navigasi -// @description:id Tambahkan daftar pengguna di bilah navigasi,menghibur,Koleksi dll... -// @name:it GreasyFork: Miglioramento della barra di navigazione -// @description:it Aggiungi l’elenco degli utenti sulla barra di navigazione,consolle,Raccolta ecc... -// @name:ja GreasyFork: ナビゲーションバーの強化 -// @description:ja ナビゲーションバーにユーザーリストを追加,コンソール,コレクションなど.. -// @name:ka GreasyFork: ნავიგაციის ზოლის გაუმჯობესება -// @description:ka დაამატეთ მომხმარებლის სია ნავიგაციის ზოლში,კონსოლი,კოლექცია და ა.შ... -// @name:ko GreasyFork: 탐색 표시줄 개선 -// @description:ko 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. -// @name:nl GreasyFork: Verbetering van de navigatiebalk -// @description:nl Voeg een gebruikerslijst toe aan de navigatiebalk,troosten,Collectie enz... -// @name:nb GreasyFork: Forbedring av navigasjonslinjen -// @description:nb Legg til brukerliste på navigasjonslinjen,konsoll,Samling etc... -// @name:pl GreasyFork: Udoskonalenie paska nawigacji -// @description:pl Dodaj listę użytkowników na pasku nawigacyjnym,konsola,Kolekcja itp... -// @name:pt-BR GreasyFork: Aprimoramento da barra de navegação -// @description:pt-BR Adicionar lista de usuários na barra de navegação,console,Coleção etc.. -// @name:ro GreasyFork: Îmbunătățirea barei de navigare -// @description:ro Adăugați lista de utilizatori pe bara de navigare,consolă,Colectare etc... -// @name:ru GreasyFork: Улучшение панели навигации -// @description:ru Добавить список пользователей на панель навигации,консоль,Коллекция и т. д... -// @name:sk GreasyFork: Vylepšenie navigačnej lišty -// @description:sk Pridajte zoznam používateľov na navigačnú lištu,konzoly,Zbierka atď... -// @name:sr GreasyFork: Побољшање траке за навигацију -// @description:sr Додајте листу корисника на траку за навигацију,конзола,Збирка итд... -// @name:sv GreasyFork: Förbättring av navigeringsfältet -// @description:sv Lägg till användarlista i navigeringsfältet,trösta,Samling etc... -// @name:th GreasyFork: การเพิ่มประสิทธิภาพแถบนำทาง -// @description:th เพิ่มรายชื่อผู้ใช้บนแถบนำทาง,คอนโซล,คอลเลกชัน ฯลฯ.. -// @name:tr GreasyFork: Gezinme çubuğu geliştirmesi -// @description:tr Gezinme çubuğuna kullanıcı listesi ekleyin,konsol,Koleksiyon vb... -// @name:ug GreasyFork: يولباشچى بالداقنى كۈچەيتىش -// @description:ug يولباشچى ستونىغا ئىشلەتكۈچى تىزىملىكىنى قوشۇڭ,console,توپلاش قاتارلىقلار... -// @name:uk GreasyFork: Покращення панелі навігації -// @description:uk Додати список користувачів на панель навігації,консоль,Колекція тощо.. -// @name:vi GreasyFork: Cải tiến thanh điều hướng -// @description:vi Thêm danh sách người dùng trên thanh điều hướng,bảng điều khiển,Bộ sưu tập vv... -// @name:zh-TW GreasyFork: 導覽列增強 -// @description:zh-TW 在導覽列上新增使用者列表,主機,收藏等.. -// @name:zh-HK GreasyFork: 導覽列增強 -// @description:zh-HK 在導覽列上新增使用者列表,主機,收藏等.. -// @name:fr-CA GreasyFork: Amélioration de la barre de navigation -// @description:fr-CA Ajouter une liste d’utilisateurs sur la barre de navigation,console,Collecte etc.. -// @namespace https://github.com/ChinaGodMan/UserScripts -// @match https://greasyfork.org/* -// @match https://sleazyfork.org/* -// @grant none -// @version 0.3.1.57 -// @license MIT -// @author CY Fung & 人民的勤务员 -// @description To add User Control Panel Button into navigation bar -// @icon data:image/png;base64,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 -// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(async () => { - let sections = [ - { id: '#user-script-sets-section' }, - { id: '#control-panel' }, - // { id: '#user-library-list-section', name: '库' }, - //{ id: '#user-unlisted-script-list-section', name: '没上架' }, - // { id: '#user-discussions', name: '讨论' }, - { id: '#user-script-list-section' } - ] - - function preSetup() { - let pos = document.querySelectorAll('#site-nav>nav>li.with-submenu') - pos = pos.length >= 1 ? pos[pos.length - 1] : null - - if (!pos) return - - pos.parentNode.style.minHeight = '2.8rem' - - return { pos } - } - - function setup(m, namespace) { - const { cpmRoot } = m - - let h = cpmRoot.querySelector('h3') || cpmRoot.querySelector('header') - if (!h) return - - let nav = document.createElement('nav') - - let addedText = new Set() - let lastText = null - - for (const anchor of cpmRoot.querySelectorAll('li a[href]')) { - let textContent = anchor.textContent.trim() - - if (addedText.has(textContent)) { - lastText = textContent - continue - } - - let li = nav.appendChild(document.createElement('li')) - li.appendChild(anchor) - - addedText.add(textContent) - } - - if (lastText !== null) { - nav.querySelectorAll('li').forEach(li => { - if (li.querySelector('a').textContent.trim() === lastText) { - li.remove() - } - }) - } - - let tm = document.createElement('template') - tm.innerHTML = ` -
  • - ${namespace ? namespace : h.textContent} - -
  • - `.trim() - - return tm.content - } - - function bufferToHex(buffer) { - const byteArray = new Uint8Array(buffer) - const len = byteArray.length - const hexCodes = new Array(len * 2) - const chars = '0123456789abcdef' - for (let i = 0, j = 0; i < len; i++) { - const byte = byteArray[i] - hexCodes[j++] = chars[byte >> 4] - hexCodes[j++] = chars[byte & 0x0F] - } - return hexCodes.join('') - } - - async function digestMessage(message) { - const encoder = new TextEncoder("utf-8") - const msgUint8 = encoder.encode(message) - const hashBuffer = await crypto.subtle.digest('SHA-1', msgUint8) - return bufferToHex(hashBuffer) - } - - async function fetchHTML(href) { - let response = await fetch(href, { - method: "GET", - mode: "same-origin", - cache: "force-cache", - credentials: "same-origin", - redirect: "follow", - referrerPolicy: "no-referrer", - }) - - return response.text() - } - - async function addSectionsToNav() { - let presetup = preSetup() - if (!presetup) return - const { pos } = presetup - - let plink = document.querySelector('.user-profile-link') - if (!plink) return - let href = plink.querySelector('a[href*="/users/"]').href - if (href.includes('/users/sign')) return - - let dm = await digestMessage(href) - const stKey = `gf_user_page_${dm}` - - for (let trialN = 8; trialN--;) { - let s = sessionStorage.getItem(stKey) - let d = typeof s === 'string' ? parseInt(s) : 0 - if (d > 9 && Date.now() - d < 8000) await new Promise(r => setTimeout(r, 320)) - else break - } - - const userPageHTML = await fetchHTML(href) - if (!userPageHTML || typeof userPageHTML !== 'string') return - - sessionStorage.setItem(stKey, userPageHTML) - - let template = document.createElement('template') - template.innerHTML = userPageHTML - const content = template.content - - - - sections.forEach(({ id, name }) => { - let section = content.querySelector(id) - if (section) { - const kc = setup({ cpmRoot: section, pos }, name) - if (kc) { - pos.parentNode.insertBefore(kc, pos.nextSibling) - } - } - }) - } - - if (!document.querySelector('.sign-out-link') || document.querySelector('.sign-in-link')) return - - await addSectionsToNav() -})() diff --git a/Script details/greasyfork-user-scripts-data-visualization/README.md b/Script details/greasyfork-user-scripts-data-visualization/README.md deleted file mode 100644 index c8d888221..000000000 --- a/Script details/greasyfork-user-scripts-data-visualization/README.md +++ /dev/null @@ -1,278 +0,0 @@ - -
    - - - - - -
    -

    GrreasyFork 用户发布的脚本数据可视化

    -

    「 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ GrreasyFork 用户脚本数据可视化 更新日志

    -

    📅 2024-09-20 07:46- Ver 1.1.1.1

    -

    新增: •增加自己使用的一些小功能.表格显示创建与更新日期 Y轴数值高亮 点击柱状图跳转对应脚本 脚本中的OPENLINK0不跳转,1跳转前有提示,2直接跳转

    - - - - - - - - - - - - - - - - - -
    新增新增演示
    New.png跳转.gif
    -
    -

    📅 2024-09-19 12:56:19- Ver 1.1.1.0

    -

    修改: •修改chart.js为首次加载,加载完成后保存在localStorage无需每次重复加载

    -
    -

    📅 2024-09-19 08:25:19- Ver 1.1.0.0

    -

    修复: • 修复图表一些问题.

    - - - - - - - - - - - - - - - - - - - - - -
    修改前修改后
    修改前.png修改后.png
    修改前.gif修改后.gif
    -
    -

    📅 2024-09-18 11:01:32- Ver 1.0.0.0

    -

    增加: •增加了原作者138 Aspen另外脚本Displays the number of scripts published by the user, the total number of installations里面的从当前网页获取用户数据,可以在脚本内或者脚本菜单中设置从JSON数据获取还是从当前页面获取脚本数据默认向GreasyFrok下载用户数据
    -修改: •~~修改chart.js为@require 加载,无需每次重复加载~~Greasyfork不允许使用未经批准的外部脚本
    -修改: •修改从网络获取用户数据时,按照总安装量由高到低排序
    -修改: •修改寻找用户ID的表达式为/(\d+)/,兼容Greasyfork 糊裱匠清除链接无用字符功能

    -
    - -
    - - - -# GrreasyFork 用户脚本数据可视化 - - - -## 描述 - -该用户脚本使用 Chart.js 库从 GreasyFork 上的用户脚本页面中提取和可视化脚本数据。它提供了以下功能: - -- **数据提取**: 从用户的脚本页面中提取安装次数数据,包括总安装次数和每日安装次数。 -- **数据可视化**: 使用图表(条形图)展示每个脚本的总安装次数和每日安装次数。 -- **数据展示**: 在图表下方显示总安装次数、每日安装总数以及已发布脚本的数量。 - - - -## 功能 - -1. **获取用户数据**: 从用户脚本页面中提取相关数据。 -2. **数据可视化**: 使用 Chart.js 绘制图表来展示脚本的安装数据。 -3. **展示统计信息**: 在图表下方显示总的每日安装次数、总安装次数和已发布脚本的数量。 - - - -## 安装 - -1. **安装 Greasemonkey 或 Tampermonkey 插件**: 请确保您的浏览器已安装 Greasemonkey 或 Tampermonkey 插件。 -2. **添加脚本**: - - 点击上方绿色安装按钮进行安装 - - - -## 使用 - -1. **访问 GreasyFork 用户脚本页面**: 打开任意用户的脚本页面,例如 [https://greasyfork.org/users/1169082](https://greasyfork.org/users/1169082)。 -2. **查看图表和统计数据**: 脚本将在用户的个人页面加载后自动生成并展示数据图表和统计信息。 -3. **从网络或者从当前页面加载**: 脚本在代码顶端提供了一个设置,当为`true`时,从当前网页获取,为`false`,向 GreasyFrok 下载用户数据`JSON` - - - -## 支持 - -如遇到问题或需要支持,请访问 [GitHub 问题页面](https://github.com/ChinaGodMan/UserScripts/issues) 提交问题。 - -## 贡献 - -此脚本修改自[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)发布的脚本[GrreasyFork User Script Data Visualization](https://greasyfork.org/zh-CN/scripts/499755) -修改说明:
    -**增加**: •增加了原作者[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)另外脚本[Displays the number of scripts published by the user, the total number of installations](https://greasyfork.org/zh-CN/scripts/482623)里面的从当前网页获取用户数据,可以在脚本内或者脚本菜单中设置从 JSON 数据获取还是从当前页面获取脚本数据
    -**修改**: •~~修改`chart.js`为@require 加载,无需每次重复加载~~Greasyfork 不允许使用未经批准的外部脚本.....
    -**修改**: •修改从网络获取用户数据时,按照总安装量由高到低排序
    -**修改**: •修改寻找用户 ID 的表达式为`/(\d+)/`,兼容[Greasyfork 糊裱匠](https://greasyfork.org/zh-CN/scripts/497346)`清除链接无用字符功能`
    - -欢迎贡献和改进脚本!请访问 [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) 提交拉取请求或报告问题。 - -## 授权 - -该脚本遵循 MIT 许可证。有关详细信息,请查看 [LICENSE](https://github.com/ChinaGodMan/UserScripts/blob/main/LICENSE) 文件。 - -**修正每日安装统计在右边,切换总安装/日安装时图表轴显示问题** - -| 修改前 | 修改后 | -| ----------------------------------------------------------------- | ----------------------------------------------------------------- | -| | -| ![修改前.png](https://s2.loli.net/2024/09/19/A6KoYdv5nbRkMCF.png) | ![修改后.png](https://s2.loli.net/2024/09/19/2UCM18tuWXirgxB.png) | -| ![修改前.gif](https://s2.loli.net/2024/09/19/khLXwEFQI58qjdZ.gif) | ![修改后.gif](https://s2.loli.net/2024/09/19/azlGiIBEg2SAFPc.gif) | - -![png](https://s2.loli.net/2024/09/18/Qixhtq13b4lMwIF.png) - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/greasyfork-user-scripts-data-visualization/README_en.md b/Script details/greasyfork-user-scripts-data-visualization/README_en.md deleted file mode 100644 index 75a497f34..000000000 --- a/Script details/greasyfork-user-scripts-data-visualization/README_en.md +++ /dev/null @@ -1,278 +0,0 @@ - -
    - - - - - -
    -

    GrreasyFork User-published script data visualization

    -

    「 useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ GrreasyFork User script data visualization Change log

    -

    📅 2024-09-20 07:46- Ver 1.1.1.1

    -

    New: •Add some small functions for your own use.Table shows creation and update dates YAxis value highlighting Click on the histogram to jump to the corresponding script Medium scriptOPENLINK for0No jump,1There is a prompt before jumping,2Jump directly

    - - - - - - - - - - - - - - - - - -
    NewAdd demo
    New.pngJump.gif
    -
    -

    📅 2024-09-19 12:56:19- Ver 1.1.1.0

    -

    Revise: •Revisechart.jsLoad for the first time,After loading is completed, save it inlocalStorageNo need to reload every time

    -
    -

    📅 2024-09-19 08:25:19- Ver 1.1.0.0

    -

    repair: • Fix some chart issues.

    - - - - - - - - - - - - - - - - - - - - - -
    Before modificationAfter modification
    Before modification.pngAfter modification.png
    Before modification.gifAfter modification.gif
    -
    -

    📅 2024-09-18 11:01:32- Ver 1.0.0.0

    -

    Increase: •Added original author138 Aspenadditional scriptDisplays the number of scripts published by the user, the total number of installationsInside, get user data from the current web page,It can be set within the script or in the script menu.JSONData acquisition or script data acquisition from the current page defaults toGreasyFrokDownload user data
    -Revise: •~~Revisechart.jsfor@require load,No need to reload every time~~GreasyforkUnapproved external scripts are not allowed
    -Revise: •When modifying user data obtained from the network,Sort by total installs from high to low
    -Revise: •Modify search for usersIDThe expression of/(\d+)/,compatibleGreasyfork Glue craftsmanClear link useless characters function

    -
    - -
    - - - -# GrreasyFork User script data visualization - - - -## describe - -This userscript uses Chart.js Ku Cong GreasyFork Extract and visualize script data from user script pages on。It provides the following functions: - -- **Data extraction**: Extract install count data from user’s script page,Includes total installs and daily installs。 -- **data visualization**: Use charts(Bar chart)Shows total installs and daily installs for each script。 -- **Data display**: Shows total installs below the graph、Total daily installs and number of published scripts。 - - - -## Function - -1. **Get user data**: Extract relevant data from user script page。 -2. **data visualization**: use Chart.js Draw a chart to display the script’s installation data。 -3. **display statistics**: Shows total daily installs below the chart、Total installs and number of published scripts。 - - - -## Install - -1. **Install Greasemonkey or Tampermonkey plug-in**: Please make sure your browser has it installed Greasemonkey or Tampermonkey plug-in。 -2. **Add script**: - - Click the green install button above to install - - - -## use - -1. **access GreasyFork User script page**: Open any user’s script page,For example [https://greasyfork.org/users/1169082](https://greasyfork.org/users/1169082)。 -2. **View charts and statistics**: The script will automatically generate and display data charts and statistics after the user’s personal page is loaded.。 -3. **Load from the network or from the current page**: The script provides a setting at the top of the code,whenfor`true`hour,Get from current web page,for`false`,TowardsGreasyFrokDownload user data`JSON` - - - -## support - -If you encounter problems or need support,Please visit [GitHub Question page](https://github.com/ChinaGodMan/UserScripts/issues) Submit a question。 - -## contribute - -This script is modified from[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)published script[GrreasyFork User Script Data Visualization](https://greasyfork.org/zh-CN/scripts/499755) -Modification instructions:
    -**Increase**: •Added original author[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)additional script[Displays the number of scripts published by the user, the total number of installations](https://greasyfork.org/zh-CN/scripts/482623)Inside, get user data from the current web page,It can be set within the script or in the script menu.JSONData acquisition or script data acquisition from the current page
    -**Revise**: •~~Revise`chart.js`for@require load,No need to reload every time~~GreasyforkUnapproved external scripts are not allowed.....
    -**Revise**: •When modifying user data obtained from the network,Sort by total installs from high to low
    -**Revise**: •Modify search for usersIDThe expression of`/(\d+)/`,compatible[Greasyfork Glue craftsman](https://greasyfork.org/zh-CN/scripts/497346)`Clear link useless characters function`
    - -Contributions and improvements to the script are welcome!Please visit [GitHub storehouse](https://github.com/ChinaGodMan/UserScripts) Submit a pull request or report an issue。 - -## Authorize - -The script follows MIT license。For more information,Please check [LICENSE](https://github.com/ChinaGodMan/UserScripts/blob/main/LICENSE) document。 - -**Fixed daily installation statistics on the right,Switch overall installation/Chart axis display problem during daily installation** - -| Before modification | After modification | -| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | -| | -| ![Before modification.png](https://s2.loli.net/2024/09/19/A6KoYdv5nbRkMCF.png) | ![After modification.png](https://s2.loli.net/2024/09/19/2UCM18tuWXirgxB.png) | -| ![Before modification.gif](https://s2.loli.net/2024/09/19/khLXwEFQI58qjdZ.gif) | ![After modification.gif](https://s2.loli.net/2024/09/19/azlGiIBEg2SAFPc.gif) | - -![.ng](https://s2.loli.net/2024/09/18/Qixhtq13b4lMwIF.png) - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/greasyfork-utility-toolkit/README.md b/Script details/greasyfork-utility-toolkit/README.md deleted file mode 100644 index 30f6ad46c..000000000 --- a/Script details/greasyfork-utility-toolkit/README.md +++ /dev/null @@ -1,341 +0,0 @@ - -
    - - - - - -
    -

    Greasyfork糊裱匠

    -

    「 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ Greasyfork 糊裱匠 更新日志

    -

    📅 2024/9/29 11:47 - Ver 2.2.0.92

    -

    新增: • 个人主页添加 隐藏私信

    -
    -

    📅 2024/8/29 02:37 - Ver 2.2.0.70

    -

    新增: • 脚本详情页,所有脚本列表添加 脚本评分

    -
    -

    📅 2024/8/27 13:37 - Ver 2.2.0.65

    -

    修复: • 修复兼容性问题。

    -
    -

    📅 2024/8/26 08:32 - Ver 2.2.0.62

    -

    新增: • 在脚本列表顶部添加下载按钮,点击下载所有脚本。

    -
    -

    📅 2024/8/24 03:23 - Ver 2.2.0.59

    -

    优化: • 优化脚本列表图标显示位置。

    -
    -

    📅 2024/8/23 06:12 - Ver 2.2.0.57

    -

    优化: • 优化设置界面代码。

    -
    -

    📅 2024/8/20 02:20 - Ver 2.2.0.53

    -

    修复: • 修正脚本设置界面在移动设备上显示错乱问题。

    -
    -

    📅 2024/8/14 17:43 - Ver 2.2.0.47

    -

    新增: • 增加越南语言包,感谢网友 RenjiYuusei 翻译。

    -
    -

    📅 2024/8/13 04:43 - Ver 2.2.0.44

    -

    新增: • 增加 WebHook 页快捷跳转脚本管理。

    -
    -

    📅 2024/8/4 22:09 - Ver 2.2.0.35

    -

    修复: • 修复监听规则变化导致动态监听失败。
    -新增: • 监听规则增加:user-script-list-section browse-script-list

    -
    -

    📅 2024/7/20 - Ver 2.2.0.14

    -

    优化: • 复制 GreasyFork 优化 中的新 CSS。

    -
    -

    📅 2024/7/17 - Ver 2.2.0.9

    -

    新增:
    -• 增加 GreasyFork 优化 中的脚本双列显示。
    -• 增加 GreasyFork 优化 中的美化导航栏。
    -• 增加固定网站侧边操作栏。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.8

    -

    新增: • 完全的繁体语言支持。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.7

    -

    新增:
    -• 增加侧边导航栏开关。
    -• 增加图片代理(开启时不兼容 GreasyFork 优化 中的图片浏览)。
    -修复:
    -• 修复在移动设备上浏览图片超出浏览器外的问题。
    -• 修改在编辑代码时自动勾选美化。

    -
    -

    📅 2024/7/14 - Ver 2.2.0.6

    -

    新增:
    -• 添加导航栏展开 "更多"。
    -• 增加 Greasy Fork 增强 中的侧边导航栏。
    -优化: • 完善对多语言的支持。

    -
    -

    📅 2024/7/13 - Ver 2.2.0.5

    -

    新增: • 增加自动登录 GreasyFork 优化
    -修复: • 修复显示列表上的脚本安装状态。
    -优化: • 完善对多语言的支持。

    -
    - -
    - - - - - -## 脚本功能 - -为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作。该脚本从网站收集而来。 ->![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) -![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) -![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) -![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) -![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) -![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) - -

    查看Greasyfork 糊裱匠的版本更新记录

    - - -## 功能介绍 - - -### 脚本详情 - -- 切换文档视图与网页视图 -- 复制代码 -- 显示脚本图标 -- 清空图标缓存 -- 脚本历史增加安装 -- 增加下载按钮 -- 脚本代码显示行数字数 -- 按创建日期排序脚本列表 -- 复制库声明 -- 显示引用文件数 -- 复制短链接 -- 美化代码片段 -- 美化查看代码 - - - -### 脚本列表 - -- 列表显示安装下载 -- 锁定语言设置 -- 显示评分 -- 显示源码 -- 使用旧版列表 -- 显示所有语言脚本 -- 移动侧边栏 -- 按创建日期排序脚本列表 - - - -### 美化控件 - -- 控件美化 -- 美化选择框和单选框标签 - - - -### 适用于 - -- 启用增强 -- 新窗口打开 -- 显示在论坛的脚本数量 -- 详情适用于打开: - - 论坛搜索 - - 网页打开 - - 弹出提示 - - - -### 个人主页 - -- 清理旧的主页内容 -- 主页清理的天数 -- 主页脚本添加操作 -- 隐藏近期评论 -- 主页显示统计 - - - -### 导航栏 - -- 增加发布新脚本选项 -- 跳转成人脚本 -- 修复导航栏样式 -- 在导航栏添加打开本界面 -- 导航栏对齐 - - - -### 网站 - -- 自动启用代码编辑框美化 -- 在新标签页中打开链接 -- 精确日期 -- 网站最大化浏览 -- 一键举报 -- 本地代码高亮 -- 隐藏图标 -- 显示图标 -- 灰度已阅读评论 -- 隐藏已阅读评论 -- 侧边导航栏 -- 代理用户图片 - - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - - -## 图片展示: - -![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) -![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) -![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) -![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) -![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) -![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) -![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) -![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) -![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) -![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) -![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) -![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) -![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) -![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/greasyfork-utility-toolkit/README_en.md b/Script details/greasyfork-utility-toolkit/README_en.md deleted file mode 100644 index 09ff6cfec..000000000 --- a/Script details/greasyfork-utility-toolkit/README_en.md +++ /dev/null @@ -1,379 +0,0 @@ - -
    - - - - - -
    -

    GreasyforkGlue craftsman

    -

    「 Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ Greasyfork Glue craftsman Change log

    -

    📅 2024/9/29 11:47 - Ver 2.2.0.92

    -

    New: • Add personal homepage Hide private messages

    -
    -

    📅 2024/8/29 02:37 - Ver 2.2.0.70

    -

    New: • Script details page,All scripts list added Script Rating

    -
    -

    📅 2024/8/27 13:37 - Ver 2.2.0.65

    -

    repair: • Fix compatibility issues。

    -
    -

    📅 2024/8/26 08:32 - Ver 2.2.0.62

    -

    New: • Add a download button at the top of the script list,Click to download all scripts。

    -
    -

    📅 2024/8/24 03:23 - Ver 2.2.0.59

    -

    optimization: • Optimize the display position of the script list icon。

    -
    -

    📅 2024/8/23 06:12 - Ver 2.2.0.57

    -

    optimization: • Optimize setting interface code。

    -
    -

    📅 2024/8/20 02:20 - Ver 2.2.0.53

    -

    repair: • Fixed an issue where the script setting interface displays incorrectly on mobile devices。

    -
    -

    📅 2024/8/14 17:43 - Ver 2.2.0.47

    -

    New: • Add Vietnamese language pack,Thanks netizens RenjiYuusei translate。

    -
    -

    📅 2024/8/13 04:43 - Ver 2.2.0.44

    -

    New: • Increase WebHook Page quick jump script management。

    -
    -

    📅 2024/8/4 22:09 - Ver 2.2.0.35

    -

    repair: • Fixed the issue of dynamic monitoring failure caused by changes in monitoring rules。
    -New: • Monitoring rules added:user-script-list-section browse-script-list

    -
    -

    📅 2024/7/20 - Ver 2.2.0.14

    -

    optimization: • copy GreasyFork optimization new in CSS。

    -
    -

    📅 2024/7/17 - Ver 2.2.0.9

    -

    New:
    -• Increase GreasyFork optimization Script in double column display。
    -• Increase GreasyFork optimization Beautify navigation bar in。
    -• Add fixed website side action bar。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.8

    -

    New: • Full traditional language support。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.7

    -

    New:
    -• Add side navigation bar switch。
    -• Add image proxy(Not compatible when enabled GreasyFork optimization Picture browsing in)。
    -repair:
    -• Fixed the problem of images being viewed outside the browser on mobile devices。
    -• Modify to automatically check beautification when editing code。

    -
    -

    📅 2024/7/14 - Ver 2.2.0.6

    -

    New:
    -• Add navigation bar expansion "More"。
    -• Increase Greasy Fork Enhance Side navigation bar in。
    -optimization: • Improve support for multiple languages。

    -
    -

    📅 2024/7/13 - Ver 2.2.0.5

    -

    New: • Add automatic login GreasyFork optimization
    -repair: • Fix script installation status on display list。
    -optimization: • Improve support for multiple languages。

    -
    - -
    - - - - - -## Script Overview: - -Provide various usage functions for Greasyfork, absolute time, web page widescreen, script page enhancement, download extension, panel repair and a series of operations. This script is collected from the website. ->![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) -![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) -![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) -![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) -![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) -![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) - - ---- - - - -## Features - - - -### Script Details - -- Switch Document View and Web View -- Copy Code -- Show Script Icon -- Clear Icon Cache -- Add Installation to Script History -- Add Download Button -- Display Line Numbers for Script Code -- Sort Script List by Creation Date -- Copy Library Declaration -- Show Number of Referenced Files -- Copy Short Link -- Beautify Code Snippets -- Beautify Code View - - - -### Script List - -- Display Installation and Download in List -- Lock Language Settings -- Show Ratings -- Show Source Code -- Use Old Version of List -- Show Scripts in All Languages -- Move Sidebar -- Sort Script List by Creation Date - - - -### Beautify Controls - -- Beautify Controls -- Beautify Select Box and Radio Button Labels - - - -### Applicable To - -- Enable Enhancement -- Open in New Window -- Show Number of Scripts on Forum -- Details Applicable To: - - Forum Search - - Open Webpage - - Popup Tip - - - -### Personal Homepage - -- Clean Up Old Homepage Content -- Days to Clean Homepage Content -- Add Scripts to Homepage -- Hide Recent Comments -- Display Statistics on Homepage - - - -### Navigation Bar - -- Add Option to Publish New Script -- Link to Adult Scripts -- Fix Navigation Bar Style -- Add "Open This Page" to Navigation Bar -- Align Navigation Bar - - - -### Website - -- Automatically Apply Code Editor Beautification -- Open Links in New Tab -- Precise Date -- Maximize Website View -- One-Click Report -- Local Code Highlighting -- Hide Icon -- Show Icon -- Grayscale Read Comments -- Hide Read Comments -- Side Navigation Bar -- Image Proxy - ---- - - - -## Thank you - - - -### Quote script - -- [Auto Enable Syntax-Highlighting Source Editor](https://greasyfork.org/zh-CN/scripts/22223) -- [Greasyfork in your language](https://greasyfork.org/zh-CN/scripts/6245) -- [Greasyfork excellentchange](https://greasyfork.org/zh-CN/scripts/411837) -- [GreasyFork Copy Code Snippet](https://greasyfork.org/zh-CN/scripts/423726) -- [Download Script Button](https://greasyfork.org/zh-CN/scripts/420872) -- [GreasyFork Script Icon](https://greasyfork.org/zh-CN/scripts/6861) -- [Add "Post a new script" Link](https://greasyfork.org/zh-CN/scripts/450357) -- [Open Scripts List Sorting for Creation Date by Default](https://greasyfork.org/zh-CN/scripts/495477) -- [Absolute Time on GreasyFork](https://greasyfork.org/zh-CN/scripts/470348) -- [foldstack greasyfork PassExpectdiscussArgument](https://greasyfork.org/scripts/426549/) -- [maximale Fensterbreite auf nutzen](https://greasyfork.org/de/scripts/36037) -- [Toggle HTML View](https://greasyfork.org/de/scripts/471149) -- [GreasyFork Header Style Fix](https://greasyfork.org/zh-CN/scripts/473269) -- [Greasy Fork Dark Theme](https://greasyfork.org/zh-CN/scripts/436913) -- [Greasyfork beautifulchange](https://greasyfork.org/zh-CN/scripts/446849) -- [Greasy Fork increasepowerful](https://greasyfork.org/scripts/467078) -- [Greasy Fork URL footbooknamesayclearreason](https://greasyfork.org/scripts/431940) -- [Greasyfork excellentchange](https://greasyfork.org/zh-CN/scripts/475722) -- [Greasy Fork: Mark Script Discussions as Read](https://greasyfork.org/scripts/438010) -- [Greasy Fork Bookmark](https://greasyfork.org/scripts/493406) -- [GreasyFork onekeytimesnewspapergarbagegarbagecommentArgument](https://greasyfork.org/scripts/474395) - - ---- - - - -## Photos: - -![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) -![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) -![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) -![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) -![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) -![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) -![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) -![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) -![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) -![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) -![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) -![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) -![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) -![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) - ---- - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/greasyfork-utility-toolkit/README_ko.md b/Script details/greasyfork-utility-toolkit/README_ko.md deleted file mode 100644 index a82dfb4ad..000000000 --- a/Script details/greasyfork-utility-toolkit/README_ko.md +++ /dev/null @@ -1,381 +0,0 @@ - -
    - - - - - -
    -

    Greasyfork糊裱匠

    -

    「 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    기록 업데이트

    🛠️ Greasyfork 糊裱匠 변경 로그

    -

    📅 2024/9/29 11:47 - Ver 2.2.0.92

    -

    새로운: • 개인 홈페이지 추가 비공개 메시지 숨기기

    -
    -

    📅 2024/8/29 02:37 - Ver 2.2.0.70

    -

    새로운: • 스크립트 세부정보 페이지,모든 스크립트 목록이 추가되었습니다. 스크립트 등급

    -
    -

    📅 2024/8/27 13:37 - Ver 2.2.0.65

    -

    수리하다: • 호환성 문제 수정。

    -
    -

    📅 2024/8/26 08:32 - Ver 2.2.0.62

    -

    새로운: • 스크립트 목록 상단에 다운로드 버튼 추가,모든 스크립트를 다운로드하려면 클릭하세요.。

    -
    -

    📅 2024/8/24 03:23 - Ver 2.2.0.59

    -

    최적화: • 스크립트 목록 아이콘의 표시 위치 최적화。

    -
    -

    📅 2024/8/23 06:12 - Ver 2.2.0.57

    -

    최적화: • 설정 인터페이스 코드 최적화。

    -
    -

    📅 2024/8/20 02:20 - Ver 2.2.0.53

    -

    수리하다: • 모바일 장치에서 스크립트 설정 인터페이스가 잘못 표시되는 문제를 수정했습니다.。

    -
    -

    📅 2024/8/14 17:43 - Ver 2.2.0.47

    -

    새로운: • 베트남어 언어 팩 추가,네티즌 여러분 감사합니다 RenjiYuusei 번역하다。

    -
    -

    📅 2024/8/13 04:43 - Ver 2.2.0.44

    -

    새로운: • 증가하다 WebHook 페이지 빠른 점프 스크립트 관리。

    -
    -

    📅 2024/8/4 22:09 - Ver 2.2.0.35

    -

    수리하다: • 모니터링 규칙 변경으로 인한 동적 모니터링 실패 문제 수정。
    -새로운: • 모니터링 규칙이 추가되었습니다.:user-script-list-section browse-script-list

    -
    -

    📅 2024/7/20 - Ver 2.2.0.14

    -

    최적화: • 복사 GreasyFork 최적화 새로운 CSS。

    -
    -

    📅 2024/7/17 - Ver 2.2.0.9

    -

    새로운:
    -• 증가하다 GreasyFork 최적화 이중 열 디스플레이의 스크립트。
    -• 증가하다 GreasyFork 최적화 내비게이션 바를 아름답게。
    -• 고정된 웹사이트 사이드 액션 바 추가。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.8

    -

    새로운: • 완전한 전통적인 언어 지원。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.7

    -

    새로운:
    -• 측면 탐색 표시줄 스위치 추가。
    -• 이미지 프록시 추가(활성화되면 호환되지 않음 GreasyFork 최적화 사진 찾아보기)。
    -수리하다:
    -• 모바일 기기에서 브라우저 외부에서 이미지가 보이는 문제 수정。
    -• 코드 편집 시 자동으로 미화를 확인하도록 수정。

    -
    -

    📅 2024/7/14 - Ver 2.2.0.6

    -

    새로운:
    -• 네비게이션 바 확장 추가 "더"。
    -• 증가하다 Greasy Fork 향상시키다 측면 탐색 모음。
    -최적화: • 다국어 지원 개선。

    -
    -

    📅 2024/7/13 - Ver 2.2.0.5

    -

    새로운: • 자동 로그인 추가 GreasyFork 최적화
    -수리하다: • 표시 목록의 스크립트 설치 상태 수정。
    -최적화: • 다국어 지원 개선。

    -
    - -
    - - - - - -## Greasyfork의 다양한 기능 제공 - -Greasyfork에 다양한 사용 기능을 제공하는 스크립트입니다. 절대 시간, 웹 페이지 넓은 화면, 스크립트 페이지 강화, 다운로드 확장, 패널 수정 등 일련의 작업을 지원합니다. 이 스크립트는 웹사이트에서 수집되었습니다. ->![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) -![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) -![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) -![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) -![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) -![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) - - - ---- - - - - -## 기능 소개 - - - -### 스크립트 상세 - -- 문서 보기와 웹 보기 전환 -- 코드 복사 -- 스크립트 아이콘 표시 -- 아이콘 캐시 비우기 -- 스크립트 히스토리에 설치 추가 -- 다운로드 버튼 추가 -- 스크립트 코드의 줄 수와 문자 수 표시 -- 생성일로 스크립트 목록 정렬 -- 라이브러리 선언 복사 -- 참조 파일 수 표시 -- 짧은 링크 복사 -- 코드 스니펫 미화 -- 코드 보기 미화 - - - -### 스크립트 목록 - -- 리스트 표시로 설치 및 다운로드 -- 언어 설정 잠금 -- 평가 표시 -- 소스 코드 표시 -- 구버전 목록 사용 -- 모든 언어 스크립트 표시 -- 사이드바 이동 -- 생성일로 스크립트 목록 정렬 - - - -### 미화 컨트롤 - -- 컨트롤 미화 -- 선택 상자와 라디오 버튼 레이블 미화 - - - -### 적용 대상 - -- 기능 확장 활성화 -- 새 창에서 열기 -- 포럼에서 스크립트 수 표시 -- 자세한 내용은 다음에 적용: - - 포럼 검색 - - 웹 페이지 열기 - - 팝업 알림 - - - -### 개인 홈페이지 - -- 오래된 홈페이지 콘텐츠 정리 -- 홈페이지 정리 일수 설정 -- 홈페이지 스크립트 추가 작업 -- 최근 댓글 숨기기 -- 홈페이지 통계 표시 - - - -### 탐색 바 - -- 새 스크립트 게시 옵션 추가 -- 성인 스크립트로 이동 -- 탐색 바 스타일 수정 -- 탐색 바에 이 인터페이스 열기 버튼 추가 -- 탐색 바 정렬 - - - -### 웹사이트 - -- 코드 편집기 미화 자동 활성화 -- 새 탭에서 링크 열기 -- 정확한 날짜 표시 -- 웹사이트 최대화 -- 원클릭 신고 -- 로컬 코드 하이라이트 -- 아이콘 숨기기 -- 아이콘 표시 -- 읽은 댓글 그레이 스케일 -- 읽은 댓글 숨기기 -- 사이드 내비게이션 바 -- 사용자 이미지 프록시 - ---- - - - -## 감사합니다 - - - -### 참고한 스크립트 -- [Auto Enable Syntax-Highlighting Source Editor](https://greasyfork.org/zh-CN/scripts/22223) -- [Greasyfork in your language](https://greasyfork.org/zh-CN/scripts/6245) -- [Greasyfork 훌륭한변화](https://greasyfork.org/zh-CN/scripts/411837) -- [GreasyFork Copy Code Snippet](https://greasyfork.org/zh-CN/scripts/423726) -- [Download Script Button](https://greasyfork.org/zh-CN/scripts/420872) -- [GreasyFork Script Icon](https://greasyfork.org/zh-CN/scripts/6861) -- [Add "Post a new script" Link](https://greasyfork.org/zh-CN/scripts/450357) -- [Open Scripts List Sorting for Creation Date by Default](https://greasyfork.org/zh-CN/scripts/495477) -- [Absolute Time on GreasyFork](https://greasyfork.org/scripts/470348) -- [겹스택 greasyfork 통과하다예상하다논의하다논쟁](https://greasyfork.org/scripts/426549/) -- [maximale Fensterbreite auf nutzen](https://greasyfork.org/de/scripts/36037) -- [Toggle HTML View](https://greasyfork.org/de/scripts/471149) -- [GreasyFork Header Style Fix](https://greasyfork.org/zh-CN/scripts/473269) -- [Greasy Fork Dark Theme](https://greasyfork.org/zh-CN/scripts/436913) -- [Greasyfork 아름다운변화](https://greasyfork.org/zh-CN/scripts/446849) -- [Greasy Fork 증가하다강한](https://greasyfork.org/scripts/467078) -- [Greasy Fork URL 발책이름말하다분명한이유](https://greasyfork.org/scripts/431940) -- [Greasyfork 훌륭한변화](https://greasyfork.org/zh-CN/scripts/475722) -- [Greasy Fork: Mark Script Discussions as Read](https://greasyfork.org/scripts/438010) -- [Greasy Fork Bookmark](https://greasyfork.org/scripts/493406) -- [GreasyFork 하나열쇠시간신문쓰레기쓰레기논평논쟁](https://greasyfork.org/scripts/474395) - ---- - - - -## Photos: - -![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) -![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) -![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) -![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) -![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) -![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) -![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) -![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) -![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) -![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) -![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) -![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) -![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) -![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) - - - ---- - - - - -> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 -> - [**GreasyFork향상에 적합**](https://greasyfork.org/scripts/497317): 추가할 링크에 적합한 스크립트 세부정보 페이지가 추가됩니다.,웹페이지 복사,타이어 검색 -> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. -> - [**GreaysFork 향상시키다 WebHook동기화 설정**](https://greasyfork.org/scripts/506717): 이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가하세요.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 -> - [**GreasyFork 스크립트 등급 표시**](https://greasyfork.org/scripts/501119): 스크립트 목록에 평가 점수 추가 -> - [**GreasyFork 고급 검색**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 상적 각본 -> - [**GreasyFork 네비게이션 바향상시키다**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,사용자 목록 추가,사용자 콘솔 등 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 -> - [**Greasyfork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 -> - [**Script Finder그리스 원숭이 스크립트 찾기**](https://greasyfork.org/scripts/498904): Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. - - - - - - - -## 돕다 - - 권장 브라우저 및 스크립트 관리자: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **사용자 스크립트 설치 방법에 대해 더 알고 싶다면,[나를 클릭하세요](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)그래픽 교육 보기!** - -

    더 많은 사용자 스크립트 / -맨 위로 돌아가기↑

    - - - - - - - -### 모든 게시 스크립트 보기 - - - - -> ### 🔍당신은 찾고있을 수 있습니다 ChatGPT관련 스크립트 -> - [**ChatGPT코드 글꼴 크기 감소**](https://greasyfork.org/scripts/505209): 허락하다 ChatGPT 코드 글꼴 크기가 작아집니다. -> - [**ChatGPT 聊天코드 복사단추**](https://greasyfork.org/scripts/509598): 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“复制代码”按钮 -> - [**ChatGPT 캐릭터 카운터**](https://greasyfork.org/scripts/506166): 添加一문자计数器到输入框,로 제한됨 32732 문자。(ChatGPT 한도는 32732 个字符。) -> - [**ChatGPT 자체 메시지 및 최대 너비 축소**](https://greasyfork.org/scripts/504901): 귀하가 보낸 긴 메시지를 자동으로 접습니다.,화면 공간 절약。채팅 창의 최대 너비를 설정할 수 있습니다.,긴 메시지가 지정된 범위를 초과하지 않도록 유지。 - - - -> ### 🔍당신은 찾고있을 수 있습니다 웹 관련 스크립트 -> - [**웹 페이지 작성 클립 버전 권한 관리자**](https://greasyfork.org/scripts/497403): 편집된 버전에서 웹페이지가 표시되는 것을 금지합니다.,출시용 녹색,빨간색 금지,주황색 임시 방향 -> - [**승강기CSDN로그인복사限制**](https://greasyfork.org/scripts/505207): 엿 먹어라 CSDN 登录复制,로그인하지 않고 코드 상자 내용 복사 -> - [**화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요**](https://greasyfork.org/scripts/507036): 웹 페이지 테이블의 모든 열에 색상 그라데이션 미화를 자동으로 적용합니다.. -> - [**웹페이지에서 키워드 강조표시+(추천하다)**](https://greasyfork.org/scripts/498906): 웹페이지의 텍스트 강조표시 -> - [**웹 텍스트 강조 표시_미니 버전**](https://greasyfork.org/scripts/498905): 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 -> - [**작은 창 미리보기**](https://greasyfork.org/scripts/504880): 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 -> - [**링크 밑줄 제거**](https://greasyfork.org/scripts/498625): 웹 링크에서 밑줄 제거 -> - [**위아래로 작은 스크롤 버튼**](https://greasyfork.org/scripts/497251): 페이지 오른쪽에 상하 스크롤 버튼 추가 -> - [**원터치 상하 버튼**](https://greasyfork.org/scripts/500255): 다음에서 수정됨Greasyfork사용자 스크립트 웹 페이지에 상단 및 하단 버튼 추가,긴 페이지의 상단 또는 하단으로 빠르게 이동할 수 있습니다.。 아래로 스크롤할 때 버튼 색상 변경 추가,3몇 초 내에 스크롤이 없으면 자동으로 중지됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 GitHub관련 스크립트 -> - [**GitHub정보 표시 제출HTML**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 -> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。 -> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다 “다른” 아래에 -> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 -> - [**GitHub접는 사람下载**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 文件夹。 -> - [**GitHub단일 파일 다운로드 및 파일 복사URL**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 -> - [**🤠 Github 어시스턴트 강화 창고 전시 크기 비활성 개발 경고 창고 내 빠른 점프用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 존재하다Github창고 보기 및 검색 시 창고 크기 표시 ,비활성 개발 경고,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 - - - -> ### 🔍당신은 찾고있을 수 있습니다 Google관련 스크립트 -> - [**Google 고급 검색**](https://greasyfork.org/scripts/502652): 이것은 Google 고급 검색 양식에 대한 사용자 스크립트 추가。페이지 상단에 숨길 수 있는 고급 검색 양식을 추가합니다.,보다 정확하게 정보를 검색할 수 있습니다.。 -> - [**Google 특정 사이트 검색 및 차단**](https://greasyfork.org/scripts/500262): 검색 엔진 결과에서 특정 사이트 차단,사용자가 원치 않는 검색 결과를 필터링하도록 지원。 사용자 정의 입력 차단 사이트。체재-zhihu -baidu Google 검색 콘텐츠를 차단하는 데 사용됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 GreasyFork관련 스크립트 -> - [**GreasyFork향상에 적합**](https://greasyfork.org/scripts/497317): 추가할 링크에 적합한 스크립트 세부정보 페이지가 추가됩니다.,웹페이지 복사,타이어 검색 -> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. -> - [**GreaysFork 향상시키다 WebHook동기화 설정**](https://greasyfork.org/scripts/506717): 이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가하세요.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 -> - [**GreasyFork 스크립트 등급 표시**](https://greasyfork.org/scripts/501119): 스크립트 목록에 평가 점수 추가 -> - [**GreasyFork 고급 검색**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 상적 각본 -> - [**GreasyFork 네비게이션 바향상시키다**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,사용자 목록 추가,사용자 콘솔 등 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 -> - [**Greasyfork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 -> - [**Script Finder그리스 원숭이 스크립트 찾기**](https://greasyfork.org/scripts/498904): Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 성인 각본 -> - [**MiSSAV자동 로그인**](https://greasyfork.org/scripts/505325): 발각 MisssAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -> - [**MissAV컬렉션 관리자**](https://greasyfork.org/scripts/497682): miss재생목록 백업,사진 다운로드 및 비디오 정보 저장 지원.로컬 웹페이지 내보내기 수출 지원webdav -> - [**TissAV자동 로그인**](https://greasyfork.org/scripts/506528): 발각 TissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -> - [**JableTV자동 로그인**](https://greasyfork.org/scripts/506730): 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. - - - -> ### 🔍당신은 찾고있을 수 있습니다 자동 번역 -> - [**외국어 터미네이터**](https://greasyfork.org/scripts/504890): 중국어가 아닌 문자 인식,길이가 그 이상인 경우 5 그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그럼 중국어로 바꾸세요,접근 가능해야 함google회로망 -> - [**웹페이지 번역——중국어로 자동 번역됨**](https://greasyfork.org/scripts/505208): 중국어가 아닌 웹페이지의 오른쪽 하단 모서리를 제공합니다.(왼쪽 하단으로 조정 가능)추가하다 google 번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 - - -
    - - - diff --git a/Script details/greasyfork-utility-toolkit/README_zh-TW.md b/Script details/greasyfork-utility-toolkit/README_zh-TW.md deleted file mode 100644 index d3ccfbb49..000000000 --- a/Script details/greasyfork-utility-toolkit/README_zh-TW.md +++ /dev/null @@ -1,397 +0,0 @@ - -
    - - - - - -
    -

    Greasyfork膠水工匠

    -

    「 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新記錄

    🛠️ Greasyfork 膠水工匠 更新日誌

    -

    📅 2024/9/29 11:47 - Ver 2.2.0.92

    -

    新增: • 個人主頁添加 隱藏私訊

    -
    -

    📅 2024/8/29 02:37 - Ver 2.2.0.70

    -

    新增: • 腳本詳情頁,所有腳本清單添加 腳本評分

    -
    -

    📅 2024/8/27 13:37 - Ver 2.2.0.65

    -

    修復: • 修復相容性問題。

    -
    -

    📅 2024/8/26 08:32 - Ver 2.2.0.62

    -

    新增: • 在腳本清單頂部新增下載按鈕,點擊下載所有腳本。

    -
    -

    📅 2024/8/24 03:23 - Ver 2.2.0.59

    -

    最佳化: • 優化腳本清單圖示顯示位置。

    -
    -

    📅 2024/8/23 06:12 - Ver 2.2.0.57

    -

    最佳化: • 優化設定介面程式碼。

    -
    -

    📅 2024/8/20 02:20 - Ver 2.2.0.53

    -

    修復: • 修正腳本設定介面在行動裝置上顯示錯亂問題。

    -
    -

    📅 2024/8/14 17:43 - Ver 2.2.0.47

    -

    新增: • 增加越南語言包,感謝網友 RenjiYuusei 翻譯。

    -
    -

    📅 2024/8/13 04:43 - Ver 2.2.0.44

    -

    新增: • 增加 WebHook 頁快速跳轉腳本管理。

    -
    -

    📅 2024/8/4 22:09 - Ver 2.2.0.35

    -

    修復: • 修復監聽規則變化導致動態監聽失敗。
    -新增: • 監聽規則增加:user-script-list-section browse-script-list

    -
    -

    📅 2024/7/20 - Ver 2.2.0.14

    -

    最佳化: • 複製 GreasyFork 最佳化 中的新 CSS。

    -
    -

    📅 2024/7/17 - Ver 2.2.0.9

    -

    新增:
    -• 增加 GreasyFork 最佳化 中的腳本雙列顯示。
    -• 增加 GreasyFork 最佳化 中的美化導覽列。
    -• 增加固定網站側邊操作欄。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.8

    -

    新增: • 完全的繁體語言支持。

    -
    -

    📅 2024/7/15 - Ver 2.2.0.7

    -

    新增:
    -• 增加側邊導覽欄開關。
    -• 增加圖片代理(開啟時不相容 GreasyFork 最佳化 中的圖片瀏覽)。
    -修復:
    -• 修復在行動裝置上瀏覽圖片超出瀏覽器外的問題。
    -• 修改在編輯程式碼時自動勾選美化。

    -
    -

    📅 2024/7/14 - Ver 2.2.0.6

    -

    新增:
    -• 新增導覽列展開 "更多"。
    -• 增加 Greasy Fork 增強 中的側邊導覽欄。
    -最佳化: • 完善對多語言的支持。

    -
    -

    📅 2024/7/13 - Ver 2.2.0.5

    -

    新增: • 增加自動登入 GreasyFork 最佳化
    -修復: • 修復顯示​​清單上的腳本安裝狀態。
    -最佳化: • 完善對多語言的支持。

    -
    - -
    - - - - - -## 腳本功能 - -為 Greasyfork 提供各種使用功能,絕對時間,網頁寬屏,腳本頁增強,下載拓展,面板修復等一系列操作。該腳本從網站收集而來。 ->![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) -![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) -![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) -![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) -![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) -![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) - -

    查看Greasyfork 糊裱匠的版本更新記錄

    - ---- - - - - -## 功能介紹 - - -### 腳本詳情 - -- 切換文檔視圖與網頁視圖 -- 復製代碼 -- 顯示腳本圖標 -- 清空圖標緩存 -- 腳本歷史增加安裝 -- 增加下載按鈕 -- 腳本代碼顯示行數字數 -- 按創建日期排序腳本列表 -- 復製庫聲明 -- 顯示引用文件數 -- 復製短鏈接 -- 美化代碼片段 -- 美化查看代碼 - - - -### 腳本列表 - -- 列表顯示安裝下載 -- 鎖定語言設置 -- 顯示評分 -- 顯示源碼 -- 使用舊版列表 -- 顯示所有語言腳本 -- 移動側邊欄 -- 按創建日期排序腳本列表 - - - -### 美化控件 - -- 控制美化 -- 美化選擇框和單選框標簽 - - - -### 適用於 - -- 啟用增強 -- 新窗口打開 -- 顯示在論壇的腳本數量 -- 詳情適用於打開: - - 論壇搜索 - - 網頁打開 - - 彈出提示 - - - -### 個人主頁 - -- 清理舊的主頁內容 -- 主頁清理的天數 -- 主頁腳本添加操作 -- 隱藏近期評論 -- 主頁顯示統計 - - - -### 導航欄 - -- 增加發布新腳本選項 -- 跳轉成人腳本 -- 修復導航欄樣式 -- 在導航欄添加打開本界面 -- 導航欄對齊 - - - -### 網站 - -- 自動啟用代碼編輯框美化 -- 在新標簽頁中打開鏈接 -- 精確日期 -- 網站最大化瀏覽 -- 一鍵舉報 -- 本地代碼高亮 -- 隱藏圖標 -- 顯示圖標 -- 灰度已閱讀評論 -- 隱藏已閱讀評論 -- 側邊導航欄 -- 代理用戶圖片 - ---- - - -## 🌐 瀏覽器與腳本管理器 - -| 瀏覽器 | 腳本管理器 | -| :----------------------------------: | :------------------------------------------------------------: | -| Chrome 或 基於 Chromium 內核的瀏覽器 | [Tampermonkey][Tampermonkey] 或 [Violentmonkey][Violentmonkey] | -| Safari 瀏覽器(macOS, iOS, iPadOS) | [Macaque][Macaque] 或 [Stay][Stay] | -| Firefox 或 基於 Gecko 內核的瀏覽器 | [Tampermonkey][Tampermonkey] 或 [Violentmonkey][Violentmonkey] | -| Via 瀏覽器(Android) | 瀏覽器內自帶 | - -[Tampermonkey]: http://tampermonkey.net/ "篡改猴" -[Violentmonkey]: https://violentmonkey.github.io/ "暴力猴" -[Macaque]: https://macaque.app/ "獼猴" -[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay" - - - - - -## Thank you - - - -### 引用腳本 - -- [Auto Enable Syntax-Highlighting Source Editor](https://greasyfork.org/zh-CN/scripts/22223) -- [Greasyfork in your language](https://greasyfork.org/zh-CN/scripts/6245) -- [Greasyfork 優化](https://greasyfork.org/zh-CN/scripts/411837) -- [GreasyFork Copy Code Snippet](https://greasyfork.org/zh-CN/scripts/423726) -- [Download Script Button](https://greasyfork.org/zh-CN/scripts/420872) -- [GreasyFork Script Icon](https://greasyfork.org/zh-CN/scripts/6861) -- [Add "Post a new script" Link](https://greasyfork.org/zh-CN/scripts/450357) -- [Open Scripts List Sorting for Creation Date by Default](https://greasyfork.org/zh-CN/scripts/495477) -- [Absolute Time on GreasyFork](https://greasyfork.org/zh-CN/scripts/470348) -- [折疊 greasyfork 過期討論](https://greasyfork.org/scripts/426549/) -- [maximale Fensterbreite auf nutzen](https://greasyfork.org/de/scripts/36037) -- [Toggle HTML View](https://greasyfork.org/de/scripts/471149) -- [GreasyFork Header Style Fix](https://greasyfork.org/zh-CN/scripts/473269) -- [Greasy Fork Dark Theme](https://greasyfork.org/zh-CN/scripts/436913) -- [Greasyfork 美化](https://greasyfork.org/zh-CN/scripts/446849) -- [Greasy Fork 增強](https://greasyfork.org/zh-CN/scripts/467078) -- [Greasy Fork URL 腳本名稱清理](https://greasyfork.org/scripts/431940/) -- [Greasyfork 優化](https://greasyfork.org/zh-CN/scripts/475722) -- [Greasy Fork: Mark Script Discussions as Read](https://greasyfork.org/scripts/438010) -- [Greasy Fork Bookmark](https://greasyfork.org/scripts/493406) -- [GreasyFork 一鍵回報垃圾評論](https://greasyfork.org/scripts/474395) - ---- - - - -## 圖片展示: - -![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) -![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) -![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) -![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) -![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) -![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) -![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) -![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) -![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) -![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) -![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) -![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) -![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) -![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) - ---- - - - - - -> ### 🔍你可能在找GreasyFork相關腳本 -> - [**GreasyFork適用於增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 -> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝狀況 -> - [**GreaysFork 增強 WebHook同步設定**](https://greasyfork.org/scripts/506717): 這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 -> - [**GreasyFork 顯示腳本評分**](https://greasyfork.org/scripts/501119): 腳本清單新增評價分數 -> - [**GreasyFork 進階搜尋**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋 GreasyFork 和 SleazyFork 上體文字 -> - [**GreasyFork 導覽列增強**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用戶列表,使用者控制台等 -> - [**Greasyfork膠水工匠**](https://greasyfork.org/scripts/497346): 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -> - [**Script Finder油猴腳本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 - - - - - - - -## 使用幫助 - - 推薦瀏覽器和腳本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多關於如何安裝使用者腳本,[點擊我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看圖文教學!** - -

    更多用戶腳本 / -回到頂部↑

    - - - - - - - -### 查看所有發布腳本 - - - - -> ### 🔍你可能在找 ChatGPT相關腳本 -> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): 讓 ChatGPT 程式碼字體變小 -> - [**ChatGPT 聊天複製程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“复制代码”按钮 -> - [**ChatGPT 字元計數器**](https://greasyfork.org/scripts/506166): 添加一個字元计数器到输入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 - - - -> ### 🔍你可能在找 網頁相關腳本 -> - [**網頁寫入剪輯版授權管理員**](https://greasyfork.org/scripts/497403): 禁止網頁向剪輯版拉屎,綠色為放行,紅色禁止,橙色臨時方向 -> - [**解除CSDN登入複製限制**](https://greasyfork.org/scripts/505207): 去你媽的 CSDN 登录复制,無需登入即可複製程式碼框內容 -> - [**絢麗漸層美化網頁表格**](https://greasyfork.org/scripts/507036): 自動為網頁上的表格所有欄位套用顏色漸層美化. -> - [**網頁高亮關鍵字+(推薦)**](https://greasyfork.org/scripts/498906): 對網頁上的文字進行高亮顯示 -> - [**高亮網頁文本_迷你版**](https://greasyfork.org/scripts/498905): 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 -> - [**小視窗預覽**](https://greasyfork.org/scripts/504880): 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -> - [**去除連結下劃線**](https://greasyfork.org/scripts/498625): 去除網頁連結的下劃線 -> - [**上下滾動小按鈕**](https://greasyfork.org/scripts/497251): 頁面右側新增上下滾動按鈕 -> - [**一鍵置頂和置底按鈕**](https://greasyfork.org/scripts/500255): 修改自Greasyfork使用者腳本 為網頁新增置頂和置底按鈕,方便在長頁面中快速移動到頂部或底部。 增加向下滾動時按鈕變色,3秒內無滾動自動停止 - - - -> ### 🔍你可能在找 GitHub相關腳本 -> - [**GitHub提交資訊顯示HTML**](https://greasyfork.org/scripts/505830): 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。 -> - [**Github 代碼語言列表顯示全部**](https://greasyfork.org/scripts/509889): 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在 “其他” 下 -> - [**GitHub 自動確認設備授權**](https://greasyfork.org/scripts/508956): 在GitHub授權頁面自動輸入授權碼與自動確認。 -> - [**GitHub資料夾下载**](https://greasyfork.org/scripts/505496): 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 文件夹。 -> - [**GitHub下載單一文件和複製文件URL**](https://greasyfork.org/scripts/505501): 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 -> - [**🤠 Github 增強助手 倉庫顯示大小 不活躍開發警告 倉庫內快捷跳轉用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看倉庫和搜尋倉庫時顯示倉庫大小 ,不活躍開發警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 倉庫列表文件排序方式改為日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相關腳本 -> - [**Google 進階搜尋**](https://greasyfork.org/scripts/502652): 這是一個為 Google 新增進階搜尋表單的使用者腳本。它能在頁面頂部添加一個可隱藏的高級搜尋表單,使您能夠更精確地搜尋訊息。 -> - [**Google 搜尋屏蔽指定站點**](https://greasyfork.org/scripts/500262): 在搜尋引擎結果中封鎖特定的站點,幫助用戶過濾掉不需要的搜尋結果。 自訂輸入屏蔽站點。格式-zhihu -baidu 用於封鎖谷歌搜尋內容 - - - -> ### 🔍你可能在找 GreasyFork相關腳本 -> - [**GreasyFork適用於增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 -> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝狀況 -> - [**GreaysFork 增強 WebHook同步設定**](https://greasyfork.org/scripts/506717): 這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 -> - [**GreasyFork 顯示腳本評分**](https://greasyfork.org/scripts/501119): 腳本清單新增評價分數 -> - [**GreasyFork 進階搜尋**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋 GreasyFork 和 SleazyFork 上體文字 -> - [**GreasyFork 導覽列增強**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用戶列表,使用者控制台等 -> - [**Greasyfork膠水工匠**](https://greasyfork.org/scripts/497346): 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 -> - [**Script Finder油猴腳本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 - - - -> ### 🔍你可能在找 成人劇本 -> - [**MiSSAV自動登入**](https://greasyfork.org/scripts/505325): 偵測 MisssAV 狀態,並且在未登入時自動登入 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss單張備份,支援下載圖片保存影片訊息.導出本地網頁 支援導出到webdav -> - [**TissAV自動登入**](https://greasyfork.org/scripts/506528): 偵測 TissAV 狀態,並且在未登入時自動登入 -> - [**JableTV自動登入**](https://greasyfork.org/scripts/506730): 偵測 JableTV 狀態,並且在未登入時自動登入 - - - -> ### 🔍你可能在找 自動翻譯 -> - [**外語終結者**](https://greasyfork.org/scripts/504890): 識別非中文字符,如果長度大於 5 且翻譯文中不含中文,則替換為中文,需要可訪問google的網路 -> - [**網頁翻譯——自動翻譯為中文**](https://greasyfork.org/scripts/505208): 給每個非中文的網頁右下角(可以調整到左下角)添加一個 google 翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 - - -
    - - - diff --git a/Script details/greasyfork-webhook-sync-enhanced/README.md b/Script details/greasyfork-webhook-sync-enhanced/README.md deleted file mode 100644 index 1e9337ba5..000000000 --- a/Script details/greasyfork-webhook-sync-enhanced/README.md +++ /dev/null @@ -1,221 +0,0 @@ - -
    - - - - - -
    -

    GreaysFork 增强 WebHook同步设置

    -

    「 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ GreaysFork增强WebHook 更新日志

    -

    📅 2024/9/15 10:53 - Ver 1.1.1.0

    -

    修复: • 按钮hover active focus放入父类.Sync-Modal

    -

    📅 2024/9/5 04:29 - Ver 1.1.0.0

    -

    新增: • 每次提交后返回 GreasyFork 同步提示。

    -
    -

    📅 2024/9/4 11:52 - Ver 1.0.0.0

    -

    初始版本: • 欢迎使用。

    -
    - -
    - - - - - - - -# GreasyFork - 增强WebHook同步设置 -在GreasyFork上设置同步信息时,常常会遇到提交后查看时,发现同步信息并没有被设置成功,导致需要重新输入。这是网站的小问题之一。为了解决这个问题,这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 - - - -## 功能特点 -- **快速输入同步信息**:无需手动重复输入,可以快速地设置和同步信息。 -- **批量增加语言代码**:支持批量添加多个国家/地区的语言代码,无需逐个选择。 -- **支持多种格式**:可以根据需要选择不同的URL格式进行设置。 - - - -## 使用说明 (详情可以查看下方图片或上方视频) -- **脚本管理页面**:处于脚本管理页面,在下方增加一个按钮,点击之后可以对当前脚本进行管理。 -- **网站顶部导航栏**:导航栏增加一个选项,用于点击之后自动获取Webhook同步的脚本.进行多个管理. - - - -## 支持的格式 -目前支持以下三种格式: - -1. **从Markdown文件获取国家语言**: 仅支持 `README_xxx.md`.
    - `https://www.xxx.com/path/to/your/README_xxxxx.md` -2. **直接设置对应的国家语言(简洁格式)**: 支持其他格式文件.
    - ` https://www.xxx.com/path/to/your/filename.md##ko` -3. **直接设置对应的国家语言(详细格式)**: 支持其他格式文件
    - ` https://www.xxx.com/path/to/your/filename.md##简体中文 (zh-CN)` - - -代码如下: 如果你有更多的选择可以拓展
    -` let localeKey = url.includes('##') ? url.match(/##.*\((.*?)\)$/) || url.match(/##(.*?)$/) : url.match(/README_(.*?)\.md/)` - - - -## 注意: -- 提交的本地化国家信息时,代码内必须存在头部声明 例如//@name:zh-CN,否则即使提交成功也是失败的! -- 脚本必须存在!否则同步失败, - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - -## 项目与反馈 - -- **项目页面:** [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) -- **支持与问题反馈:** [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) - -![sync.png](https://s2.loli.net/2024/09/04/oYGt17AV9MD43w6.png) -![nav.png](https://s2.loli.net/2024/09/04/S29ePTaR78uBsrF.png) -![message.png](https://s2.loli.net/2024/09/05/2C6pUBQryHZg35j.png) -![404.png](https://s2.loli.net/2024/09/05/YmJBL9R8qMcx1UZ.png) - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/greasyfork-webhook-sync-enhanced/README_en.md b/Script details/greasyfork-webhook-sync-enhanced/README_en.md deleted file mode 100644 index 6dbb5270e..000000000 --- a/Script details/greasyfork-webhook-sync-enhanced/README_en.md +++ /dev/null @@ -1,223 +0,0 @@ - -
    - - - - - -
    -

    GreaysFork Enhance WebHookSync settings

    -

    「 This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ GreaysForkEnhanceWebHook Change log

    -

    📅 2024/9/15 10:53 - Ver 1.1.1.0

    -

    repair: • buttonhover active focusPut in parent class.Sync-Modal

    -

    📅 2024/9/5 04:29 - Ver 1.1.0.0

    -

    New: • Return after each submission GreasyFork Sync tips。

    -
    -

    📅 2024/9/4 11:52 - Ver 1.0.0.0

    -

    initial version: • Welcome。

    -
    - -
    - - - - - - - -# GreasyFork - Enhanced WebHook Synchronization Settings - -When setting up synchronization information on GreasyFork, you might often find that after submitting, the sync information hasn't been successfully saved, requiring you to re-enter it. This is one of the small issues with the website. To solve this problem, this script helps you quickly input script synchronization information and batch-add multiple country language codes without having to click on each checkbox and then go to the corresponding URL. - - - -## Features -- **Quick Input of Synchronization Information**: No need to manually repeat input, allowing you to quickly set and sync information. -- **Batch Add Language Codes**: Supports batch addition of multiple country/region language codes without the need to select each one individually. -- **Supports Multiple Formats**: You can choose different URL formats for setup based on your needs. - - - -## Instructions (For more details, refer to the images below or the video above) -- **Script Management Page**: On the script management page, an additional button is added at the bottom. After clicking it, you can manage the current script. -- **Website Top Navigation Bar**: Adds an option to the navigation bar that, when clicked, automatically retrieves the WebHook synchronized scripts for multiple management. - - - -## Supported Formats -Currently, the following three formats are supported: - -1. **Get Country Language from Markdown File**: Only supports `README_xxx.md`. - `https://www.xxx.com/path/to/your/README_xxxxx.md` -2. **Directly Set Corresponding Country Language (Simple Format)**: Supports other format files. - ` https://www.xxx.com/path/to/your/filename.md##ko` -3. **Directly Set Corresponding Country Language (Detailed Format)**: Supports other format files. - ` https://www.xxx.com/path/to/your/filename.md##simplebodymiddlearts (zh-CN)` - -Example code: If you have more options, you can extend it.
    -`let localeKey = url.includes('##') ? url.match(/##.*\((.*?)\)$/) || url.match(/##(.*?)$/) : url.match(/README_(.*?)\.md/)` - - - -## Attention: -- When submitting localized country information, there must be a header declaration such as//@ name: zh CN in the code, otherwise even if the submission is successful, it will still fail! -- The script must exist! Otherwise, synchronization will fail, - - - -## Project and Feedback - -- **Project Page:** [GitHub Repository](https://github.com/ChinaGodMan/UserScripts) -- **Support and Issues:** [Report Issues](https://github.com/ChinaGodMan/UserScripts/issues) - -![sync.png](https://s2.loli.net/2024/09/04/oYGt17AV9MD43w6.png) -![nav.png](https://s2.loli.net/2024/09/04/S29ePTaR78uBsrF.png) -![message.png](https://s2.loli.net/2024/09/05/2C6pUBQryHZg35j.png) -![404.png](https://s2.loli.net/2024/09/05/YmJBL9R8qMcx1UZ.png) - - - - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/greasyfork-webhook-sync-enhanced/greasyfork-webhook-sync-enhanced.user.js b/Script details/greasyfork-webhook-sync-enhanced/greasyfork-webhook-sync-enhanced.user.js deleted file mode 100644 index 305166111..000000000 --- a/Script details/greasyfork-webhook-sync-enhanced/greasyfork-webhook-sync-enhanced.user.js +++ /dev/null @@ -1,633 +0,0 @@ -// ==UserScript== -// @name GreaysFork Enhanced WebHook Sync Settings -// @name:zh-CN GreaysFork 增强WebHook同步设置 -// @description:zh-CN GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -// @name:ar GreaysFork يحسنWebHookإعدادات المزامنة -// @description:ar GreaysFork أدخل بسرعة معلومات مزامنة البرنامج النصي,وإضافة رموز اللغة لدول متعددة على دفعات,بدلاً من النقر على مربعات التحديد واحدًا تلو الآخر والانتقال إلى عنوان URL المقابل。 -// @name:bg GreaysFork ПодобретеWebHookНастройки за синхронизиране -// @description:bg GreaysFork Бързо въведете информация за синхронизиране на скриптове,И добавете езикови кодове за множество държави на партиди,Вместо да щракнете върху полетата за избор едно по едно и да отидете на съответния URL адрес。 -// @name:cs GreaysFork ZvýšitWebHookNastavení synchronizace -// @description:cs GreaysFork Rychle zadejte informace o synchronizaci skriptu,A přidat kódy jazyků pro více zemí v dávkách,Místo toho, abyste klikali na jednotlivá výběrová pole a přecházeli na odpovídající URL。 -// @name:da GreaysFork ForbedreWebHookSynkroniseringsindstillinger -// @description:da GreaysFork Indtast hurtigt scriptsynkroniseringsoplysninger,Og tilføje sprogkoder for flere lande i batches,I stedet for at klikke på valgfelterne én efter én og gå til den tilsvarende URL。 -// @name:de GreaysFork ErweiternWebHookSynchronisierungseinstellungen -// @description:de GreaysFork Geben Sie schnell Informationen zur Skriptsynchronisierung ein,Und fügen Sie stapelweise Sprachcodes für mehrere Länder hinzu,Anstatt die Auswahlfelder einzeln anzuklicken und zur entsprechenden URL zu gelangen。 -// @name:el GreaysFork ΕπαυξάνωWebHookΡυθμίσεις συγχρονισμού -// @description:el GreaysFork Εισαγάγετε γρήγορα πληροφορίες συγχρονισμού σεναρίου,Και προσθέστε κωδικούς γλώσσας για πολλές χώρες σε παρτίδες,Αντί να κάνετε κλικ στα πλαίσια επιλογής ένα προς ένα και να μεταβείτε στην αντίστοιχη διεύθυνση URL。 -// @name:en GreaysFork EnhanceWebHookSync settings -// @description:en GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -// @name:eo GreaysFork PlibonigiWebHookSinkronigi agordojn -// @description:eo GreaysFork Rapide enigu informojn pri skripto-sinkronigado,Kaj aldonu lingvajn kodojn por pluraj landoj en aroj,Anstataŭ klaki la elektajn skatolojn unu post alia kaj iri al la responda URL。 -// @name:es GreaysFork MejorarWebHookConfiguración de sincronización -// @description:es GreaysFork Ingrese rápidamente información de sincronización de scripts,Y agregue códigos de idioma para varios países en lotes,En lugar de hacer clic en los cuadros de selección uno por uno e ir a la URL correspondiente。 -// @name:fi GreaysFork ParantaaWebHookSynkronointiasetukset -// @description:fi GreaysFork Syötä nopeasti komentosarjan synkronointitiedot,Ja lisää useiden maiden kielikoodeja erissä,Sen sijaan, että napsautat valintaruutuja yksitellen ja siirryt vastaavaan URL-osoitteeseen。 -// @name:fr GreaysFork AméliorerWebHookParamètres de synchronisation -// @description:fr GreaysFork Saisissez rapidement les informations de synchronisation du script,Et ajoutez des codes de langue pour plusieurs pays par lots,Au lieu de cliquer une à une sur les cases de sélection et d’accéder à l’URL correspondante。 -// @name:he GreaysFork לְהַגבִּירWebHookהגדרות סנכרון -// @description:he GreaysFork הזן במהירות מידע סנכרון סקריפט,והוסף קודי שפה עבור מספר מדינות בקבוצות,במקום ללחוץ על תיבות הבחירה אחת אחת ולעבור לכתובת ה-URL המתאימה。 -// @name:hr GreaysFork PoboljšajWebHookPostavke sinkronizacije -// @description:hr GreaysFork Brzo unesite informacije o sinkronizaciji skripte,I dodajte jezične kodove za više zemalja u serijama,Umjesto klikanja na okvire za odabir jedan po jedan i odlaska na odgovarajući URL。 -// @name:hu GreaysFork NöveljeWebHookSzinkronizálási beállítások -// @description:hu GreaysFork Gyorsan adja meg a szkript szinkronizálási adatait,És adjon hozzá több ország nyelvi kódjait kötegekben,Ahelyett, hogy egyenként kattintana a jelölőnégyzetekre, és a megfelelő URL-re lépne。 -// @name:id GreaysFork MeningkatkanWebHookPengaturan sinkronisasi -// @description:id GreaysFork Masukkan informasi sinkronisasi skrip dengan cepat,Dan tambahkan kode bahasa untuk beberapa negara secara bertahap,Daripada mengklik kotak pilihan satu per satu dan membuka URL yang sesuai。 -// @name:it GreaysFork MigliorareWebHookSincronizza le impostazioni -// @description:it GreaysFork Inserisci rapidamente le informazioni sulla sincronizzazione dello script,E aggiungi codici lingua per più paesi in batch,Invece di fare clic sulle caselle di selezione una per una e accedere all’URL corrispondente。 -// @name:ja GreaysFork 強化するWebHook同期設定 -// @description:ja GreaysFork スクリプト同期情報を素早く入力,複数の国の言語コードをバッチで追加します,選択ボックスを 1 つずつクリックして対応する URL に移動するのではなく、。 -// @name:ka GreaysFork გაძლიერებაWebHookსინქრონიზაციის პარამეტრები -// @description:ka GreaysFork სწრაფად შეიყვანეთ სკრიპტის სინქრონიზაციის ინფორმაცია,და დაამატეთ ენის კოდები მრავალი ქვეყნისთვის ჯგუფურად,იმის ნაცვლად, რომ სათითაოდ დააწკაპუნოთ შერჩევის ველებზე და გადახვიდეთ შესაბამის URL-ზე。 -// @name:ko GreaysFork 향상시키다WebHook동기화 설정 -// @description:ko GreaysFork 스크립트 동기화 정보를 빠르게 입력하세요,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 -// @name:nl GreaysFork UitbreidenWebHookSynchronisatie-instellingen -// @description:nl GreaysFork Voer snel scriptsynchronisatie-informatie in,En voeg taalcodes voor meerdere landen in batches toe,In plaats van één voor één op de selectievakken te klikken en naar de bijbehorende URL te gaan。 -// @name:nb GreaysFork ForbedreWebHookSynkroniseringsinnstillinger -// @description:nb GreaysFork Skriv inn informasjon om skriptsynkronisering raskt,Og legg til språkkoder for flere land i grupper,I stedet for å klikke på valgboksene én etter én og gå til den tilsvarende URL-en。 -// @name:pl GreaysFork ZwiększyćWebHookSynchronizuj ustawienia -// @description:pl GreaysFork Szybko wprowadź informacje dotyczące synchronizacji skryptu,I partiami dodawaj kody języków dla wielu krajów,Zamiast klikać pola wyboru jeden po drugim i przechodzić do odpowiedniego adresu URL。 -// @name:pt-BR GreaysFork MelhorarWebHookSincronizar configurações -// @description:pt-BR GreaysFork Insira rapidamente informações de sincronização de script,E adicione códigos de idioma para vários países em lotes,Em vez de clicar nas caixas de seleção uma por uma e ir para o URL correspondente。 -// @name:ro GreaysFork SporiWebHookSetări de sincronizare -// @description:ro GreaysFork Introduceți rapid informațiile de sincronizare a scriptului,Și adăugați coduri de limbă pentru mai multe țări în loturi,În loc să faceți clic pe casetele de selecție unul câte unul și să mergeți la adresa URL corespunzătoare。 -// @name:ru GreaysFork УсиливатьWebHookСинхронизировать настройки -// @description:ru GreaysFork Быстрый ввод информации о синхронизации скриптов,И добавляйте языковые коды для нескольких стран в пакетном режиме.,Вместо того, чтобы щелкать поля выбора одно за другим и переходить на соответствующий URL-адрес.。 -// @name:sk GreaysFork VylepšiťWebHookNastavenia synchronizácie -// @description:sk GreaysFork Rýchlo zadajte informácie o synchronizácii skriptov,A pridajte kódy jazykov pre viacero krajín v dávkach,Namiesto toho, aby ste jedno po druhom klikali na políčka výberu a prešli na príslušnú adresu URL。 -// @name:sr GreaysFork ЕнханцеWebHookПодешавања синхронизације -// @description:sr GreaysFork Брзо унесите информације о синхронизацији скрипте,И додајте језичке кодове за више земаља у групама,Уместо да кликнете на оквире за избор један по један и идете на одговарајући УРЛ。 -// @name:sv GreaysFork ÖkaWebHookSynkroniseringsinställningar -// @description:sv GreaysFork Ange snabbt skriptsynkroniseringsinformation,Och lägg till språkkoder för flera länder i omgångar,Istället för att klicka på urvalsrutorna en efter en och gå till motsvarande URL。 -// @name:th GreaysFork ยกระดับWebHookการตั้งค่าการซิงค์ -// @description:th GreaysFork ป้อนข้อมูลการซิงโครไนซ์สคริปต์อย่างรวดเร็ว,และเพิ่มรหัสภาษาสำหรับหลายประเทศเป็นชุด,แทนที่จะคลิกกล่องตัวเลือกทีละรายการแล้วไปที่ URL ที่เกี่ยวข้อง。 -// @name:tr GreaysFork GenişletmekWebHookAyarları senkronize et -// @description:tr GreaysFork Komut dosyası senkronizasyon bilgilerini hızlı bir şekilde girin,Birden çok ülke için dil kodlarını toplu olarak ekleyin,Seçim kutularına tek tek tıklayıp karşılık gelen URL’ye gitmek yerine。 -// @name:ug GreaysFork كۈچەيتىڭWebHookماسقەدەملەش -// @description:ug GreaysFork قوليازما ماسقەدەملەش ئۇچۇرىنى تېز كىرگۈزۈڭ,ھەمدە بىر قانچە دۆلەت ئۈچۈن تىل كودىنى قوشۇڭ,تاللاش رامكىسىنى بىر-بىرلەپ چېكىپ ، مۇناسىپ URL غا كىرىڭ。 -// @name:uk GreaysFork ПоліпшенняWebHookНалаштування синхронізації -// @description:uk GreaysFork Швидко введіть інформацію про синхронізацію сценаріїв,І додайте коди мов для кількох країн пакетами,Замість того, щоб клацати поля вибору один за одним і переходити до відповідної URL-адреси。 -// @name:vi GreaysFork Nâng caoWebHookĐồng bộ hóa cài đặt -// @description:vi GreaysFork Nhập nhanh thông tin đồng bộ script,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi tới URL tương ứng。 -// @name:zh-TW GreaysFork 增強WebHook同步設定 -// @description:zh-TW GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -// @name:zh-HK GreaysFork 增強WebHook同步設定 -// @description:zh-HK GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 -// @name:fr-CA GreaysFork AméliorerWebHookParamètres de synchronisation -// @description:fr-CA GreaysFork Saisissez rapidement les informations de synchronisation du script,Et ajoutez des codes de langue pour plusieurs pays par lots,Au lieu de cliquer une à une sur les cases de sélection et d’accéder à l’URL correspondante。 -// @description Quickly input script sync information and batch add language codes for multiple countries without the need to click -// @version 1.1.1.1 -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHN0eWxlPSJmaWxsOiAjRDcyMzIzOyI+PHBhdGggZD0iTTIwMC4zIDI2OS45Yy0xNS43IDYuNi0zMi43IDEwLjEtNTAuMyAxMC4xLTM0LjcgMC02Ny40LTEzLjUtOTEuOS0zOC4xQzMzLjUgMjE3LjQgMjAgMTg0LjcgMjAgMTUwczEzLjUtNjcuNCAzOC4xLTkxLjlDODIuNiAzMy41IDExNS4zIDIwIDE1MCAyMHM2Ny40IDEzLjUgOTEuOSAzOC4xQzI2Ni41IDgyLjYgMjgwIDExNS4zIDI4MCAxNTBjMCAxNy42LTMuNSAzNC42LTEwIDUwLjMgNSA1IDEwIDEwLjEgMTUuMSAxNS4xIDkuNi0xOS44IDE1LTQyIDE1LTY1LjRDMzAwIDY3LjIgMjMyLjggMCAxNTAgMFMwIDY3LjIgMCAxNTBzNjcuMiAxNTAgMTUwIDE1MGMyMy40IDAgNDUuNi01LjQgNjUuNC0xNS01LjEtNS0xMC4xLTEwLjEtMTUuMS0xNS4xeiIvPjxwYXRoIGQ9Ik0yNjcuOCAzMDBjLTkuNi0xLjMtMTYuNS03LTIzLjEtMTMuNy0xNC45LTE1LjMtMzAuMS0zMC4yLTQ1LjItNDUuMy05LjMtOS4zLTEyLTIwLjEtNy41LTMyLjcuMy0uOC4zLTIuMS0uMi0yLjYtMy45LTQuMS03LjktOC0xMi0xMi4xLTYuNCA0LTEzLjEgNi43LTIwLjUgNy42LTE1LjUgMS45LTI5LTIuNC00MC4yLTEzLjItMTIuMy0xMS44LTI0LjItMjQtMzYuMi0zNi4xLTMuNS0zLjUtNC4xLTcuNC0yLjItMTEuMiAxLjktMy43IDUuOS02LjQgOS43LTUuNiAyLjUuNSA1LjEgMiA2LjkgMy44IDcuNCA3LjEgMTQuNSAxNC40IDIxLjggMjEuNi42LjYgMS4zIDEuMiAxLjcgMS42bDEzLjgtMTMuOGMtNi4yLTYuMS0xMi42LTEyLjUtMTguOS0xOC45LTEuOS0xLjktMy44LTMuNy01LjYtNS42LTMuOC00LjItMy43LTkuNy4yLTEzLjYgMy45LTMuOSA5LjUtNC4xIDEzLjYtLjEgNy41IDcuMyAxNC44IDE0LjcgMjIuMSAyMi4xLjguOCAxLjUgMS44IDIuMSAyLjRsMTQuMy0xNC4zYy0yLTEuOC00LjUtNC02LjgtNi4zLTYtNS45LTExLjktMTEuOC0xNy44LTE3LjgtMi43LTIuNy0zLjctNS45LTIuNC05LjYgMS40LTMuOSA0LjItNi4zIDguMy02LjkgMy40LS42IDYgMSA4LjQgMy4zbDE0LjcgMTQuN2M3LjQgNy40IDE0LjkgMTQuNiAyMiAyMi4yIDE0LjcgMTUuNyAxNyAzOS4xIDYuMSA1Ny43LS40LjctLjcgMS40LTEuMyAyLjQgMy45IDMuOSA3LjkgNy44IDExLjkgMTEuNi42LjUgMiAuNiAyLjguMyAxMi41LTQuNCAyMy4zLTEuNyAzMi43IDcuNiAxNS4xIDE1LjEgMzAuMSAzMC4zIDQ1LjMgNDUuMiA2LjcgNi41IDEyLjQgMTMuNCAxMy43IDIzdjUuOGMtLjIuNS0uNCAxLjEtLjUgMS42LTEuOCA5LjUtNi42IDE3LTE1LjUgMjEuMi0zLjMgMS42LTYuOSAyLjMtMTAuNCAzLjUtMS45LjItMy44LjItNS44LjJ6Ii8+PHBhdGggZD0iTTE3MCAyMTkuNmMtMi43LjctNS40IDEuMi04LjIgMS41LTMuMS40LTYuMi42LTkuMi42LTE3LjkgMC0zNC4yLTYuNi00Ny4yLTE5LjItMTAuMi05LjgtMjAuMi0yMC0zMC0yOS44bC02LjYtNi42Yy05LjUtOS41LTExLjctMjIuNy01LjgtMzQuMyA0LjktOS42IDE0LjQtMTYgMjQuNS0xNi42LjUtNi45IDMuNS0xMy42IDguOS0xOC45IDUuMi01LjEgMTEuOC04LjIgMTguNy04LjcuMi0yLjUuNy00LjkgMS42LTcuNCAzLjgtMTAuOCAxMi42LTE4LjEgMjMuOS0yMCAxLjUtLjIgMy4xLS40IDQuNi0uNCA1LjQgMCAxMy40IDEuNiAyMS4xIDkuMiA0LjcgNC43IDkuNiA5LjUgMTQuOCAxNC43IDIuMSAyLjIgNC40IDQuNCA2LjUgNi41IDUuMyA1LjIgMTAuNyAxMC42IDE1LjkgMTYuMiAxMC4yIDEwLjkgMTYuNCAyNC41IDE3LjkgMzkuMy45IDguMi4yIDE2LjQtMS44IDI0LjJoLjFjMTIuOCAwIDI0LjcgNS4xIDM0LjcgMTQuOCAzLjYtMTAuOSA1LjYtMjIuNiA1LjYtMzQuNyAwLTYwLjgtNDkuMi0xMTAtMTEwLTExMFM0MCA4OS4yIDQwIDE1MHM0OS4yIDExMCAxMTAgMTEwYzEyLjEgMCAyMy44LTIgMzQuNy01LjYtOS44LTEwLjEtMTQuOC0yMi4xLTE0LjctMzQuOHoiLz48L3N2Zz4= -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/RedFork.svg -// @author 人民的勤务员 -// @match *://greasyfork.org/* -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @namespace https://github.com/ChinaGodMan/UserScripts -// @modified 2024-9-05 04:29 -// ==/UserScript== -(function () { - 'use strict' - let isCreated1 = null - let isCreated = null - const global = { - syncingfrom: null,//脚本同步地址 - adminUrl: null,//同步地址 - defaultAttribute: null,//默认匹配@name //用于设置时显示用 - inputModal: null,//设置床窗口 - inputModalTextArea: null,//链接 - inputModalScript: null,//输入同步脚本地址框 - inputModalDefault: null, //默认匹配@name的输入框 - attribute_other: null,///本地化附加信息,用于设置时显示. - scriptname: null - } - document.head.appendChild(document.createElement('style')).textContent = ` - #main-header ~ .width-constraint > .text-content:only-child > ul li { - font-size: 0.88rem; - } - /* Basic Styling for Buttons */ -.Sync-Modal button { - font-family: 'Arial', sans-serif; - font-size: 10pt; - color: #FFFFFF; - background-color: #007BFF; - border: none; - border-radius: 5px; - padding: 8px 16px; - cursor: pointer; - transition: background-color 0.3s ease; - text-align: center; - outline: none; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); - } - /* Hover effect */ - .Sync-Modal button:hover { - background-color: #0056b3; - } - /* Active (pressed) effect */ - .Sync-Modal button:active { - background-color: #004494; - } - /* Focus effect for accessibility */ - .Sync-Modal button:focus { - box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5); - } - .Sync-Modal textarea { - border: 0; - padding: 0; - font-family: inherit; - font-weight: 900; - color: #a83710; - font-size: inherit; - appearance: none; - border: none; - outline: none; - resize: none; - } - .Sync-Modal input { - border: 0; - padding: 0; - font-family: inherit; - font-weight: 900; - color: #80ecd3; - font-size: inherit; - appearance: none; - border: none; - outline: none; - resize: none; - } -.custom-label { - font-weight: bold; - color: #bfe6a0; -} - ` - function creatSetModal() { - if (isCreated) return - } - document.body.insertAdjacentHTML('beforeend', ` -
    - - - -
    -`) - global.inputModal = document.getElementById('inputWindow') - global.inputModalScript = document.getElementById('SyncScriptForm') - global.inputModalDefault = document.getElementById('inputdefaultAttribute') - global.inputModalTextArea = document.getElementById('urlTextArea') - const openModalButton = document.getElementById('openSyncButton') - const closeModalButton = document.getElementById('closeSyncButton') - const submitModalButton = document.getElementById('submitModalButton') - const openSyncOnadminPage = document.getElementById('openSyncOnadminPage') - openModalButton.addEventListener('click', addAdminButtons) - closeModalButton.addEventListener('click', () => global.inputModal.style.display = 'none') - submitModalButton.addEventListener('click', handleSubmit) - function handleSubmit() { - syncUpdate(SyncScriptForm.value, global.inputModalDefault.value, global.adminUrl) - } - openSyncOnadminPage.addEventListener('click', () => { - openSuperAdmin(window.location.href.replace(/\/[^\/]*$/, ''), "", false) - }) - //取消鲨臂按钮 - addNavLink("Set sync", '#', false, false, "ScriptSyncLink") - var customClassName = 'ScriptSyncLink' - var link = document.querySelector(`.${customClassName} > a`) - if (link) { - link.addEventListener('click', function (event) { - event.preventDefault() - addAdminButtons() - }) - } - if (window.location.pathname.includes("/admin")) { - // openSyncOnadminPage.style.display = "block" - const targetElement = document.querySelector("#script-content > section:nth-child(2) > h3") - const newLink = document.createElement('a') - newLink.href = '#' - newLink.textContent = 'Set sync' - newLink.addEventListener('click', function (event) { - event.preventDefault() - openSuperAdmin(window.location.href.replace(/\/[^\/]*$/, ''), "", false) - }) - targetElement.insertAdjacentElement('afterend', newLink) - } - async function syncUpdate(scriptSyncIdentifier, additionalInfoSyncIdentifier, postUrl) { - const urls = global.inputModalTextArea.value.trim().split('\n') - const translateTable = [ - { "code": "aa", "value": "1" }, - { "code": "ab", "value": "2" }, - { "code": "ae", "value": "3" }, - { "code": "af", "value": "4" }, - { "code": "ak", "value": "5" }, - { "code": "am", "value": "6" }, - { "code": "as", "value": "8" }, - { "code": "ast", "value": "9" }, - { "code": "av", "value": "10" }, - { "code": "ay", "value": "11" }, - { "code": "az", "value": "12" }, - { "code": "ba", "value": "13" }, - { "code": "be", "value": "14" }, - { "code": "bh", "value": "16" }, - { "code": "bi", "value": "17" }, - { "code": "bm", "value": "18" }, - { "code": "bn", "value": "19" }, - { "code": "bo", "value": "20" }, - { "code": "br", "value": "21" }, - { "code": "bs", "value": "22" }, - { "code": "ca", "value": "23" }, - { "code": "ce", "value": "24" }, - { "code": "ceb", "value": "25" }, - { "code": "ch", "value": "26" }, - { "code": "chr", "value": "27" }, - { "code": "co", "value": "28" }, - { "code": "cr", "value": "29" }, - { "code": "cs", "value": "30" }, - { "code": "cu", "value": "31" }, - { "code": "cv", "value": "32" }, - { "code": "cy", "value": "33" }, - { "code": "da", "value": "34" }, - { "code": "de", "value": "35" }, - { "code": "dv", "value": "36" }, - { "code": "dz", "value": "37" }, - { "code": "ee", "value": "38" }, - { "code": "el", "value": "39" }, - { "code": "en", "value": "40" }, - { "code": "eo", "value": "41" }, - { "code": "es", "value": "42" }, - { "code": "et", "value": "43" }, - { "code": "eu", "value": "44" }, - { "code": "fa", "value": "45" }, - { "code": "ff", "value": "46" }, - { "code": "fi", "value": "47" }, - { "code": "fil", "value": "48" }, - { "code": "fj", "value": "49" }, - { "code": "fo", "value": "50" }, - { "code": "fr", "value": "51" }, - { "code": "fy", "value": "52" }, - { "code": "ga", "value": "53" }, - { "code": "gd", "value": "54" }, - { "code": "gl", "value": "55" }, - { "code": "gn", "value": "56" }, - { "code": "gsw-berne", "value": "57" }, - { "code": "gu", "value": "58" }, - { "code": "gv", "value": "59" }, - { "code": "ha", "value": "60" }, - { "code": "he", "value": "61" }, - { "code": "hi", "value": "62" }, - { "code": "hmn", "value": "63" }, - { "code": "ho", "value": "64" }, - { "code": "hr", "value": "65" }, - { "code": "ht", "value": "66" }, - { "code": "hu", "value": "67" }, - { "code": "hy", "value": "68" }, - { "code": "hz", "value": "69" }, - { "code": "ia", "value": "70" }, - { "code": "id", "value": "71" }, - { "code": "ie", "value": "72" }, - { "code": "ig", "value": "73" }, - { "code": "ik", "value": "74" }, - { "code": "is", "value": "75" }, - { "code": "it", "value": "76" }, - { "code": "iu", "value": "77" }, - { "code": "ja", "value": "78" }, - { "code": "jv", "value": "79" }, - { "code": "ka", "value": "80" }, - { "code": "kg", "value": "81" }, - { "code": "ki", "value": "82" }, - { "code": "kj", "value": "83" }, - { "code": "kk", "value": "84" }, - { "code": "kl", "value": "85" }, - { "code": "km", "value": "86" }, - { "code": "kn", "value": "87" }, - { "code": "ko", "value": "88" }, - { "code": "kr", "value": "89" }, - { "code": "ks", "value": "90" }, - { "code": "ku", "value": "91" }, - { "code": "kv", "value": "92" }, - { "code": "kw", "value": "93" }, - { "code": "ky", "value": "94" }, - { "code": "la", "value": "95" }, - { "code": "lb", "value": "96" }, - { "code": "lg", "value": "97" }, - { "code": "lif", "value": "98" }, - { "code": "ln", "value": "99" }, - { "code": "lo", "value": "100" }, - { "code": "lt", "value": "101" }, - { "code": "lu", "value": "102" }, - { "code": "lv", "value": "103" }, - { "code": "mg", "value": "104" }, - { "code": "mh", "value": "105" }, - { "code": "mi", "value": "106" }, - { "code": "mk", "value": "107" }, - { "code": "ml", "value": "108" }, - { "code": "mn", "value": "109" }, - { "code": "mo", "value": "110" }, - { "code": "mr", "value": "111" }, - { "code": "ms", "value": "112" }, - { "code": "mt", "value": "113" }, - { "code": "my", "value": "114" }, - { "code": "na", "value": "115" }, - { "code": "nb", "value": "119" }, - { "code": "nd", "value": "120" }, - { "code": "ne", "value": "121" }, - { "code": "ng", "value": "122" }, - { "code": "nl", "value": "118" }, - { "code": "nn", "value": "124" }, - { "code": "no", "value": "125" }, - { "code": "nr", "value": "126" }, - { "code": "nv", "value": "127" }, - { "code": "ny", "value": "128" }, - { "code": "oc", "value": "129" }, - { "code": "pa", "value": "131" }, - { "code": "pi", "value": "132" }, - { "code": "ps", "value": "133" }, - { "code": "pt", "value": "134" }, - { "code": "qu", "value": "135" }, - { "code": "rm", "value": "136" }, - { "code": "rn", "value": "137" }, - { "code": "ro", "value": "138" }, - { "code": "ru", "value": "139" }, - { "code": "rw", "value": "140" }, - { "code": "sa", "value": "141" }, - { "code": "sc", "value": "142" }, - { "code": "sd", "value": "143" }, - { "code": "sg", "value": "144" }, - { "code": "sh", "value": "145" }, - { "code": "si", "value": "146" }, - { "code": "sk", "value": "149" }, - { "code": "sl", "value": "150" }, - { "code": "sm", "value": "151" }, - { "code": "sn", "value": "152" }, - { "code": "so", "value": "153" }, - { "code": "sq", "value": "154" }, - { "code": "sr", "value": "155" }, - { "code": "ss", "value": "156" }, - { "code": "st", "value": "157" }, - { "code": "su", "value": "158" }, - { "code": "sv", "value": "159" }, - { "code": "sw", "value": "160" }, - { "code": "ta", "value": "161" }, - { "code": "te", "value": "162" }, - { "code": "tg", "value": "163" }, - { "code": "th", "value": "165" }, - { "code": "ti", "value": "166" }, - { "code": "tk", "value": "167" }, - { "code": "tl", "value": "168" }, - { "code": "tn", "value": "169" }, - { "code": "to", "value": "170" }, - { "code": "tr", "value": "171" }, - { "code": "ts", "value": "172" }, - { "code": "tt", "value": "173" }, - { "code": "tw", "value": "174" }, - { "code": "ty", "value": "175" }, - { "code": "ug", "value": "176" }, - { "code": "uk", "value": "177" }, - { "code": "ur", "value": "178" }, - { "code": "uz", "value": "179" }, - { "code": "ve", "value": "180" }, - { "code": "vi", "value": "181" }, - { "code": "vo", "value": "182" }, - { "code": "wa", "value": "183" }, - { "code": "wo", "value": "184" }, - { "code": "xh", "value": "185" }, - { "code": "yi", "value": "186" }, - { "code": "zh-CN", "value": "187" }, - { "code": "zh-TW", "value": "188" }, - { "code": "zu", "value": "189" } - ] - const csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content") - const formDataObj = { - _method: 'patch', - authenticity_token: csrfToken, - 'script[sync_identifier]': scriptSyncIdentifier, - 'script[sync_type]': 'webhook', - } - if (additionalInfoSyncIdentifier) { - formDataObj['additional_info_sync[0][attribute_default]'] = 'true' - formDataObj['additional_info_sync[0][sync_identifier]'] = additionalInfoSyncIdentifier - formDataObj['additional_info_sync[0][value_markup]'] = 'markdown' - } - urls.forEach((url, index) => { - const localeKey = extractLocaleKey(url) - const locale = translateTable.find(entry => entry.code === localeKey) - const cleanUrl = url.replace(/##.*/, '') - formDataObj[`additional_info_sync[${index + 1}][attribute_default]`] = 'false' - formDataObj[`additional_info_sync[${index + 1}][locale]`] = locale ? locale.value : '' - formDataObj[`additional_info_sync[${index + 1}][sync_identifier]`] = cleanUrl - formDataObj[`additional_info_sync[${index + 1}][value_markup]`] = 'markdown' - }) - formDataObj['update-and-sync'] = '更新设置并立即同步' - const formData = new URLSearchParams(formDataObj) - console.log(formData.toString()) - const postResp = await fetch(postUrl + '/sync_update', { - method: 'POST', - headers: { "Content-Type": "application/x-www-form-urlencoded" }, - body: formData - }) - const responseText = await postResp.text() - const parser = new DOMParser() - const doc = parser.parseFromString(responseText, 'text/html') - const specificElement = doc.querySelector("body > div.width-constraint > p") - // 创建并插入弹出框的 HTML - document.body.insertAdjacentHTML('beforeend', ` -
    - ${specificElement ? specificElement.innerHTML : 'Element not found'} - -
    -`) - document.getElementById('close-popup').onclick = function () { - document.getElementById('custom-popup').remove() - } - setTimeout(function () { - const popup = document.getElementById('custom-popup') - if (popup) { - popup.remove() - } - }, 5000) - // global.inputModal.style.display = 'none' - //alert((postResp.ok || postResp.status === 302) ? global.scriptname + ' Sync Successful!' : 'Synchronization failed, please check the input.') - } - function extractLocaleKey(url) { - let localeKey = url.includes('##') ? url.match(/##.*\((.*?)\)$/) || url.match(/##(.*?)$/) : url.match(/README_(.*?)\.md/) - return localeKey ? localeKey[1] : null - } - //----设置主窗口 - function addAdminButtons() { - fetch('https://greasyfork.org/zh-CN/users/webhook-info') - .then(response => response.ok ? response.text() : Promise.reject('Network response was not ok')) - .then(data => createModalWindow(parseLinks(data))) - .catch(error => console.error('Fetch operation failed:', error)) - } - function parseLinks(data) { - const parser = new DOMParser() - const doc = parser.parseFromString(data, 'text/html') - const firstUl = doc.querySelector('ul') - if (!firstUl) return [] - return Array.from(firstUl.querySelectorAll('li')).map(li => { - const links = li.querySelectorAll('a') - return { - firstHref: links[0]?.href || '', - firstTitle: links[0]?.textContent || '', - secondHref: links[1]?.href || '', - secondTitle: links[1]?.textContent || '' - } - }) - } - function openSuperAdmin(url, syncjs, isFetch = false) { - global.adminUrl = url - if (isFetch) { - updateWebHookInfo(url + "/admin") - } else { - updateWebHookInfo() - } - global.inputModalScript.value = global.syncingfrom - global.inputModalDefault.value = global.defaultAttribute - global.inputModalTextArea.value = global.attribute_other - global.inputModal.style.display = 'flex' - document.querySelector("h2 label[for='SyncScript']").textContent = global.scriptname + "←Source Syncing" - document.getElementById("ScriptName").textContent = global.scriptname - } - function createModalWindow(linksData) { - const modalHtml = ` -
    -
    - -
    -
    -` - document.body.insertAdjacentHTML('beforeend', modalHtml) - const modal = document.getElementById('adminModal') - const closeModal = document.getElementById('closeLinkModal') - const linksList = document.getElementById('linksList') - // - linksData.forEach(link => { - const listItem = document.createElement('li') - listItem.style.marginBottom = '10px' - listItem.innerHTML = ` -
    - ${link.firstTitle} -
    - Source Syncing - - -
    -
    - ` - linksList.appendChild(listItem) - listItem.querySelector('.super-admin-btn').addEventListener('click', () => { - openSuperAdmin(link.firstHref, link.secondHref, true) - }) - }) - modal.style.display = 'block' - closeModal.addEventListener('click', () => { - modal.style.display = 'none' - modal.remove() - }) - window.addEventListener('click', (event) => { - return//不关闭 - if (event.target === modal) { - modal.style.display = 'none' - modal.remove() - } - }) - } - function updateStateFromDOM(dom) { - const syncInputElement = dom.getElementById('script_sync_identifier') - if (syncInputElement) { - global.syncingfrom = syncInputElement.value - } else { - console.warn("Input element with id 'script_sync_identifier' not found") - } - const defaultInputElement = dom.querySelector('input#script-version-additional-info-0.previewable') - if (defaultInputElement) { - global.defaultAttribute = defaultInputElement.value - } else { - console.warn("Default input element not found") - } - const inputElements = dom.querySelectorAll('input[id^="script-version-additional-info-"].previewable') - global.scriptname = dom.querySelector("#script-info > header > h2").textContent - global.attribute_other = '' - inputElements.forEach((inputElement, index) => { - if (inputElement.id !== "script-version-additional-info-0") { - if (global.attribute_other) { - global.attribute_other += '\n' - } - const previousSibling = inputElement.previousElementSibling - const selectElement = previousSibling?.previousElementSibling - const selectedText = selectElement?.options[selectElement.selectedIndex]?.text - global.attribute_other += `${inputElement.value}##${selectedText}` - } - }) - } - function updateWebHookInfo(url = null) { - if (url) { - try { - const xhr = new XMLHttpRequest() - xhr.open("GET", url, false) // `false` 使请求同步 - xhr.send(null) - if (xhr.status >= 200 && xhr.status < 300) { - const htmlText = xhr.responseText - const parser = new DOMParser() - const doc = parser.parseFromString(htmlText, 'text/html') - updateStateFromDOM(doc) - console.log("Data fetched from URL and parsed:", global) - } else { - throw new Error(`Network response was not ok: ${xhr.statusText}`) - } - } catch (error) { - console.error("Error fetching data from URL:", error) - } - } else { - updateStateFromDOM(document) - console.log("Data fetched from current page:", global) - } - } - function addNavLink(link_text, linkurl, newtab, lastone, lclassname) { - var li = document.createElement('li') - if (lclassname) { - li.className = lclassname - } else { - li.className = 'scripts-index-link' - } - var a = document.createElement('a') - a.href = linkurl - a.innerText = link_text - li.appendChild(a) - var nav = document.querySelector('div#site-nav > nav') - if (nav) { - if (lastone) { - nav.append(li) - } else { - nav.prepend(li) - } - } - } -})() diff --git a/Script details/highlight-keywords-mini/README.md b/Script details/highlight-keywords-mini/README.md deleted file mode 100644 index d58e2a7e5..000000000 --- a/Script details/highlight-keywords-mini/README.md +++ /dev/null @@ -1,172 +0,0 @@ - -
    - - - - - -
    -

    高亮网页文本_迷你版

    -

    「 在网页上自定义关键词突出显示包括滚动时动态加载的内容 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -## 原作者(leconte112)[Spoiler Protection for tampermonkey](https://greasyfork.org/zh-CN/scripts/475806-spoiler-protection-for-tampermonkey) -感谢**leconte112**的勤劳与智慧 - - - -### 功能描述 - -高亮包含关键词的元素。 - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - -### 优化说明 - -优化了网页文字过多导致浏览器卡死的问题。 - -![Snipaste_2024-08-01_09-37-45.png](https://img.xwyue.com/i/2024/08/01/66aae80f5a5c2.png) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/highlight-keywords-mini/highlight-keywords-mini.user.js b/Script details/highlight-keywords-mini/highlight-keywords-mini.user.js deleted file mode 100644 index 4e4b7965c..000000000 --- a/Script details/highlight-keywords-mini/highlight-keywords-mini.user.js +++ /dev/null @@ -1,153 +0,0 @@ -// ==UserScript== -// @name 网页关键词高亮显示 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.0.5.26 -// @description 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -// @description:zh-CN 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -// @author 人民的勤务员 & leconte112 -// @match *://*/* -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_registerMenuCommand -// @grant GM_addStyle -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-mark-96.png -// ==/UserScript== - -(function () { - 'use strict' - - let keywordsToMatch = GM_getValue('keywordsToMatch', []) - let backgroundColor = GM_getValue('backgroundColor', '#FF0000') - let textColor = GM_getValue('textColor', '#FFFF00') - let blackBoxStyle = `background-color: ${backgroundColor} !important; color: ${textColor} !important;` - - function applyBlackBoxToElements() { - const allTextNodes = [] - const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false) - - let node - while ((node = walker.nextNode())) { - allTextNodes.push(node) - } - - function processBatch(batch) { - for (let textNode of batch) { - const text = textNode.textContent.toLowerCase() - for (const keyword of keywordsToMatch) { - if (text.includes(keyword.toLowerCase())) { - const parentElement = textNode.parentElement - if (parentElement) { - parentElement.style.cssText += blackBoxStyle - } - break - } - } - } - } - - const batchSize = 100 // 每次处理100个节点 - for (let i = 0; i < allTextNodes.length; i += batchSize) { - processBatch(allTextNodes.slice(i, i + batchSize)) - } - } - - function observeAndApplyBlackBox() { - const observer = new MutationObserver(function (mutations) { - const addedNodes = [] - for (const mutation of mutations) { - if (mutation.addedNodes.length > 0) { - addedNodes.push(...mutation.addedNodes) - } - } - if (addedNodes.length > 0) { - setTimeout(applyBlackBoxToElements, 500) // 延迟处理 - } - }) - - const config = { childList: true, subtree: true } - observer.observe(document.body, config) - } - - function handleScroll() { - let timeout - window.addEventListener('scroll', function () { - clearTimeout(timeout) - timeout = setTimeout(applyBlackBoxToElements, 200) // 延迟处理 - }) - } - - function processPage() { - applyBlackBoxToElements() - observeAndApplyBlackBox() - handleScroll() - } - - function openEditDialog() { - const dialogHTML = ` -
    -

    编辑高亮关键词和颜色

    -

    请输入用"#"号分隔的关键词:

    - -

    请选择背景色:

    - -

    请选择字体颜色:

    - -
    - - -
    -
    -
    -` - document.body.insertAdjacentHTML('beforeend', dialogHTML) - - const keywordsInput = document.getElementById('keywordsInput') - const bgColorPicker = document.getElementById('bgColorPicker') - const textColorPicker = document.getElementById('textColorPicker') - - bgColorPicker.addEventListener('input', function () { - keywordsInput.style.backgroundColor = bgColorPicker.value - }) - - textColorPicker.addEventListener('input', function () { - keywordsInput.style.color = textColorPicker.value - }) - document.getElementById('saveBtn').addEventListener('click', function () { - const newKeywords = document.getElementById('keywordsInput').value.split('#').map(keyword => keyword.trim()) - keywordsToMatch = newKeywords - GM_setValue('keywordsToMatch', keywordsToMatch) - - backgroundColor = document.getElementById('bgColorPicker').value - textColor = document.getElementById('textColorPicker').value - GM_setValue('backgroundColor', backgroundColor) - GM_setValue('textColor', textColor) - - blackBoxStyle = `background-color: ${backgroundColor} !important; color: ${textColor} !important;` - - closeEditDialog() - processPage() - }) - - document.getElementById('cancelBtn').addEventListener('click', function () { - closeEditDialog() - }) - } - - function closeEditDialog() { - const dialog = document.getElementById('editDialog') - const overlay = document.getElementById('overlay') - if (dialog) { - dialog.remove() - } - if (overlay) { - overlay.remove() - } - } - - GM_registerMenuCommand('编辑高亮关键词和颜色', openEditDialog) - processPage() -})() diff --git a/Script details/highlight-keywords/README.md b/Script details/highlight-keywords/README.md deleted file mode 100644 index 326c51f65..000000000 --- a/Script details/highlight-keywords/README.md +++ /dev/null @@ -1,194 +0,0 @@ - -
    - - - - - -
    -

    网页高亮关键字+(推荐)

    -

    「 对网页上的文字进行高亮显示 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# 原作者发布页[ mabangde](https://greasyfork.org/zh-CN/scripts/465200) - - -## 脚本功能 -对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用。 - - -## UI 说明 -1. **第一栏:网页限制** - - 可以指定在哪些网页上起作用,比如 `bilibili`, `baidu`, `bilibili.com` - - 输入网址的一部分或者全部。每一个网址用空格隔开 - - 如果什么都不输入,那么就会作用到所有网站上 -2. **第二栏:分类信息** - - 鼠标移动到对应的关键字上会显示你输入的内容 -3. **第三栏:关键字栏** - - 输入你想要高亮的词,空格隔开 - - -## 图片 -![hl.png](https://s2.loli.net/2024/08/05/oBWsunTIhLKkcrM.png) - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - -## 初次安装 - -第一次安装会默认添加一些规则测试,可以删除。 - - - -## 更新日志 - - - -### 2024 年 6 月 26 日 - -- 保证在移动设备上能够适应屏幕 -- 增加了对设置文字颜色的支持(第二个颜色选择器) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/highlight-keywords/highlight-keywords.user.js b/Script details/highlight-keywords/highlight-keywords.user.js deleted file mode 100644 index 1f8c8e982..000000000 --- a/Script details/highlight-keywords/highlight-keywords.user.js +++ /dev/null @@ -1,922 +0,0 @@ -// ==UserScript== -// @name 网页高亮关键字 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.1.2.72 -// @description 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 -// @author You -// @include * -// @grant GM_addStyle -// @grant GM_registerMenuCommand -// @grant GM_setValue -// @grant GM_getValue -// @require https://cdn.jsdelivr.net/npm/vue@2.6.1/dist/vue.min.js -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-mark-96.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT - -// ==/UserScript== -(function () { - - - // 初始化 - function initialize() { - let defaultWords = { - "key_123": { - limit: ["baidu"], - "info": "汉字测试", - "words": ["抖音", "快手", "网页", "平台", "的", "最", "一", "个", "多", "服务", "大"], - "color": "#85d228", - "textcolor": "#3467eb" - - - }, - "key_124": { - limit: [], - "info": "数字测试", - "words": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], - "color": "#48c790", - "textcolor": "#3467eb" - - }, - "key_3379656389": { - limit: [], - "info": "字母测试", - "words": ["a", "b", "c", "d", "e", "f", "t", "y", "u", "i", "o", "k", "j", "h", "g", "s", "z", "x", "v", "n", "m"], - "color": "#e33544", - "textcolor": "#3467eb" - }, - "key_4947181948": { - limit: [], - "info": "相同的字可以显示各个分组的标题", - "words": ["的", "最", "一", "个", "多", "服务", "大"], - "color": "#6e7bdd", - "textcolor": "#e33544" - } - } - // 设置关键字默认值 - if (!GM_getValue("key")) { GM_setValue("key", defaultWords) } - if (Object.keys(GM_getValue("key")).length == 0) { GM_setValue("key", defaultWords) } - // GM_setValue("key",this.defaultWords); - - let cache = GM_getValue("key") - Object.keys(cache).forEach(key => { - let defult = { - limit: [], - info: "", - words: [], - color: "#85d228" - } - Object.keys(defult).forEach((key2) => { - if (!cache[key][key2]) { - console.log(defult[key2]) - cache[key][key2] = defult[key2] - } - }) - }) - - GM_setValue("key", cache) - } - /** - * @description: 遍历找出所有文本节点 - * @param {*} node - * @return {*} 节点map - */ - function textMap(node) { - // 存储文本节点 - let nodeMap = new Map() - - const walker = document.createTreeWalker(node, NodeFilter.SHOW_TEXT, (textNode) => { - if (textNode.parentElement.nodeName === "SCRIPT" | - textNode.parentElement.nodeName === "script" | - textNode.parentElement.nodeName === "style" | - textNode.parentElement.nodeName === "STYLE" | - textNode.parentElement.className === "mt_highlight" | - document.querySelector("#mt_seting_box").contains(textNode) - ) { - return NodeFilter.FILTER_SKIP - } - - if (textNode.data.length < 20) { - return textNode.data.replace(/[\n \t]/g, "").length ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP - } - - return NodeFilter.FILTER_ACCEPT - }) - - while ((textNode = walker.nextNode())) { - nodeMap.set(textNode, textNode.data) - } - - return nodeMap - } - - // 高亮 - class HIGHTLIGHT { - - // 需要高亮的关键字 - /**通过规则新建关键字列表,解决一个关键字会存在多个分类中 - * 将{ - * key1{ - * words:[word1,word2] - * }, - * key2{ - * words:[word3,word4] - * } - * } - * 转换为map{ - * word1:key1 - * word2:key1 - * word4:key2 - * word3:key2 - * } - * @description: - * @return {map}map{ - * - * classesKey=>分类标签,类型string - * - * infoList=>提示词,数组["汉字","字符"] - * - * } - */ - static words() { - - // 转换 - let newWords = new Map - Object.keys(GM_getValue("key")).forEach(classesKey => { - - let info = GM_getValue("key")[classesKey].info - let words = GM_getValue("key")[classesKey].words - let color = GM_getValue("key")[classesKey].color - let limit = GM_getValue("key")[classesKey].limit - let textcolor = GM_getValue("key")[classesKey].textcolor - - - words.forEach(word => { - let infoList = [] - - // 检测是否被多个类目包含,被多个类目包含的关键字会有对应类目的信息 - if (newWords.get(word + "")) { - infoList = newWords.get(word + "").infoList - infoList.push(info) - } else { - infoList = [info] - } - - newWords.set(word + "", { - classesKey, - infoList: infoList, - textcolor, - color, - limit - }) - }) - }) - return newWords - } - - // 检测正则 - static reg() { - let url = window.location.href - let doIt = false - let wordsList = [] - let words = this.words() - words.forEach((value, word) => { - // console.log(value.limit); - // 过滤不匹配的 - if (value.limit.length == 0 || url.match(new RegExp(`${value.limit.join("|")}`, "g"))) { - // 添加要筛选的关键字 - wordsList.push(word) - } - }) - // 过滤后还需不需要检测 - wordsList.length ? doIt = true : doIt = false - // console.log(doIt,wordsList); - return { - rule: new RegExp(`(${wordsList.join("|")})`, "g"), - doIt - } - } - - - // 高亮css - static highlightStyle = ` - .mt_highlight{ - background-color: rgb(255, 21, 21); - border-radius: 2px; - box-shadow: 0px 0px 1px 1px rgba(0, 0, 0,0.1); - cursor: pointer; - color: white; - - padding: 1px 1px; - } - ` - - /** - * @description: 返回需要被高亮的节点map{textNode,未来会被修改成目标的值} - * @param {map} nodeMap - * @return {void} - */ - static highlight(nodeMap) { - let words = this.words() - let reg = this.reg() - // 没有要高亮的关键字时不执行 - - if (words.size && reg.doIt) { - nodeMap.forEach((value, node) => { - // 正则检测是否符合规则 - let newInnerHTML = value.replace(reg.rule, (word) => { - let classesKey = words.get(word).classesKey - let infoList = words.get(word).infoList - let color = words.get(word).color - let textcolor = words.get(word).textcolor - - // 返回新节点模板 - // return `${word}` - - return `${word}` - }) - // 是否检测出了 - if (value != newInnerHTML) { - // 节点替换 - let newNode = document.createElement("span") - newNode.innerHTML = newInnerHTML - node.parentElement.replaceChild(newNode, node) - // 点击复制 - newNode.addEventListener("click", (e) => { - navigator.clipboard.writeText(e.target.innerText) - }) - } - }) - } - - } - - } - - /** - * @description: 动态检测新节点,并执行高亮 - * @return {*} - */ - function watch() { - // 选择需要观察变动的节点 - const targetNode = document.body - - // 观察器的配置(需要观察什么变动) - const config = { attributes: false, childList: true, subtree: true, characterData: true } - - // 当观察到变动时执行的回调函数 - const callback = function (mutationsList, observer) { - let nodeMap = new Map - setTimeout(() => { - mutationsList.forEach(node => { nodeMap.set(node.target) }) - nodeMap.forEach((value, node) => { - doOnce(node) - }) - }, 1) - } - - // 创建一个观察器实例并传入回调函数 - const observer = new MutationObserver(callback) - - // 以上述配置开始观察目标节点 - observer.observe(targetNode, config) - } - - - // gui - class GUI { - // 模板 - static setingTemplate = String.raw` -
    - -
    -
    导入添加
    -
    导入覆盖
    - - - -
    导出配置文件
    -
    刷新
    -
    关闭
    -
    - - -
    - - -
    - - -
    - - -
    - - {{word}} - - - - 不限制 - -
    - - -
    - {{value.info}} -
    - -
    - - {{word}} - -
    -
    - - -
    - - -
    -
    - -
    - -
    - -
    -
    删除
    -
    -
    - - -
    -
    - - - - - - -
    - - -
    - - -
    -
    取消
    -
    确定
    -
    - -
    - -
    - - -
    +
    - -
    - ` - // 模板css - static setingStyle = ` - body { - --mian_width: 480px; - --mian_color: #189fd8; - --radius: 5px; - --info_color: #eaeaea; - --font_color: #676767; - } - .seting_box { - width: 500px; - max-height: 800px; - overflow: auto; - background: white; - border-radius: 5px; - position: fixed; - transform: translate(-50%, 0); - top: 50px; - left: 50%; - border: 1px solid rgba(0, 0, 0, 0.1); - padding: 15px 5px; - flex-direction: column; - align-items: center; - z-index: 10000; - display: flex; - box-shadow: 0 1px 5px 5px rgba(0, 0, 0, 0.1); - } - .option_box { - width: var(--mian_width); - display: flex; - justify-content: space-between; - } - .option_box div { - display: flex; - height: 20px; - align-items: center; - padding: 5px 10px; - background: var(--mian_color); - color: white; - border-radius: var(--radius); - cursor: pointer; - } - .rule_list_box { - width: var(--mian_width); - border-radius: var(--radius); - margin-top: 10px; - padding: 5px 0px; - box-shadow: 0 0 5px 0px #e2e2e2; - cursor: pointer; - } - .rule_list_box .show_box { - display: flex; - justify-content: space-between; - } - .rule_list_box .show_box .show_left { - width: 410px; - } - .rule_list_box .show_box .show_left > div { - margin-top: 5px; - } - .rule_list_box .show_box .show_left > div:nth-child(1) { - margin-top: 0px; - } - .rule_list_box .show_box .show_left .info_box { - margin-left: 5px; - margin-right: 5px; - padding: 2px 5px; - min-height: 22px; - color: white; - border-radius: var(--radius); - background-color: var(--mian_color); - display: flex; - align-items: center; - } - .rule_list_box .show_box .show_left .words_box { - margin-top: 0px; - /* border: 1px solid black; */ - min-height: 20px; - display: flex; - flex-wrap: wrap; - } - .rule_list_box .show_box .show_left .words_box span { - background-color: var(--info_color); - color: white; - padding: 2px 5px; - border-radius: var(--radius); - margin-left: 5px; - margin-top: 5px; - display: flex; - align-items: center; - height: 20px; - } - .rule_list_box .show_box .rule_set_box { - display: flex; - flex-direction: column; - justify-content: space-around; - padding: 0px 5px; - } - .rule_list_box .show_box .rule_set_box .color_box .textcolor_box { - overflow: hidden; - display: flex; - justify-content: center; - align-items: center; - } - .rule_list_box .show_box .rule_set_box .color_box .textcolor_box input { - width: 50px; - height: 25px; - border-radius: var(--radius) !important; - padding: 0px; - } - .rule_list_box .eidt_box { - padding: 0px 5px; - display: flex; - flex-direction: row; - justify-content: space-between; - } - .rule_list_box .eidt_box .eidt_left { - width: 400px; - } - .rule_list_box .eidt_box .eidt_left textarea { - width: 100% !important; - min-height: 30px !important; - border: none; - outline: none; - color: var(--font_color); - background-color: var(--info_color); - border-radius: var(--radius); - margin-top: 5px; - padding: 5px; - } - .rule_list_box .eidt_box .eidt_left textarea:nth-child(1) { - margin-top: 0px; - } - .rule_list_box .eidt_box .eidt_right { - display: flex; - flex-direction: column; - justify-content: space-around; - } - .rule_list_box .line { - width: 1px; - background-color: rgba(0, 0, 0, 0.1); - } - .rule_list_box .del { - background-color: var(--mian_color); - color: white; - border-radius: var(--radius); - padding: 0px 10px; - font-size: 15px; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - } - .add { - width: var(--mian_width); - height: 30px; - background: #189fd8; - color: white; - display: flex; - justify-content: center; - border-radius: 5px; - padding: 5px 0px; - margin-top: 10px; - align-items: center; - font-size: 35px; - font-weight: 100; - cursor: pointer; - } - .bt { - display: flex; - align-items: center; - justify-content: space-around; - } - input { - border: none; - padding: 0px; - border-radius: 5px; - box-shadow: none; - } - .config_file { - display: none; - } -@media (max-width: 768px) { - - .option_box { - width: 95%; - - } - .option_box div { - padding: 5px; - font-size: 14px; /* 修改按钮字体大小 */ - } - - .rule_list_box { - width: 95%; - } - .rule_list_box .show_box .show_left { - width: 70%; - } - .rule_list_box .eidt_box .eidt_left { - width: 70%; - } - .rule_list_box .option_box div { - padding: 3px; /* 修改按钮内边距 */ - font-size: 12px; /* 修改按钮字体大小 */ - - } - .seting_box { - width: 90%; /* 容器宽度为视口宽度的90% */ - max-height: 80vh; /* 最大高度为视口高度的80% */ - top: 10%; /* 顶部距离为视口高度的10% */ - bottom: 10%; /* 底部距离为视口高度的10% */ - transform: translate(-50%, 0); /* 居中显示 */ - left: 50%; /* 水平居中 */ - z-index: 10000; /* 设置一个较高的层叠顺序 */ - } - -} - - - ` - // 开发用 - static devCss() { - GM_xmlhttpRequest({ - method: "get", - url: "http://127.0.0.1:1145", - responseType: "blob", - onload: (res) => { - // console.log(res.responseText); - GM_addStyle(res.responseText) - }, - onerror: (error => { - console.log("该页无法链接") - }) - }) - } - - static create() { - // 获取根节点 - let seting_box = document.querySelector("#mt_seting_box") - seting_box.innerHTML = this.setingTemplate - - - // 创建根节点样式 - GM_addStyle(this.setingStyle) - // this.devCss() - - // 创建响应式ui - const mt_Vue = new Vue({ - el: "#mt_seting_box", - data() { - return { - rule: GM_getValue("key"), - edit: this.addEdit(GM_getValue("key")), - showSeting: false, - config_add: false - } - }, - - watch: { - showSeting(n) { - // console.log(22333); - } - }, - - methods: { - // 关闭设置 - close_seting() { - this.showSeting = false - }, - - // 开启设置 - open_seting() { - this.showSeting = true - console.log(2233) - }, - // 添加属性开关 - addEdit(rules) { - let a = {} - Object.keys(rules).forEach(key => { - a[key] = false - }) - return a - }, - - // 打开编辑 - editOn(key) { - this.edit[key] = true - }, - - // 关闭编辑 - editOff(key) { - this.edit[key] = false - }, - - // 颜色更新 - colorChange(key, color, textcolor) { - document.querySelectorAll(`.mt_highlight[classesKey="${key}"]`).forEach(node => { - node.style.background = color - node.style.color = textcolor - }) - // 保存到油猴中 - GM_setValue("key", this.rule) - }, - - // 更新规则 - ruleUpdate(key) { - let newInfo = document.querySelector(`textarea[info_key=${key}]`).value - let newWords = (document.querySelector(`textarea[words_key=${key}]`).value.split(" ")) - let newLimit = (document.querySelector(`textarea[limit_key=${key}]`).value.split(" ")) - - // 去除空格 - newWords = Array.from(new Set(newWords)) - .filter(word => { return word != " " & word.length > 0 }) - newLimit = Array.from(new Set(newLimit)) - .filter(word => { return word != " " & word.length > 0 }) - // console.log(newInfo,newWords); - this.rule[key].info = newInfo - this.rule[key].words = newWords - this.rule[key].limit = newLimit - - this.editOff(key) - - // 保存到油猴中 - GM_setValue("key", this.rule) - }, - - // 添加新规则 - add_key() { - let key = "key_" + Math.floor(Math.random() * 10000000000) - this.$set(this.rule, key, { - info: "", - words: [], - color: "#dc6c75", - textcolor: "#3467eb", - limit: [] - }) - - this.$set(this.edit, key, false) - - // 保存到油猴中 - GM_setValue("key", this.rule) - console.log(2233) - }, - - // 删除规则 - del_key(key) { - let ready = confirm("确认删除,该操作不可恢复") - - if (ready && Object.keys(this.rule).length > 1) { - this.$delete(this.rule, key) - this.$delete(this.edit, key) - } else if (ready && Object.keys(this.rule).length < 2) { - alert("至少保留一个") - } - - // 保存到油猴中 - GM_setValue("key", this.rule) - }, - - // 复制到粘贴板 - copy() { - navigator.clipboard.writeText(JSON.stringify(this.rules)) - }, - - // 获取配置覆盖 - config_in() { - document.querySelector(".config_file").click() - this.config_add = false - }, - // 获取配置添加 - config_in_add() { - document.querySelector(".config_file").click() - this.config_add = true - }, - - // 解析配置 - importFileJSON(ev) { - return new Promise((resolve, reject) => { - const fileDom = ev.target, - file = fileDom.files[0] - - // 格式判断 - if (file.type !== 'application/json') { - reject('仅允许上传json文件') - } - // 检验是否支持FileRender - if (typeof FileReader === 'undefined') { - reject('当前浏览器不支持FileReader') - } - - // 执行后清空input的值,防止下次选择同一个文件不会触发onchange事件 - ev.target.value = '' - - // 执行读取json数据操作 - const reader = new FileReader() - reader.readAsText(file) // 读取的结果还有其他读取方式,我认为text最为方便 - - reader.onerror = (err) => { - reject('json文件解析失败', err) - } - - reader.onload = () => { - const resultData = reader.result - if (resultData) { - try { - const importData = JSON.parse(resultData) - resolve(importData) - } catch (error) { - reject('读取数据解析失败', error) - } - } else { - reject('读取数据解析失败', error) - } - } - }) - }, - - // 保存配置到本地 - file_read(e) { - this.importFileJSON(e).then(res => { - // 合并还是覆盖 - if (this.config_add) { - let cache = {} - Object.keys(GM_getValue("key")).forEach(key => { - cache["key_" + Math.floor(Math.random() * 10000000000)] = GM_getValue("key")[key] - }) - cache = { ...cache, ...res } - console.log(cache) - - GM_setValue("key", cache) - } else { - GM_setValue("key", res) - } - initialize() - this.rule = GM_getValue("key") - this.edit = this.addEdit(res) - }) - }, - - // 导出配置 - config_out() { - function exportJson(name, data) { - let blob = new Blob([data]) // 创建 blob 对象 - let link = document.createElement("a") - link.href = URL.createObjectURL(blob) // 创建一个 URL 对象并传给 a 的 href - link.download = name // 设置下载的默认文件名 - link.click() - } - - exportJson("mt_hight_light_config.json", JSON.stringify(this.rule)) - - }, - - // 刷新 - refresh() { - location.reload() - }, - - }, - - mounted() { - GM_registerMenuCommand("打开设置", this.open_seting) - // 点击其他区域关闭设置 - document.body.addEventListener("click", (e) => { - // 检查是否是移动设备 - if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { - if (!document.querySelector("#mt_seting_box").contains(e.target)) { - this.close_seting() - } - } - }) - - }, - }) - - } - } - - - /////////////////////////////////////////////////////////// - // vue根节点 - let seting_box = document.createElement("div") // 创建一个节点 - seting_box.setAttribute("id", "mt_seting_box") // 设置一个属性 - document.body.appendChild(seting_box) - - GM_addStyle(HIGHTLIGHT.highlightStyle) - - // 初始化数据 - initialize() - console.log(GM_getValue("key")) - - // 静态页面的检测 - let nodeMap = textMap(document.body) - // console.log(nodeMap); - HIGHTLIGHT.highlight(nodeMap) - nodeMap.clear() - - // 减少节点的重复检测 - let doOnce = ((wait) => { - let timer = null - // 存储动态更新的节点 - let elMap = new Map - - return (el) => { - // 添加节点 - elMap.set(el) - if (!timer) { - timer = setTimeout(() => { - // console.log(elMap); - elMap.forEach((value, el) => { - setTimeout(() => { - - let nodeMap = textMap(el) - HIGHTLIGHT.highlight(nodeMap) - nodeMap = null - - }, 1) - }) - elMap.clear() - timer = null - }, wait) - } - } - })(100) - // 动态更新内容的检测 - watch() - - - // 创建ui - GUI.create() -} -)() \ No newline at end of file diff --git a/Script details/jable-auto-login-helper/README.md b/Script details/jable-auto-login-helper/README.md deleted file mode 100644 index 1f53f0e1e..000000000 --- a/Script details/jable-auto-login-helper/README.md +++ /dev/null @@ -1,183 +0,0 @@ - -
    - - - - - -
    -

    JableTV自动登录

    -

    「 检测 JableTV 状态,并且在未登录时自动登录 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ JableTV自动登录 更新日志

    -

    📅 2024/9/4 13:41 - Ver 1.0.0.0

    -

    初始版本: • 欢迎使用。

    -
    - -
    - - - - - -# JableTV AutoLogin Helper -这是一个用于JableTV 管理用户账户的脚本,主要功能自动登录以及检测用户是否已登录。 - - - -## 功能 - -- **设置账户**: 通过弹出模态框允许用户设置电子邮件和密码。 -- **登录功能**: 使用用户提供的电子邮件和密码进行登录,并处理登录错误。 -- **用户检测**: 检测用户是否已登录,如果未登录则尝试自动登录。 - - - -## 安装和使用 - -1. **安装脚本**: - - 将脚本复制到 Greasemonkey 或 Tampermonkey 插件中。 - - 确保脚本在你希望运行的网页上启用。 - -2. **设置账户**: - - 点击浏览器工具栏中的 Greasemonkey/Tampermonkey 图标。 - - 选择“Set Account”选项,输入你的电子邮件和密码,然后点击“Save”。 - -3. **自动登录**: - - 脚本会自动检测用户是否已登录。如果检测到未登录状态,它将使用提供的账户信息尝试登录。 - - - - - - - -> ### 🔍你可能在找成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/jable-auto-login-helper/README_en.md b/Script details/jable-auto-login-helper/README_en.md deleted file mode 100644 index 569079e40..000000000 --- a/Script details/jable-auto-login-helper/README_en.md +++ /dev/null @@ -1,183 +0,0 @@ - -
    - - - - - -
    -

    JableTVAutomatic login

    -

    「 Detection JableTV state,and automatically log in when not logged in 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ JableTVAutomatic login Change log

    -

    📅 2024/9/4 13:41 - Ver 1.0.0.0

    -

    initial version: • Welcome。

    -
    - -
    - - - - - -# JableTV AutoLogin Helper -This script is used for managing user accounts on JableTV . It provides functionalities for automatic login and checking if the user is already logged in. - - - -## Features - -- **Account Setup**: Allows users to set their email and password via a popup modal. -- **Login Functionality**: Logs in using the provided email and password, and handles login errors. -- **User Detection**: Checks if the user is logged in. If not, it attempts to log in automatically. - - - -## Installation and Usage - -1. **Install the Script**: - - Copy the script into the Greasemonkey or Tampermonkey extension. - - Ensure the script is enabled on the webpage where you want it to run. - -2. **Set Up Account**: - - Click on the Greasemonkey/Tampermonkey icon in your browser toolbar. - - Select the “Set Account” option, enter your email and password, and then click “Save”. - -3. **Automatic Login**: - - The script will automatically check if the user is logged in. If it detects that the user is not logged in, it will attempt to log in using the provided account information. - - - - - - - -> ### 🔍You may be looking for adult scripts -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/missav-auto-login-helper/README.md b/Script details/missav-auto-login-helper/README.md deleted file mode 100644 index 21167b4bd..000000000 --- a/Script details/missav-auto-login-helper/README.md +++ /dev/null @@ -1,181 +0,0 @@ - -
    - - - - - -
    -

    MiSSAV自动登录

    -

    「 检测 MisssAV 状态,并且在未登录时自动登录 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# MissAV AutoLogin Helper - -这是一个用于MissAV管理用户账户的脚本,主要功能自动登录以及检测用户是否已登录。 - - - -## 功能 - -- **设置账户**: 通过弹出模态框允许用户设置电子邮件和密码。 -- **登录功能**: 使用用户提供的电子邮件和密码进行登录,并处理登录错误。 -- **用户检测**: 检测用户是否已登录,如果未登录则尝试自动登录。 - - - -## 安装和使用 - -1. **安装脚本**: - - 将脚本复制到 Greasemonkey 或 Tampermonkey 插件中。 - - 确保脚本在你希望运行的网页上启用。 - -2. **设置账户**: - - 点击浏览器工具栏中的 Greasemonkey/Tampermonkey 图标。 - - 选择“Set Account”选项,输入你的电子邮件和密码,然后点击“Save”。 - -3. **自动登录**: - - 脚本会自动检测用户是否已登录。如果检测到未登录状态,它将使用提供的账户信息尝试登录。 - - - - - - - -> ### 🔍你可能在找成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/missav-auto-login-helper/README_en.md b/Script details/missav-auto-login-helper/README_en.md deleted file mode 100644 index b1b2260cd..000000000 --- a/Script details/missav-auto-login-helper/README_en.md +++ /dev/null @@ -1,181 +0,0 @@ - -
    - - - - - -
    -

    MiSSAVAutomatic login

    -

    「 Detection MisssAV state,and automatically log in when not logged in 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# MissAV AutoLogin Helper - -This script is used for managing user accounts on MissAV. It provides functionalities for automatic login and checking if the user is already logged in. - - - -## Features - -- **Account Setup**: Allows users to set their email and password via a popup modal. -- **Login Functionality**: Logs in using the provided email and password, and handles login errors. -- **User Detection**: Checks if the user is logged in. If not, it attempts to log in automatically. - - - -## Installation and Usage - -1. **Install the Script**: - - Copy the script into the Greasemonkey or Tampermonkey extension. - - Ensure the script is enabled on the webpage where you want it to run. - -2. **Set Up Account**: - - Click on the Greasemonkey/Tampermonkey icon in your browser toolbar. - - Select the “Set Account” option, enter your email and password, and then click “Save”. - -3. **Automatic Login**: - - The script will automatically check if the user is logged in. If it detects that the user is not logged in, it will attempt to log in using the provided account information. - - - - - - - -> ### 🔍You may be looking for adult scripts -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/missav-explorer/README.md b/Script details/missav-explorer/README.md deleted file mode 100644 index 916b0db73..000000000 --- a/Script details/missav-explorer/README.md +++ /dev/null @@ -1,209 +0,0 @@ - -
    - - - - - -
    -

    MissAV收藏管理器

    -

    「 miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - -# Missav 批量提取器 - - - -## 简介 - -Missav 批量提取器是一个用于备份收藏夹和提取视频内容的工具。它可以抓取除了主页下的所有视频,并提供了自定义提取速度和文件命名的功能。下载完成后,生成一个包含图片的 `img` 文件夹和一个 `保存文件名.html` 命名网页文件,用于查看获得的视频信息。 - - - -## 功能 - -- **抓取视频**:可以抓取除主页外的所有视频,视频播放页面未测试过。 -- **生成按钮**:在页面右上角生成一个按钮,用于启动提取操作。 -- **自定义提取速度**:可以按自己想要的速度进行视频抓取。 -- **下载完成后生成文件**: - - **img 图片文件夹**:存储视频缩略图。 - - **jsonindex 网页文件**:包含视频信息,包括图片预览,点击图片可查看预览视频,点击标题可跳转到 Missav 自定义翻页和显示的页面。 -- **批量下载**:支持合并所有片单进行批量下载。 -- **批量操作**:支持从多个片单中批量提取视频。 -- **自定义文件名称**:支持自定义保存文件的名称。 -- **自定义提取速度**:可以设置提取视频的速度。 -- **HTML 生成界面**:支持从网络获取图片并生成 HTML 界面。 -- **高清大图下载**:支持下载高清大图。 -- **支持WebDAV备份**:在下载同时保存到webdav。 - - - -## 更新记录 - - - -### 2024/6/14 更新 - -- **批量下载合并所有片单**:支持将所有片单合并进行批量下载。 -- **除视频播放界面的所有视频提取**:提取除了视频播放界面外的所有视频。 -- **批量选取片单进行批量操作**:支持批量选取片单进行操作。 -- **去除弹出输入框**:去掉了不必要的输入框。 -- **自定义下载保存文件名称**:支持自定义下载文件的名称。 -- **自定义提取速度**:可以设置提取速度。 -- **HTML 生成的界面支持从网络获取图片**:生成的 HTML 界面可以从网络获取图片。 -- **下载高清大图**:支持下载高清大图。 - - - -## 已知问题 -- **最后一页获取完成后提示获取超出最大页的信息**:实际不会去获取。 - - - -## 使用说明 - -1. **在视频分类下的首页使用**:打开视频分类页面的首页。 -2. **点击右上角的按钮**:启动提取操作。 -3. **设置提取速度**:根据需要调整提取速度。 -4. **下载视频和图片**:提取完成后会生成文件和图片。 -5. **查看 `jsonindex` 网页文件**:查看视频信息,点击图片查看预览,点击标题跳转到 Missav 页面。 - - - - -> ### 🔍你可能在找成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/missav-explorer/missav-explorer.user.js b/Script details/missav-explorer/missav-explorer.user.js deleted file mode 100644 index b519501dd..000000000 --- a/Script details/missav-explorer/missav-explorer.user.js +++ /dev/null @@ -1,2328 +0,0 @@ -// ==UserScript== -// @name MissAv批量备份收藏视频 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.2.3.73 -// @description 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 -// @license MIT -// @author 人民的勤务员 & ChatGPT -// @match https://missav.com/* -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_xmlhttpRequest -// @grant GM_download -// @grant GM_openInTab -// @icon data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 -// @iconbak https://pic.616pic.com/ys_bnew_img/00/35/79/Gv93yQh7v6.jpg -// @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js -// @require https://update.greasyfork.org/scripts/498124/1396763/video.js -// @require https://update.greasyfork.org/scripts/498149/1395619/%E4%BF%A1%E6%81%AF%E6%9F%A5%E7%9C%8B%E5%99%A8.js -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(function () { - 'use strict' - - var controlButton = createButton('备份', '10px', '10px') - var buttonA = createButton('备份当前', '70px', '10px') - var buttonB = createButton('备份片单', '130px', '10px') - var buttonC = createButton('设置选项', '190px', '10px') - var webdavbutton = createButton('WebDav', '250px', '10px') - // 设置按钮的背景颜色和样式 - controlButton.style.backgroundColor = 'blue' // 控制按钮改为蓝色背景 - buttonA.style.backgroundColor = 'green' - buttonB.style.backgroundColor = 'blue' - buttonC.style.backgroundColor = 'red' - webdavbutton.style.backgroundColor = 'blue' - // 隐藏初始的三个按钮 - buttonA.style.display = 'none' - buttonB.style.display = 'none' - buttonC.style.display = 'none' - webdavbutton.style.display = 'none' - // 添加按钮到页面 - document.body.appendChild(controlButton) - document.body.appendChild(buttonA) - document.body.appendChild(buttonB) - document.body.appendChild(buttonC) - document.body.appendChild(webdavbutton) - // 控制按钮的点击事件 - controlButton.addEventListener('click', function () { - if (buttonA.style.display === 'none') { - // 显示三个按钮 - buttonA.style.display = 'block' - buttonB.style.display = 'block' - buttonC.style.display = 'block' - webdavbutton.style.display = 'block' - controlButton.innerHTML = '隐藏' - } else { - // 隐藏三个按钮 - buttonA.style.display = 'none' - buttonB.style.display = 'none' - buttonC.style.display = 'none' - webdavbutton.style.display = 'none' - controlButton.innerHTML = '备份' - } - }) - webdavbutton.addEventListener('click', function () { - // 点击按钮时执行的操作 - WebDAVManager.listFilesAndFolders(webdavfold) - - - }) - - // 按钮A的点击事件 - buttonA.addEventListener('click', function () { - resetGlobalVariables() - singleFileDownload = true - window.showLogContainer() - var currentDate = new Date() - var currentTime = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate() + '_' + currentDate.getHours() + '-' + currentDate.getMinutes() + '-' + currentDate.getSeconds() - if (useDefaultTitle) { - name = document.querySelector('meta[name="twitter:title"]').content - } else { - const twitterTitleContent = document.querySelector('meta[name="twitter:title"]').content - name = prompt("请输入自定义名称:", twitterTitleContent) - if (name === null) { - name = twitterTitleContent - } - } - inurl = window.location.href - const defaultPages = getTotalPagesd() - - const totalPages = setTotalPage(defaultPages) - allpages = totalPages - //const delay = settime(); - if (totalPages) { - start(totalPages) - } - - }) - - // 按钮B的点击事件 - buttonB.addEventListener('click', function () { - // 点击按钮时执行的操作 - resetGlobalVariables() - fetchJsonData() - - - }) - - // 按钮C的点击事件 - buttonC.addEventListener('click', function () { - createSettingsUI() - - // 这里可以添加按钮C点击后的具体操作,比如打开链接或执行其他动作 - }) - - // 创建按钮的辅助函数 - function createButton(text, top, left) { - var button = document.createElement('button') - button.innerHTML = text - button.style.position = 'fixed' - button.style.bottom = top - button.style.right = left - button.style.zIndex = '1000' - button.style.padding = '10px' - button.style.border = 'none' - button.style.cursor = 'pointer' - button.style.color = '#fff' - button.style.fontSize = '14px' - button.style.fontWeight = 'bold' - button.style.textAlign = 'center' - button.style.width = '100px' // 调整按钮宽度 - return button - } - // 全局变量 - var allResults = [] // 存储所有的结果数据 - var zip = new JSZip() // 创建一个压缩文件实例 - var allzip = new JSZip() // 另一个可能的压缩文件实例 - var imgFolder = zip.folder("img") // 在 zip 中创建一个名为 "img" 的文件夹,用于存储图片文件 - var allimgFolder = allzip.folder("img") // 在 allzip 中创建一个名为 "img" 的文件夹,可能用于另一个压缩文件的图片存储 - var ALLfiledown = false // 标识是否所有文件已下载完毕的布尔变量 - var videos = [] // 存储视频文件或相关信息的数组 - var finalData = [] // 存储最终处理数据的数组 - var inurl = "" // 当前下载地址的变量 - var pendingRequests = 0 // 当前待处理的请求数量 - var delayTime // 延迟时间,以毫秒为单位,用于控制异步操作的时间间隔 - var currentPage = 1 // 当前处理的页数,可能用于分页处理或其他进度跟踪 - var currentUrlIndex = 0 // 当前处理的 urls 数组中的索引位置 - var name = "" // 当前下载的名称 - var urls = [] // 存储需要处理的网址数组 - var a = -1 // 循环中的计数或索引,初始值为 -1 - var allZipContents = [] // 存储所有压缩文件内容的数组 - var singleFileDownload = false // 标识是否为单个文件下载模式的布尔变量 - var names = [] // 存储下载名称列表的数组 - var allpages = 0 // 存储总页数或其他页面处理相关信息的变量 - var modalContainer = null // 存储模态窗口容器的全局变量,用于显示下载进度或其他信息 - var shouldReplace = false // 控制是否在下载大图时进行替换操作的布尔变量 - var temporaryData = [] - var saveJson = false - var useDefaultTitle = true - var pageCount = true - var saveVideoInfo = false - var saveImage = false - var downloadLog = {} - var errorLogs = {} - var downloadLogFileA = false // 这里设置为 true 时载日志 - var webdavfold = "missavsave" - //var webdavfold="1111"; - var savetowebdav = false - var webdavUrl = '' - var webdavUsername = '' - var webdavPassword = '' - var deleteSelected = false - ini()//读取配置 - function resetGlobalVariables() { - zip = new JSZip() // 重置为一个新的 JSZip 实例,用于创建新的压缩文件 - allzip = new JSZip() // 可能是另一个新的 JSZip 实例,用于其他用途的压缩文件 - if (saveImage) { - imgFolder = zip.folder("img") // 在 zip 中创建一个名为 "img" 的文件夹,用于存储图片文件 - allimgFolder = allzip.folder("img") // 在 allzip 中创建一个名为 "img" 的文件夹,可能用于另一个压缩文件的图片存储 - } - downloadLog = {} - errorLogs = {} - ALLfiledown = false // 重置为 false,表示所有文件未下载完毕 - videos = [] // 清空存储视频文件或相关信息的数组 - finalData = [] // 清空存储最终处理数据的数组 - inurl = "" // 重置当前下载地址为空字符串 - pendingRequests = 0 // 重置待处理的请求数量为 0 - - currentPage = 1 // 重置当前处理的页数为 1 - currentUrlIndex = 0 // 重置当前处理的 urls 数组索引为 0 - name = "" // 重置当前下载的名称为空字符串 - urls = [] // 清空存储需要处理的网址数组 - a = -1 // 重置循环中的计数或索引为 -1 - allZipContents = [] // 清空存储所有压缩文件内容的数组 - singleFileDownload = false // 重置为 false,表示不是单个文件下载模式 - names = [] // 清空存储下载名称列表的数组 - allpages = 0 // 重置存储总页数或其他页面处理相关信息的变量为 0 - temporaryData = [] - } - - - async function processUrls() { - //delayTime = 20; - let completedTasks = 0 // 计数已完成的任务数量 - - for (const url of urls) { - a = a + 1 // 每次循环递增 a - inurl = url - console.log("正在处理网址:", url, names[a]) - window.addToLog("处理:" + url + names[a], 'info') - name = names[a] - - try { - const totalPages = await getTotalPages(url) // 等待 getTotalPages 返回结果 - console.log("Total pages for", url, ":", totalPages) // 显示总页数 - window.addToLog(name + " 总页数:" + url + totalPages, 'info') - allpages = totalPages - start(totalPages) // 启动处理流程 - - // 等待当前页面的请求完成 - while (pendingRequests > 0) { - await new Promise(resolve => setTimeout(resolve, 100)) // 每隔 100 毫秒检查一次是否所有请求都已完成 - } - - completedTasks++ // 标记当前任务已完成 - } catch (error) { - console.error("Error processing URL:", url, error) // 处理错误信息 - allpages = 1 - start(1) // 启动处理流程 - while (pendingRequests > 0) { - await new Promise(resolve => setTimeout(resolve, 100)) // 每隔 100 毫秒检查一次是否所有请求都已完成 - } - completedTasks++ // 标记当前任务已完成 - } - } - - // 如果所有任务都已完成且 urls 数组不为空,则调用下载函数 - if (completedTasks === urls.length && urls.length !== 0) { - downloadAllZips() - } - } - - - - - function getAllCookies() { - return document.cookie - } - - // 获取指定 JSON 数据的函数 - - - - - function fetchJsonData() { - const cookies = getAllCookies() - //alert(cookies); - console.log('Current page cookies:', cookies) - - // 构建 API URL - const apiUrl = 'https://missav.com/api/playlists/dfe-057' - - // 发送带有 cookies 的请求 - GM_xmlhttpRequest({ - method: 'GET', - url: apiUrl, - headers: { - 'Cookie': cookies - }, - onload: function (response) { - if (response.status === 200) { - try { - const jsonResponse = JSON.parse(response.responseText) - if (jsonResponse && Array.isArray(jsonResponse.data)) { - createReportUI(jsonResponse.data, 500) // 假设每页显示 10 个项目 - - // 调用 processUrls 函数处理 URLs - } else { - console.error('JSON 格式无效') - showModal("JSON 格式无效", 2000) - } - } catch (error) { - console.error('Error parsing JSON:', error) - showModal("解析错误" + error, 2000) - } - } else { - console.error('Request failed with status:', response.status) - showModal("解析错误", 2000) - } - }, - onerror: function (error) { - showModal("解析错误" + error, 2000) - } - }) - } - - function processUrl(url) { - // 检查是否包含 `page=` 参数 - var pageIndex = url.indexOf('page=') - - if (pageIndex !== -1) { - // 找到 `page=` 参数并删除它及其后的所有内容 - var baseUrl = url.substring(0, pageIndex + 5) // +5 to include `page=` - return baseUrl - } else { - // 检查是否已有其他参数 - if (url.includes('?')) { - // 有其他参数,添加 `&page=` - return url + '&page=' - } else { - // 没有其他参数,添加 `?page=` - return url + '?page=' - } - } - } - function settime() { - // 让用户输入延时时间 - delayTime = prompt("请输入每页请求的延时时间(毫秒):", "1000") - - // 检查用户是否取消输入 - if (delayTime === null) { - alert("输入取消") - return - } - - delayTime = parseInt(delayTime) - - // 检查输入的延时时间是否有效 - if (isNaN(delayTime) || delayTime <= 0) { - alert("请输入有效的延时时间(正整数)!") - return - } - - // 返回有效的延时时间 - return delayTime - } - - - function getTotalPagesd() { // 获取总页数 - var totalPagesElement = document.querySelector('#price-currency') - var totalPagesText = totalPagesElement ? totalPagesElement.innerText : '' - var totalPages = parseInt(totalPagesText.replace('/', '').trim(), 10) - - // 如果获取总页数失败,则返回 1 - if (isNaN(totalPages) || totalPages <= 0) { - totalPages = 1 - } - - return totalPages - } - function getTotalPages(url) { - return new Promise((resolve, reject) => { - // 如果没有提供 URL,则使用当前页面的 URL - if (!url) { - url = window.location.href - } - - // 发起 GM_xmlhttpRequest 请求获取页面内容 - GM_xmlhttpRequest({ - method: "GET", - url: url, - headers: { "Cookie": document.cookie }, - onload: function (response) { - // 处理响应 - if (response.status === 200) { - const parser = new DOMParser() - const doc = parser.parseFromString(response.responseText, 'text/html') - const totalPagesElement = doc.querySelector('#price-currency') // 替换为实际选择器 - if (totalPagesElement) { - const totalPagesText = totalPagesElement.innerText - const totalPages = parseInt(totalPagesText.replace('/', '').trim(), 10) - resolve(totalPages) // 成功时返回总页数 - } else { - window.addToLog('页面中没有找到总页数,默认为1页', 'warning') - reject('Total pages element not found') // 页面中没有找到总页数元素 - } - } else { - window.addToLog('请求失败', 'warning') - reject(`Request failed with status ${response.status}`) // 请求失败 - } - }, - onerror: function () { - window.addToLog('请求出错', 'warning') - reject('Request failed') // 请求出错 - - } - }) - }) - } - - - // 设置总页数 - function setTotalPage(defaultPages) { - if (!pageCount) { - return defaultPages - } - - const inputPages = parseInt(prompt(`当前 ${name} 总页数为 ${defaultPages}。请输入你想要抓取的页数(不输入抓取全部):`, defaultPages), 10) - if (isNaN(inputPages) || inputPages <= 0) { - return defaultPages - } - return inputPages - } - // 开始处理页面抓取 - function start(totalPages, callback) { - const pages = Array.from({ length: totalPages }, (_, i) => i + 1) - pendingRequests = pages.length - fetchPage(pages.shift(), pages, callback) - } - - // 点击按钮时执行操作 - - - - // 异步获取页面内容 - function fetchPage(pageNum, pages, callback) { - const pageUrl = `${processUrl(inurl)}${pageNum}` - console.log(`正在获取第 ${pageNum} 页的内容...`) - //showModal(`正在获取${name} 第 ${pageNum} / ${allpages}页 `); - if (a !== -1) { - showModal(`${a + 1}/${names.length} 正在获取 ${name} 第 ${pageNum} / ${allpages} 页`) - } else { - showModal(`正在获取 ${name} 第 ${pageNum} / ${allpages} 页`) - } - GM_xmlhttpRequest({ - method: "GET", - url: pageUrl, - headers: { "Cookie": document.cookie }, - onload: function (response) { - if (response.status === 200) { - processPageContent(response.responseText, pageNum, pages, callback) - } else { - pendingRequests-- - checkIfComplete(callback) - if (pages.length > 0) { - setTimeout(() => fetchPage(pages.shift(), pages, callback), delayTime) - } - } - } - }) - } - - - //获取视频信息 - function extractInformation(htmlContent) { - let data = {} // 创建一个对象来存储提取的数据 - let xhr = new XMLHttpRequest() - xhr.open('GET', htmlContent, false) // 同步方式打开请求 - xhr.send() - - // 创建一个虚拟的
    元素来加载 HTML 内容 - let tempDiv = document.createElement('div') - tempDiv.innerHTML = xhr.responseText - - // 获取所有包含信息的父元素列表 - let parentElements = tempDiv.querySelectorAll('div.space-y-2 > div') - - if (parentElements.length > 0) { - let allInfo = {} // 初始化一个空对象来存储所有信息 - - // 遍历每个包含信息的
    元素 - parentElements.forEach(div => { - let span = div.querySelector('span') // 获取第一个 元素 - - if (span) { - let category = span.textContent.trim() // 获取主分类名称 - - if (!allInfo[category]) { - allInfo[category] = [] // 初始化一个空数组来存储该分类下的所有信息 - } - - // 查找所有的 元素和 元素 - if (element.tagName === 'A') { - info['name'] = element.textContent.trim() // 获取名称 - info['link'] = element.href.trim() // 获取链接 - } else if (element.tagName === 'TIME') { - info = element.textContent.trim() // 如果是 元素,则尝试获取 标签内的文本内容 - if (div.querySelectorAll('a').length === 0) { - let spanText = div.querySelector('span.font-medium') - if (spanText) { - let info = spanText.textContent.trim() - allInfo[category].push(info) - } - } - } - }) - - // 提取 class="mb-1 text-secondary break-all line-clamp-2" 的内容 - let descriptionElement = tempDiv.querySelector('.mb-1.text-secondary.break-all.line-clamp-2') - let descriptionContent = descriptionElement ? descriptionElement.textContent.trim() : '' - allInfo['简介'] = descriptionContent - - // 将所有信息存储到 data 对象中 - data['videosinfo'] = allInfo - - // 查找包含 x-cloak 和 x-show="currentTab === 'magnets'" 的第二个元素 - let secondElement = tempDiv.querySelector('div[x-cloak][x-show="currentTab === \'magnets\'"]') - - if (secondElement) { - let linksAndInfo = [] - - // 遍历第二个元素内的 元素 - secondElement.querySelectorAll('a[rel="nofollow"]').forEach(a => { - let linkInfo = { - name: a.textContent.trim(), - link: a.href.trim() - } - - // 查找相邻的 元素,获取大小和日期信息 - let sizeTd = a.closest('td').nextElementSibling - if (sizeTd && sizeTd.classList.contains('font-mono')) { - linkInfo['size'] = sizeTd.textContent.trim() // 获取大小信息 - } - - let dateTd = sizeTd ? sizeTd.nextElementSibling : null - if (dateTd && dateTd.classList.contains('hidden')) { - linkInfo['date'] = dateTd.textContent.trim() // 获取日期信息 - } - let nextSibling = a.nextElementSibling - - // 循环处理所有紧邻的元素 - while (nextSibling && nextSibling.tagName === 'SPAN') { - let spanText = nextSibling.textContent.trim() - linkInfo['name'] += ' ' + spanText // 将元素的文本内容追加到name中 - - nextSibling = nextSibling.nextElementSibling // 继续查找下一个兄弟元素 - } - linksAndInfo.push(linkInfo) - }) - - // 将第二个元素的链接和信息添加到 data 中 - data['secondElementLinksInfo'] = linksAndInfo - } else { - console.error('未找到包含 x-cloak 和 x-show="currentTab === \'magnets\'" 的第二个元素。') - } - - return data // 返回结构化的数据 - - } else { - console.error('未找到匹配的父元素 div.space-y-2') - return null // 如果未找到匹配的父元素,返回 null - } - } ///大 - - - - - // 使用XMLHttpRequest获取页面内容 - function fetchPageforinfo(url) { - let xhr = new XMLHttpRequest() - - xhr.onreadystatechange = function () { - if (xhr.readyState === XMLHttpRequest.DONE) { - if (xhr.status === 200) { - extractInformation(xhr.responseText) // 将获取的页面内容传递给提取信息的函数 - } else { - console.error('请求失败:' + xhr.status) - } - } - } - - xhr.open('GET', url, true) - xhr.send() - } - - - // 处理获取到的页面内容 - function processPageContent(htmlContent, pageNum, pages, callback) { - const parser = new DOMParser() - const doc = parser.parseFromString(htmlContent, 'text/html') - const divElements = doc.querySelectorAll('div.relative.aspect-w-16.aspect-h-9.rounded.overflow-hidden.shadow-lg') - const logEntry = { - url: `${processUrl(inurl)}${pageNum}`, - elementsFetched: divElements.length - } - - // 如果当前名称的日志组不存在,则创建一个新数组 - if (!downloadLog[name]) { - downloadLog[name] = [] - } - - // 将日志条目添加到日志数组中 - downloadLog[name].push(logEntry) - if (divElements.length === 0) { - const logEntry = { - url: `${processUrl(inurl)}${pageNum}`, - elementsFetched: 0, // 这里可以根据实际需求设置其他信息 - errorMessage: `获取第 ${pageNum} 页失败。` - } - if (!errorLogs[name]) { - errorLogs[name] = [] - } - errorLogs[name].push(logEntry) - console.log(`获取第 ${pageNum} 页失败。`) - window.addToLog(`${name}${processUrl(inurl)}${pageNum}+获取失败 数量:` + divElements.length, 'error') - } - - - - - divElements.forEach(div => { - var imgUrl = div.querySelector('img').getAttribute('data-src') - - - if (shouldReplace) { - imgUrl = imgUrl.replace('cover-t.jpg', 'cover-n.jpg') - } - const video = { - fileName: div.querySelector('a').getAttribute('alt'), - imgUrl: imgUrl, - videoUrl: div.querySelector('video').getAttribute('data-src'), - markContent: Array.from(div.querySelectorAll('span')).map(mark => mark.textContent).join(' '), - altText: div.querySelector('img').getAttribute('alt'), - jumpUrl: div.querySelector('a').getAttribute('href'), - - } - - if (saveVideoInfo) { - video.info = extractInformation(video.jumpUrl) - //showBanner(`正在获取 ${video.fileName} 信息`); - window.addToLog(`正在获取 ${video.fileName} 信息`, 'info') - console.log() - }; - - - - if (video.imgUrl && video.altText) { - videos.push(video) - if (saveImage) { - window.addToLog(`保存` + video.imgUrl, 'info') - pendingRequests++ - GM_xmlhttpRequest({ - method: 'GET', - url: video.imgUrl, - responseType: 'blob', - onload: function (response) { - if (response.status === 200) { - if (saveImage) { - if (singleFileDownload) { - console.log("这是单个文件下载") - imgFolder.file(`${video.fileName}.jpg`, response.response, { binary: true }) - } else { - console.log("这是批量文件下载") - allimgFolder.file(`${video.fileName}.jpg`, response.response, { binary: true }) - } - } - - pendingRequests-- - checkIfComplete(callback) - } else { - pendingRequests-- - checkIfComplete(callback) - } - } - }) - } - } else { - pendingRequests-- - checkIfComplete(callback) - } - }) - - showModal(`获取第 ${pageNum} 页的内容完成,等待 ${delayTime} 毫秒加载第 ${pageNum + 1} 页。`) - pendingRequests-- - checkIfComplete(callback) - if (pages.length > 0) { - setTimeout(() => fetchPage(pages.shift(), pages, callback), delayTime) - } else { - - } - } - - closeModal() - - function downloadLogFile() { - - - if (!downloadLogFileA) { - console.log('日志下载已被跳过') - return - } - if (Object.keys(errorLogs).length === 0) { - // 如果错误日志为空,直接下载正常日志文件 - const logBlob = new Blob([JSON.stringify(downloadLog, null, 4)], { type: 'application/json' }) - const logUrl = URL.createObjectURL(logBlob) - const logLink = document.createElement('a') - logLink.href = logUrl - logLink.download = 'download_log.json' - logLink.click() - URL.revokeObjectURL(logUrl) - } else { - // 创建一个JSZip实例 - const zip = new JSZip() - - // 添加正常日志文件到压缩包 - const logBlob = new Blob([JSON.stringify(downloadLog, null, 4)], { type: 'application/json' }) - zip.file('download_log.json', logBlob) - - // 添加错误日志文件到压缩包 - const errorLogBlob = new Blob([JSON.stringify(errorLogs, null, 4)], { type: 'application/json' }) - zip.file('error_log.json', errorLogBlob) - - // 生成压缩包并触发下载 - zip.generateAsync({ type: 'blob' }).then(function (content) { - const zipUrl = URL.createObjectURL(content) - const link = document.createElement('a') - link.href = zipUrl - link.download = 'logs.zip' - link.click() - URL.revokeObjectURL(zipUrl) - }) - } - } - - - - function sanitizeFileName(name) { - return name.replace(/[\\\/:*?"<>|]/g, '_') - } - - function checkIfComplete(callback) { - if (pendingRequests === 0) { - - const additionalInfo = { - timestamp: new Date().toISOString(), - inurl: inurl - - } - if (singleFileDownload) { - showModal("获取完毕,正在生成单个文件...") - - finalData = { - info: additionalInfo, - video: videos - } - if (saveJson) { - zip.file("data.json", JSON.stringify(finalData, null, 4)) - } - if (savetowebdav) { - - WebDAVManager.uploadFile(webdavfold, `${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) - } - - - - const jsonIndexContent = generateJsonIndexContent(finalData) - const numFiles = Object.keys(zip.files).length // 获取压缩包中文件的数量 - - if (numFiles === 0) { - const htmlContent = jsonIndexContent // 替换为实际的HTML内容 - const htmlBlob = new Blob([htmlContent], { type: 'text/html' }) - const htmlUrl = URL.createObjectURL(htmlBlob) - - const a = document.createElement('a') - a.href = htmlUrl - a.download = `${sanitizeFileName(name)}.html` - a.click() - closeModal() - downloadLogFile() - - if (callback) callback() - } else { - zip.file(`${sanitizeFileName(name)}.html`, jsonIndexContent) - - // 生成并下载单个文件 - zip.generateAsync({ type: "blob" }, function updateCallback(metadata) { - const progress = metadata.percent.toFixed(2) - showModal(`压缩进度: ${progress}%`) - }).then(content => { - const zipUrl = URL.createObjectURL(content) - const a = document.createElement('a') - a.href = zipUrl - a.download = `${name}.zip` - a.click() - URL.revokeObjectURL(zipUrl) - closeModal() - downloadLogFile() - if (callback) callback() - }) - } - - - } else { - finalData = { - info: additionalInfo, - video: videos - } - if (saveJson) { - allzip.file(`${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) - } - if (savetowebdav) { - WebDAVManager.uploadFile(webdavfold, `${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) - } - - const jsonIndexContent = generateJsonIndexContent(finalData);; - allzip.file(`${sanitizeFileName(name)}.html`, jsonIndexContent) - finalData = [] - - videos = [] - if (callback) callback() - } - - } - } - function downloadAllZips() { - if (singleFileDownload === false) { - showModal("获取完毕,正在生成压缩文件...") - - const numFiles = Object.keys(allzip.files).length // 获取压缩包中文件的数量 - - if (numFiles === 1) { - // 如果压缩包中只有一个文件,直接处理该文件 - const fileName = Object.keys(allzip.files)[0] // 获取唯一的文件名 - const file = allzip.files[fileName] - - // 根据文件类型获取文件内容 - file.async('blob').then(content => { - // 创建一个Blob对象,并下载 - const blob = new Blob([content]) - const url = URL.createObjectURL(blob) - const a = document.createElement('a') - a.href = url - a.download = fileName - document.body.appendChild(a) // 添加到文档中以确保点击有效 - a.click() - document.body.removeChild(a) // 下载完成后移除元素 - URL.revokeObjectURL(url) - closeModal() - }).catch(error => { - console.error('Error fetching file content:', error) - closeModal() - }) - downloadLogFile() - return // 结束函数执行,不生成压缩包 - } - - - - allzip.generateAsync({ type: "blob" }, function updateCallback(metadata) { - const progress = metadata.percent.toFixed(2) - showModal(`压缩进度: ${progress}%`) - }).then(content => { - const zipUrl = URL.createObjectURL(content) - const a = document.createElement('a') - a.href = zipUrl - a.download = `批量备份${urls.length}个片单.zip` - a.click() - URL.revokeObjectURL(zipUrl) - closeModal() - downloadLogFile() - if (callback) callback() - }) - // 如果 singleFileDownload 等于假,则执行这里的代码 - } - - - } - - function showBanner(text) { - // 查找现有的横幅元素 - var existingBanner = document.querySelector('.banner') - - if (existingBanner) { - // 如果横幅已经存在,直接更新文本内容 - existingBanner.textContent = text - } else { - // 如果横幅不存在,创建一个新的横幅 - var banner = document.createElement('div') - banner.className = 'banner' // 添加一个类名以便识别 - banner.style.position = 'fixed' - banner.style.bottom = '20px' // 距离底部的距离 - banner.style.left = '20px' // 距离左侧的距离 - banner.style.width = 'auto' // 根据文本自动调整宽度 - banner.style.backgroundColor = 'rgba(255, 255, 255, 0.9)' - banner.style.color = '#000' // 黑色文本 - banner.style.textAlign = 'center' - banner.style.padding = '20px' - banner.style.borderRadius = '8px' - banner.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)' - banner.style.zIndex = '9999' - banner.textContent = text // 将传入的文本设置为横幅内容 - - document.body.appendChild(banner) // 将横幅添加到文档的末尾 - - // 3秒后移除横幅提示 - setTimeout(function () { - banner.remove() - }, 3000) - } - } - - - - // 创建或更新模态窗口 - function showModal(message, autoCloseDelay = 0) { - // 如果模态窗口不存在,则创建新的模态窗口 - if (!modalContainer) { - modalContainer = document.createElement('div') - modalContainer.className = 'modal-container' - modalContainer.style.cssText = ` - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: rgba(255, 255, 255, 0.9); - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - z-index: 9999; - padding: 20px; - ` - document.body.appendChild(modalContainer) - } - - // 更新模态窗口的内容 - modalContainer.textContent = message - - // 自动关闭模态窗口 - if (autoCloseDelay > 0) { - setTimeout(closeModal, autoCloseDelay) - } - } - - // 关闭模态窗口 - function closeModal() { - // 如果模态窗口存在,则从 DOM 中移除 - if (modalContainer) { - document.body.removeChild(modalContainer) - modalContainer = null // 将变量重置为 null,以便下次创建新的模态窗口 - } - } - - // 创建JSONindex - - function createReportUI(data, itemsPerPage) { - temporaryData = data - // 创建全屏遮罩层 - const overlay = document.createElement('div') - overlay.className = 'overlay' - overlay.style.cssText = ` - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 1); /* 全黑不透明背景 */ - z-index: 9999; /* 确保遮罩层位于所有内容之上 */ - ` - // document.body.appendChild(overlay); - - const modalContainer = document.createElement('div') - modalContainer.className = 'modal-container' - modalContainer.style.cssText = ` - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: rgba(255, 255, 255, 1); - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); - z-index: 10000; /* 确保弹出框位于遮罩层之上 */ - padding: 20px; - width: 80%; - max-width: 800px; - ` - const title = document.createElement('h2') - title.textContent = `当前共有片单数量: ${temporaryData.length}` - - title.style.textAlign = 'center' - modalContainer.appendChild(title) - - const closeButton = document.createElement('button') - closeButton.textContent = '×' - closeButton.style.position = 'absolute' - closeButton.style.top = '10px' - closeButton.style.right = '10px' - closeButton.style.backgroundColor = 'transparent' - closeButton.style.border = 'none' - closeButton.style.fontSize = '24px' - closeButton.style.cursor = 'pointer' - modalContainer.appendChild(closeButton) - - closeButton.addEventListener('click', () => { - - // document.body.removeChild(overlay); // 移除遮罩层 - document.body.removeChild(modalContainer) // 移除模态框 - }) - - const tableContainer = document.createElement('div') - tableContainer.style.cssText = ` - max-height: 60vh; - overflow-y: auto; - ` - modalContainer.appendChild(tableContainer) - - const table = document.createElement('table') - table.style.width = '100%' - table.style.borderCollapse = 'collapse' - table.style.fontSize = '16px' - tableContainer.appendChild(table) - - const thead = document.createElement('thead') - table.appendChild(thead) - - const headerRow = document.createElement('tr') - thead.appendChild(headerRow) - - const checkboxHeader = document.createElement('th') - checkboxHeader.textContent = '选择' - checkboxHeader.style.textAlign = 'center' - checkboxHeader.style.padding = '10px' - headerRow.appendChild(checkboxHeader) - - const nameHeader = document.createElement('th') - nameHeader.textContent = '片单' - nameHeader.style.padding = '10px' - nameHeader.style.width = '40%' - headerRow.appendChild(nameHeader) - - const urlHeader = document.createElement('th') - urlHeader.textContent = '地址' - urlHeader.style.padding = '10px' - urlHeader.style.width = '40%' - headerRow.appendChild(urlHeader) - - const tbody = document.createElement('tbody') - table.appendChild(tbody) - - let currentPage = 1 - const totalItems = data.length - const totalPages = Math.ceil(totalItems / itemsPerPage) - - function generateTableData(page) { - tbody.innerHTML = '' - - const startIndex = (page - 1) * itemsPerPage - const endIndex = startIndex + itemsPerPage - - for (let i = startIndex; i < endIndex && i < data.length; i++) { - const row = document.createElement('tr') - tbody.appendChild(row) - // 序号列 - const indexCell = document.createElement('td') - indexCell.textContent = i + 1 // 显示序号,从1开始 - indexCell.style.textAlign = 'center' - indexCell.style.padding = '5px' - row.appendChild(indexCell) - const checkboxCell = document.createElement('td') - checkboxCell.style.textAlign = 'center' - checkboxCell.style.padding = '5px' - const checkbox = document.createElement('input') - checkbox.type = 'checkbox' - checkbox.id = `checkbox_${i}` - checkbox.value = i - checkboxCell.appendChild(checkbox) - row.appendChild(checkboxCell) - - const nameCell = document.createElement('td') - nameCell.textContent = data[i].name - nameCell.style.padding = '10px' - nameCell.style.borderBottom = '1px solid #ddd' - row.appendChild(nameCell) - - const urlCell = document.createElement('td') - const fullUrl = "https://missav.com/playlists/" + data[i].key - const link = document.createElement('a') - link.textContent = fullUrl - link.href = fullUrl - link.target = '_blank' // 在新标签页中打开链接 - urlCell.appendChild(link) - urlCell.style.padding = '10px' - urlCell.style.borderBottom = '1px solid #ddd' - row.appendChild(urlCell) - } - } - - generateTableData(currentPage) - - const paginationContainer = document.createElement('div') - paginationContainer.style.marginTop = '20px' - paginationContainer.style.textAlign = 'center' - modalContainer.appendChild(paginationContainer) - - const prevButton = document.createElement('button') - prevButton.textContent = '上一页' - prevButton.style.marginRight = '10px' - prevButton.disabled = true - - const pageIndicator = document.createElement('span') - pageIndicator.style.marginRight = '10px' - updatePageIndicator() - paginationContainer.appendChild(pageIndicator) - - const nextButton = document.createElement('button') - nextButton.textContent = '下一页' - nextButton.style.marginLeft = '10px' - if (totalPages <= 1) { - nextButton.disabled = true - } - - prevButton.addEventListener('click', () => { - currentPage-- - generateTableData(currentPage) - updatePaginationButtons() - updatePageIndicator() - }) - - nextButton.addEventListener('click', () => { - currentPage++ - generateTableData(currentPage) - updatePaginationButtons() - updatePageIndicator() - }) - - function updatePaginationButtons() { - prevButton.disabled = currentPage === 1 - nextButton.disabled = currentPage === totalPages - } - - function updatePageIndicator() { - pageIndicator.textContent = `第 ${currentPage}/${totalPages} 页` - } - const selectAllButton = document.createElement('button') - selectAllButton.textContent = '全部选择' - selectAllButton.style.marginRight = '10px' - selectAllButton.style.marginTop = '20px' - selectAllButton.style.padding = '10px 20px' - selectAllButton.style.fontSize = '16px' - selectAllButton.style.backgroundColor = '#007bff' - selectAllButton.style.color = '#fff' - selectAllButton.style.border = 'none' - selectAllButton.style.borderRadius = '5px' - selectAllButton.style.cursor = 'pointer' - selectAllButton.style.float = 'left' - modalContainer.appendChild(selectAllButton) - - let selectAll = true - - selectAllButton.addEventListener('click', () => { - const checkboxes = document.querySelectorAll('input[type="checkbox"]') - checkboxes.forEach(checkbox => { - checkbox.checked = selectAll - }) - - if (selectAll) { - selectAllButton.textContent = '取消选择' - } else { - selectAllButton.textContent = '全部选择' - } - - selectAll = !selectAll - }) - // - - const confirmButton = document.createElement('button') - confirmButton.textContent = '确认选择' - confirmButton.style.marginTop = '20px' - confirmButton.style.padding = '10px 20px' - confirmButton.style.fontSize = '16px' - confirmButton.style.backgroundColor = '#007bff' - confirmButton.style.color = '#fff' - confirmButton.style.border = 'none' - confirmButton.style.borderRadius = '5px' - confirmButton.style.cursor = 'pointer' - confirmButton.style.float = 'right' - modalContainer.appendChild(confirmButton) - - document.body.appendChild(modalContainer) - - confirmButton.addEventListener('click', () => { - const checkboxes = document.querySelectorAll('input[type="checkbox"]') - let anyCheckboxChecked = false - checkboxes.forEach(checkbox => { - if (checkbox.checked) { - - const index = parseInt(checkbox.value, 10) - if (index >= 0 && index < temporaryData.length) { - // 检查 temporaryData[index] 是否为 undefined 或 null - if (temporaryData[index]) { - // 将选中的名称和URL推送到全局变量 - names.push(temporaryData[index].name) - urls.push("https://missav.com/playlists/" + temporaryData[index].key) - anyCheckboxChecked = true - } else { - console.error(`temporaryData[${index}] is undefined or null.`) - } - } else { - console.error(`Index ${index} is out of bounds for temporaryData.`) - } - } - - }) - - document.body.removeChild(modalContainer) - // document.body.removeChild(overlay); - if (anyCheckboxChecked) { - - processUrls() - window.showLogContainer() - } - - }) - } - function ini() { - delayTime = GM_getValue('delayTime', 1000) // 从GM存储中读取延迟时间 - shouldReplace = GM_getValue('shouldReplace', false) // 从GM存储中读取状态 - saveJson = GM_getValue('saveJson', false) // 从GM存储中读取状态 - useDefaultTitle = GM_getValue('useDefaultTitle', true) - pageCount = GM_getValue('pageCount', true) - saveVideoInfo = GM_getValue('saveVideoInfo', false) - saveImage = GM_getValue('saveImage', true) - downloadLogFileA = GM_getValue('downloadLogFileA', false) - savetowebdav = GM_getValue('savetowebdav', false) - webdavUrl = GM_getValue('webdavUrl', '') - webdavUsername = GM_getValue('webdavUsername', '') - webdavPassword = GM_getValue('webdavPassword', '') - - } - // 创建设置界面 - function createControl(tagName, attributes = {}, styles = {}, parent = document.body) { - const element = document.createElement(tagName) - - // 设置属性 - for (const key in attributes) { - element[key] = attributes[key] - } - - // 设置样式 - Object.assign(element.style, styles) - - // 添加到父元素 - if (parent) { - parent.appendChild(element) - } - - return element - } - - function createSettingsUI() { - const modalContainer = createControl('div', { - className: 'settings-modal' - }, { - position: 'fixed', - top: '50%', - left: '50%', - transform: 'translate(-50%, -50%)', - backgroundColor: 'rgba(255, 255, 255, 1)', - borderRadius: '8px', - boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)', - zIndex: '9999', - padding: '20px', - width: '400px', - maxWidth: '80%' - }) - - const title = createControl('h2', { - textContent: '设置' - }, { - textAlign: 'center' - }) - modalContainer.appendChild(title) - - // 创建控件并添加到模态框 - const controls = [ - { - type: 'checkbox', - id: 'saveImageCheckbox', - label: '下载图片', - checked: GM_getValue('saveImage', true), - onchange: function () { GM_setValue('saveImage', this.checked) } - }, - { - type: 'checkbox', - id: 'saveJsonCheckbox', - label: '下载JSON', - checked: GM_getValue('saveJson', false), - onchange: function () { GM_setValue('saveJson', this.checked) } - }, - { - type: 'checkbox', - id: 'hdImageCheckbox', - label: '下载高清大图', - checked: GM_getValue('shouldReplace', false), - onchange: function () { GM_setValue('shouldReplace', this.checked) } - }, - { - type: 'checkbox', - id: 'defaultTitleCheckbox', - label: '使用网页标题名保存', - checked: GM_getValue('useDefaultTitle', true), - onchange: function () { GM_setValue('useDefaultTitle', this.checked) } - }, - { - type: 'checkbox', - id: 'saveVideoInfoCheckbox', - label: '下载视频信息', - checked: GM_getValue('saveVideoInfo', false), - onchange: function () { GM_setValue('saveVideoInfo', this.checked) } - }, - { - type: 'checkbox', - id: 'pageCountCheckbox', - label: '自定义抓取页数', - checked: GM_getValue('pageCount', true), - onchange: function () { GM_setValue('pageCount', this.checked) } - }, - { - type: 'checkbox', - id: 'downloadLogFileA', - label: '保存下载日志', - checked: GM_getValue('downloadLogFileA', false), - onchange: function () { GM_setValue('downloadLogFileA', this.checked) } - }, - { - type: 'checkbox', - id: 'savetowebdav', - label: '上传JSON到WebDav', - checked: GM_getValue('savetowebdav', false), - onchange: function () { GM_setValue('savetowebdav', this.checked) } - }, - { - type: 'number', - id: 'delayInput', - label: '设置延迟(毫秒)', - value: GM_getValue('delayTime', 1000), - placeholder: '设置延迟(毫秒)', - onchange: function () { GM_setValue('delayTime', this.value) }, - style: { - width: '1px' // 设置输入框宽度为100% - } - }, - { - type: 'text', - id: 'webdavUrlInput', - label: 'WebDAV 网址', - value: GM_getValue('webdavUrl', ''), - placeholder: '输入WebDAV网址', - onchange: function () { GM_setValue('webdavUrl', this.value) } - }, - { - type: 'text', - id: 'webdavUsernameInput', - label: 'WebDAV 账号', - value: GM_getValue('webdavUsername', ''), - placeholder: '输入WebDAV账号', - onchange: function () { GM_setValue('webdavUsername', this.value) } - }, - { - type: 'text', - id: 'webdavPasswordInput', - label: 'WebDAV 密码', - value: GM_getValue('webdavPassword', ''), - placeholder: '输入WebDAV密码', - onchange: function () { GM_setValue('webdavPassword', this.value) } - } - ] - - controls.forEach(control => { - const input = createControl('input', { - type: control.type, - id: control.id, - checked: control.checked, - value: control.value, - placeholder: control.placeholder, - onchange: control.onchange - }, { - marginRight: '10px' - }) - - const label = createControl('label', { - textContent: control.label, - htmlFor: control.id - }, { - fontSize: '14px', - marginLeft: '5px' - }) - - modalContainer.appendChild(input) - modalContainer.appendChild(label) - modalContainer.appendChild(createControl('br')) - }) - - // 关闭按钮 - const closeButton = createControl('button', { - textContent: '关闭', - onclick: () => { - ini() - WebDAVManager.updateConfig(webdavUrl, webdavUsername, webdavPassword) - document.body.removeChild(modalContainer) - } - }, { - marginTop: '10px', - padding: '10px 20px', - fontSize: '16px', - backgroundColor: '#007bff', - color: '#fff', - border: 'none', - borderRadius: '5px', - cursor: 'pointer', - float: 'right' - }) - - modalContainer.appendChild(closeButton) - - // 将模态框添加到页面 - document.body.appendChild(modalContainer) - - // 添加移动端样式 - const mediaQuery = window.matchMedia('(max-width: 600px)') - if (mediaQuery.matches) { - modalContainer.style.width = '90%' - modalContainer.style.maxWidth = '90%' - modalContainer.style.padding = '10px' - } - } - - // 在页面加载时调用设置界面创建函数 - - - // 调用示例 - - - const WebDAVManager = (function () { - // WebDAV 配置 - let url = webdavUrl - let username = webdavUsername - let password = webdavPassword - - - // 通用 GM_xmlhttpRequest 封装函数 - function GM_xhr({ path = '/', method, success, fail, headers = {}, data, ...config }) { - - return new Promise(resolve => { - GM_xmlhttpRequest({ - url: url + path, - method, - ...config, - headers: { - 'Connection': 'Keep-Alive', // 保持连接 - 'User-Agent': 'Mozilla/5.0', // 用户代理 - 'Authorization': 'Basic ' + btoa(username + ':' + password), // 基本认证 - ...headers - }, - data, - onload: xhr => { - if (xhr.status >= 200 && xhr.status < 300) { - if (success) success(xhr) - } else { - if (fail) fail(xhr) - } - resolve(xhr) - }, - onerror: xhr => { - if (fail) fail(xhr) - resolve(xhr) - } - }) - }) - } - //登录 - async function login() { - let retryCount = 2 // 设置重试次数为2次 - - while (retryCount > 0) { - // 构建登录请求 - const LOGIN = { - method: 'PROPFIND', // 使用 PROPFIND 方法检查根目录 - path: retryCount === 2 ? '/' : '', // 根据重试次数设置 path - headers: { - 'Depth': '1', - 'Authorization': 'Basic ' + btoa(username + ':' + password), - 'Connection': 'Keep-Alive', // 保持连接 - 'User-Agent': 'Mozilla/5.0' // 用户代理 - } - } - - // 发起登录请求 - const loginResponse = await GM_xhr(LOGIN) - - // 判断登录结果 - if (loginResponse.status === 207) { - console.log('登录成功') - // 登录成功后,可以执行其他操作 - showModal("Webdav登录成功!", 1000) - return true // 返回登录成功标志 - } else { - console.error('登录失败:', loginResponse.status) - if (retryCount === 1) { - showModal("Webdav登录失败!" + loginResponse.status, 1000) - return false // 返回登录失败标志 - } else { - retryCount-- // 减少重试次数 - } - } - } - - // 如果重试次数用尽仍未登录成功,执行其他操作(可根据实际情况添加代码) - console.error('重试次数用尽,登录失败') - showModal("Webdav登录失败!重试次数用尽", 1000) - return false - } - - //刷新 - function updateConfig(newUrl, newUsername, newPassword) { - if (newUrl && newUsername && newPassword) { - url = newUrl - username = newUsername - password = newPassword - // 在这里调用登录函数 - login() - } else { - console.error('WebDAV 配置信息不完整') - } - } - // 获取 WebDAV 中指定路径下的所有文件和文件夹 - async function listFilesAndFolders(folderName) { - const path = folderName.endsWith('/') ? folderName : folderName + '/' - const PROPFIND = { - method: 'PROPFIND', - headers: { - 'Depth': '1' - }, - success: (xhr) => { - const parser = new DOMParser() - const xmlDoc = parser.parseFromString(xhr.responseText, 'text/xml') - const responses = xmlDoc.getElementsByTagNameNS('DAV:', 'response') - - let fileCount = 0 - //let fileList = `
    `; - let fileList = "" - - for (let i = 0; i < responses.length; i++) { - const href = decodeURIComponent(responses[i].getElementsByTagNameNS('DAV:', 'href')[0].textContent.trim()) - const displayName = href.substring(href.lastIndexOf('/') + 1) - const isCollection = responses[i].getElementsByTagNameNS('DAV:', 'collection').length > 0 - - if (!isCollection) { - fileList += ` -
  • - - ${fileCount + 1}. - ${displayName} -
    - 更名 - 删除 - 下载 -
    -
    -
  • - ` - fileCount++ - } - } - /*fileList += ` -
    -

    文件数量: ${fileCount}

    - - `;*/ - fileList += '' - - showDialog(` - 文件夹 ${folderName}
    - 文件数量: ${fileCount} -
    - `, fileList) - - }, - fail: (xhr) => { - alert('获取文件列表失败:' + xhr.status) - } - } - - await GM_xhr({ ...PROPFIND, path }) - } - - // 下载文件函数 - - // 在 WebDAV 中创建新文件夹 - async function createFolder(folderName) { - const MKCOL = { - method: 'MKCOL', - path: folderName.endsWith('/') ? folderName : folderName + '/', - success: () => { - alert('文件夹创建成功') - }, - fail: (xhr) => { - if (xhr.status === 409) { - // alert('冲突:文件夹可能已经存在或路径不正确'); - } else { - //alert('创建文件夹失败:' + xhr.status); - } - } - } - - await GM_xhr({ ...MKCOL }) - } - - // 上传文件到 WebDAV - - async function uploadFile(folderName, fileName, fileContent) { - // 检查文件是否已存在 - const HEAD = { - method: 'HEAD', - path: folderName + '/' + fileName, - success: () => { - //alert('文件已存在,无需重复上传'); - window.addToLog(fileName + '文件存在', 'info') - // 可以在这里执行文件已存在时的逻辑,比如显示提示信息或执行其他操作 - }, - fail: async (xhr) => { - if (xhr.status === 404) { - // 文件不存在,执行上传操作 - const PUT = { - method: 'PUT', - path: folderName + '/' + fileName, - data: fileContent, - success: () => { - - window.addToLog(fileName + '文件上传成功', 'info') - }, - fail: (xhr) => { - window.addToLog(fileName + '文件上传失败', 'error') - } - } - - await GM_xhr({ ...PUT }) - } else { - window.addToLog(fileName + '文件检查上传失败', 'error') - } - } - } - - await GM_xhr({ ...HEAD }) - } - - // 重命名文件 - async function renameFile(folderName, oldFileName) { - // 弹出对话框让用户输入新文件名 - const newFileName = prompt(`请输入 ${oldFileName} 的新文件名:`) - if (!newFileName) { - alert('未输入新文件名,操作已取消。') - return - } - const encodedOldFileName = encodeURIComponent(oldFileName) // 对旧文件名进行编码 - - const encodedNewFileName = encodeURIComponent(newFileName + '.json') // 对新文件名进行编码 - const sourcePath = folderName + '/' + encodedOldFileName - const destinationPath = folderName + '/' + encodedNewFileName - - const MOVE = { - method: 'MOVE', - path: sourcePath, - headers: { - 'Destination': url + destinationPath, - 'Overwrite': 'T' // 允许覆盖目标文件 - }, - success: () => { - alert(`文件 ${oldFileName} 已成功重命名为 ${newFileName}`) - listFilesAndFolders(folderName) // 刷新文件列表 - }, - fail: (xhr) => { - if (xhr.status === 409) { - alert('冲突:文件名可能已存在或路径不正确') - } else { - alert('重命名文件失败:' + xhr.status) - } - } - } - - await GM_xhr({ ...MOVE }) - } - - - // 删除文件 - async function deleteFile(folderName, fileName) { - let confirmdelete = false - if (deleteSelected) { - confirmdelete = true - } else { - confirmdelete = confirm(`确定要删除文件 ${fileName} 吗?`) - } - - if (confirmdelete) { - try { - await deleteFileFromServer(folderName, fileName) - const fileItem = document.querySelector(`a[onclick*="${fileName}"]`).closest('li') - const checkbox = fileItem.querySelector('input[type="checkbox"]') - if (checkbox && checkbox.checked) { - checkbox.checked = false // 清除选中状态 - checkbox.disabled = true // 禁止操作 - } - markItemDeleted(fileItem) - } catch (error) { - alert('删除文件失败:' + error.message) - } - } - } - function markItemDeleted(fileItem) { - // 将文件名链接标记为已删除 - const fileNameLink = fileItem.querySelector('a') - fileNameLink.style.textDecoration = 'line-through' - fileNameLink.removeAttribute('onclick') - fileNameLink.style.pointerEvents = 'none' // 不可点击 - fileNameLink.style.color = 'gray' // 设置为灰色 - - // 将后续按钮标记为已删除 - const actionButtons = fileItem.querySelectorAll('div > a') - actionButtons.forEach(button => { - button.style.textDecoration = 'line-through' - button.removeAttribute('onclick') - button.style.pointerEvents = 'none' // 不可点击 - button.style.color = 'gray' // 设置为灰色 - }) - } - // 实际删除文件的函数 - async function deleteFileFromServer(folderName, fileName) { - const DELETE = { - method: 'DELETE', - path: folderName + '/' + fileName, - } - - return new Promise((resolve, reject) => { - GM_xhr({ ...DELETE, success: resolve, fail: reject }) - }) - } - - // 检查文件夹是否存在 - async function checkFolderExists(folderName) { - const HEAD = { - method: 'HEAD', - path: folderName.endsWith('/') ? folderName : folderName + '/', - success: (xhr) => { - if (xhr.status === 200) { - // alert('文件夹存在'); - } else if (xhr.status === 404) { - alert('文件夹不存在') - } else { - alert('检查文件夹状态失败:' + xhr.status) - } - }, - fail: (xhr) => { - alert('检查文件夹失败:' + xhr.status) - } - } - - await GM_xhr({ ...HEAD }) - } - - // 下载并展示文件 - async function downloadFile(folderName, fileName, zip = null) { - return new Promise((resolve, reject) => { - // 发起 GET 请求下载文件内容 - const GET = { - method: 'GET', - path: folderName + '/' + fileName, - success: (xhr) => { - const fileContent = xhr.responseText - const jsonData = JSON.parse(fileContent) - const content = generateJsonIndexContent(jsonData) - - if (zip) { - // 如果传入了压缩包实例,则将文件内容添加到压缩包中 - const sanitizedFileName = sanitizeFileName(fileName.replace('.json', '')) + '.html' - zip.file(sanitizedFileName, content) - resolve() - } else { - // 否则直接下载文件 - const blob = new Blob([content], { type: 'text/html' }) - const htmlUrl = URL.createObjectURL(blob) - const a = document.createElement('a') - a.href = htmlUrl - a.download = sanitizeFileName(fileName.replace('.json', '')) + '.html' - a.click() - resolve() - } - }, - fail: (xhr) => { - reject(new Error('下载文件失败:' + xhr.status)) - } - } - - GM_xhr({ ...GET }) - }) - } - - - - async function downloadAndDisplayFile(folderName, fileName) { - const GET = { - method: 'GET', - path: folderName + '/' + fileName, - success: (xhr) => { - try { - const fileContent = xhr.responseText - const jsonData = JSON.parse(fileContent) - const content = generateJsonIndexContent(jsonData) - - // 打开一个新的浏览器标签页显示内容 - const dataUrl = 'data:text/html;charset=utf-8,' + encodeURIComponent(content) - GM_openInTab(dataUrl) - } catch (e) { - alert('解析 JSON 文件失败:' + e.message) - } - }, - fail: (xhr) => { - alert('下载文件失败:' + xhr.status) - } - } - - await GM_xhr({ ...GET }) - } - //我是你爹啊 - // 显示对话框 - function showDialog(title, fileList, folderName) { - // 添加CSS样式 - const style = document.createElement('style') - style.textContent = ` -.overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - z-index: 9998; -} - -.dialog { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #fff; - padding: 20px; - border-radius: 10px; - width: 80%; - max-height: 80%; - overflow-y: auto; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); - z-index: 9999; -} - -.dialog-title { - margin-bottom: 20px; -} - -.dialog-button { - padding: 10px 20px; - border: none; - border-radius: 5px; - cursor: pointer; - margin-bottom: 20px; -} - -.select-button { - background-color: #007BFF; - color: #fff; -} - -.delete-button { - background-color: #dc3545; - color: #fff; - margin-left: 10px; -} - -.select-all-button { - background-color: #28a745; - color: #fff; - margin-left: 10px; -} - -.download-button { - background-color: #007BFF; - color: #fff; - margin-left: 10px; -} - -.search-button { - background-color: #6c757d; - color: #fff; - margin-left: 10px; - border: none; - border-radius: 5px; - cursor: pointer; -} - .close-x-button { - background-color: #6c757d; - color: red; - margin-left: 10px; - border: none; - border-radius: 5px; - cursor: pointer; - } - -.search-button:hover { - background-color: #495057; -} - -.close-button { - background-color: #007BFF; - color: #fff; - margin-top: 20px; -} - -.file-list { - list-style-type: none; - padding: 0; -} - -.file-action { - margin-right: 10px; - float: left; - color: blue; - cursor: pointer; -} - -.file-actions-container { - float: right; -} - -.clear-float { - clear: both; -} - -.file-item { - border-bottom: 1px solid #ddd; - padding: 10px 0; - display: flex; - align-items: center; -} - -.file-checkbox { - margin-right: 10px; -} - -.file-link { - margin-right: 10px; - color: blue; - flex-grow: 1; -} - -.file-actions { - display: flex; - gap: 10px; -} - -.file-action { - color: #007BFF; - cursor: pointer; -} - -.custom-hr { - height: 1px; - background-color: #007BFF; - margin: 20px 0; -} - -.file-action:hover { - text-decoration: underline; -} - -@media (max-width: 600px) { - .dialog-button { - padding: 5px 10px; - font-size: 12px; - margin-bottom: 10px; - } - - .delete-button, - .download-button, - .select-all-button, - .close-x-button, - .search-button { - margin-left: 0; - } - - .button-container { - right: 5px; - } -} - - ` - document.head.appendChild(style) - - // 创建对话框 - const dialog = document.createElement('div') - dialog.className = 'dialog' - // 创建遮罩 - - - function close() { - document.body.removeChild(dialog) - - } - - // 标题 - const titleElement = document.createElement('h1') - titleElement.innerHTML = title - titleElement.className = 'dialog-title' - dialog.appendChild(titleElement) - - - const buttonContainer = document.createElement('div') - const buttonConfigs = [ - { text: '选择列表', className: 'dialog-button select-button', onclick: toggleSelection }, - { text: '搜索列表', className: 'dialog-button search-button', onclick: toggleSearch }, - { text: '关闭窗口', className: 'dialog-button close-x-button', onclick: close }, - { text: '全部选中', className: 'dialog-button select-all-button', onclick: toggleSelectAll }, - { text: '删除选中', className: 'dialog-button delete-button', onclick: deleteSelectedFiles }, - { text: '下载选中', className: 'dialog-button download-button', onclick: downloadSelectedFiles } - - // 可以添加更多按钮配置 - ] - let count = 0 // 计数器,用于控制显示状态 - buttonConfigs.forEach(config => { - const button = document.createElement('button') - button.textContent = config.text - button.className = config.className - button.onclick = config.onclick - - if (count < 3) { - button.style.display = 'inline-block' // 前两个按钮初始可见 - } else { - button.style.display = 'none' // 后面的按钮初始隐藏 - } - - buttonContainer.appendChild(button) - count++ // 每创建一个按钮,计数器加一 - }) - // 将按钮容器添加到对话框中 - dialog.appendChild(buttonContainer) - - // 文件列表 - const fileListContainer = document.createElement('ul') - fileListContainer.className = 'file-list' - fileListContainer.innerHTML = fileList - dialog.appendChild(fileListContainer) - - // 添加到body - - document.body.appendChild(dialog) - let selectButtonInitialTop = 0 - let selectAllButton = document.querySelector('.select-all-button') - let searchButton = document.querySelector('.search-button') - let downloadSelectedButton = document.querySelector('.download-button') - let deleteSelectedButton = document.querySelector('.delete-button') - let selectButton = document.querySelector('.select-button') - let closeXButton = document.querySelector('.close-x-button') - let scrollTimeout = 0 // 定义全局变量存储定时器 - // 记录选择按钮的初始位置 - if (selectButton) { - selectButtonInitialTop = selectButton.offsetTop - } - - // 监听对话框的滚动事件 - dialog.addEventListener('scroll', function () { - clearTimeout(scrollTimeout) - const buttons = [ - { button: selectButton, offsetHeight: true }, - { button: selectAllButton, offsetHeight: true }, - - { button: deleteSelectedButton, offsetHeight: true }, - { button: downloadSelectedButton, offsetHeight: true }, - { button: searchButton, offsetHeight: true }, - { button: closeXButton, offsetHeight: true }, - - - // 添加更多按钮对象,如果有的话 - ] - scrollTimeout = setTimeout(() => { - if (buttons.every(buttonObj => buttonObj.button)) { - const dialogRect = dialog.getBoundingClientRect() - const fileListRect = fileListContainer.getBoundingClientRect() - const newButtonTopBase = Math.max(fileListRect.top, dialog.scrollTop) - let newButtonTop = newButtonTopBase - - for (const { button, offsetHeight } of buttons) { - if (button) { - button.style.position = dialog.scrollTop === 0 ? 'static' : 'absolute' - button.style.top = `${newButtonTop}px` - button.style.right = '10px' - if (offsetHeight) { - newButtonTop += button.offsetHeight - } - } - } - } - }, 300) // 设置 300 毫秒的超时 - }) - - - // 获取所有复选框 - const checkboxes = fileListContainer.querySelectorAll('input[type="checkbox"]') - - // 初始隐藏复选框 - checkboxes.forEach(checkbox => { - checkbox.style.display = 'none' - }) - //选中全部 - function toggleSelectAll() { - const checkboxes = document.querySelectorAll('input[name="fileCheckbox"]') - const allChecked = Array.from(checkboxes).every(checkbox => checkbox.checked) - - checkboxes.forEach(checkbox => { - checkbox.checked = !allChecked - }) - - // 切换按钮文本和背景颜色 - if (allChecked) { - selectAllButton.textContent = '全部选中' - selectAllButton.style.backgroundColor = '' // 恢复默认背景颜色 - } else { - selectAllButton.textContent = '全部取消选中' - selectAllButton.style.backgroundColor = 'red' // 改为红色背景 - } - } - //搜索 - //--------------- - function toggleSearch() { - if (searchButton.textContent === '搜索列表') { - // 如果当前是搜索状态,则进行搜索 - const searchTerm = prompt('请输入搜索内容:') // 弹出输入框等待用户输入搜索内容 - if (searchTerm !== null) { // 用户点击了确定按钮 - filterFiles(searchTerm) // 调用过滤文件函数,传入搜索关键词 - searchButton.textContent = '回到列表' // 将搜索按钮文本改为"Back" - } - } else { - // 如果当前是Back状态,则恢复初始文件列表 - resetFileList() - } - } - - function filterFiles(searchTerm) { - const files = Array.from(fileListContainer.children) // 获取文件列表的所有子元素(文件项) - let matchCount = 0 // 初始化匹配数量为 0 - - // 遍历文件列表,根据搜索关键词过滤显示符合条件的文件项 - files.forEach(file => { - const fileName = file.querySelector('.file-link').textContent.toLowerCase() // 获取文件名并转换为小写 - if (fileName.includes(searchTerm.toLowerCase())) { - file.style.display = '' // 匹配到的文件项显示 - matchCount++ // 匹配数量加一 - } else { - file.style.display = 'none' // 不匹配的文件项隐藏 - } - }) - - // 更新文件数量标签内容 - const fileCountLabel = document.getElementById('fileCountLabel') - if (fileCountLabel) { - fileCountLabel.textContent = `搜索数量: ` - } - - // 更新包裹文件数量的元素内容 - const fileCountElement = document.querySelector('.file-count') - if (fileCountElement) { - fileCountElement.textContent = matchCount - } - } - - - // 恢复初始文件列表函数 - function resetFileList() { - const files = Array.from(fileListContainer.children) // 获取文件列表的所有子元素(文件项) - files.forEach(file => { - file.style.display = '' // 显示所有文件项 - }) - searchButton.textContent = '搜索列表' // 恢复搜索按钮文本为"搜索" - - // 更新文件数量标签内容为 "文件数量:" - const fileCountLabel = document.getElementById('fileCountLabel') - if (fileCountLabel) { - fileCountLabel.textContent = '文件数量:' - } - - // 更新包裹文件数量的元素内容为当前文件数量 - const fileCountElement = document.querySelector('.file-count') - if (fileCountElement) { - const currentFileCount = files.length // 获取当前文件数量 - fileCountElement.textContent = currentFileCount - } - } - //搜索结束 - //--------------- - - // 选择列表 - function toggleSelection() { - - checkboxes.forEach(checkbox => { - checkbox.style.display = checkbox.style.display === 'none' ? 'inline-block' : 'none' - checkbox.checked = false // 取消复选框的选中状态 - }) - - // 切换显示“删除选中”和“下载选中”按钮 - deleteSelectedButton.style.display = deleteSelectedButton.style.display === 'none' ? 'inline-block' : 'none' - downloadSelectedButton.style.display = downloadSelectedButton.style.display === 'none' ? 'inline-block' : 'none' - selectAllButton.style.display = selectAllButton.style.display === 'none' ? 'inline-block' : 'none' - selectButton.textContent = downloadSelectedButton.style.display === 'none' ? '选择列表' : '取消选择' - } - - } - //选中下载 - async function downloadSelectedFiles() { - // 获取所有选中的复选框 - const checkboxes = document.querySelectorAll('input[name="fileCheckbox"]:checked') - if (checkboxes.length === 0) { - showModal('没有选中的文件', 2000) - return - } - // 创建一个 JSZip 实例 - const zip = new JSZip() - - try { - // 遍历所有选中的复选框 - for (const checkbox of checkboxes) { - // 获取文件项信息 - const fileItem = checkbox.closest('li') - const fileName = fileItem.querySelector('a[data-display-name]').dataset.displayName - - // 调用 downloadFile 函数,将文件添加到压缩包中 - await downloadFile(webdavfold, fileName, zip) - } - - // 生成 ZIP 文件 - const zipBlob = await zip.generateAsync({ type: 'blob' }) - - // 创建下载链接并触发下载 - const zipUrl = URL.createObjectURL(zipBlob) - const a = document.createElement('a') - a.href = zipUrl - a.download = 'selected_files.zip' - a.click() - - console.log('压缩包下载完成') - showModal('下载选中完成:', 2000) - } catch (error) { - console.error('下载选中文件失败:', error) - showModal('下载选中文件失败: ' + error.message, 2000) - - } - } - - - //选中删除 - function deleteSelectedFiles() { - // 获取所有选中的复选框 - const selectedCheckboxes = document.querySelectorAll('input[name="fileCheckbox"]:checked') - - if (selectedCheckboxes.length === 0) { - alert('没有选中文件') - return - } - - // 弹出确认删除的提示框 - const confirmDelete = confirm('确定要删除选中的文件吗?') - - if (confirmDelete) { - deleteSelected = true - selectedCheckboxes.forEach(checkbox => { - const fileItem = checkbox.closest('li') - const deleteButton = fileItem.querySelector('a[onclick*="deleteFile"]') - - // 调试日志 - console.log('fileItem:', fileItem) - console.log('deleteButton:', deleteButton) - - // 获取文件名 - const fileName = fileItem.querySelector('a[data-display-name]').dataset.displayName - - // 添加调试日志 - console.log('Deleting file:', fileName) - - // 触发删除按钮的点击事件 - deleteButton.click() - //deleteFile(webdavfold,fileName); - - // 将文件项标记为已删除 - // markItemDeleted(fileItem); - }) - deleteSelected = false - console.log('删除选中文件') - } - } - - - // 将 API 方法公开 - return { - listFilesAndFolders, - updateConfig, - createFolder, - uploadFile, - renameFile, - deleteFile, - downloadFile, - downloadAndDisplayFile, - checkFolderExists - } - })() - - // 将库暴露到全局作用域 - unsafeWindow.WebDAVManager = WebDAVManager - - // 示例用法:列出文件和文件夹,创建新文件夹,上传文件,删除文件 - if (!url || !username || !password) { - console.error('WebDAV 配置更新失败:缺少 URL、用户名或密码') - return - } - WebDAVManager.updateConfig(webdavUrl, webdavUsername, webdavPassword) - WebDAVManager.createFolder(webdavfold) - WebDAVManager.checkFolderExists(webdavfold) - - //WebDAVManager.uploadFile(webdavfold, 'nidie.txt', '这是 example.txt 的内容'); - // WebDAVManager.deleteFile('Missav保存', 'example.txt'); - -})(); - - diff --git a/Script details/no-zh-terminator/README.md b/Script details/no-zh-terminator/README.md deleted file mode 100644 index 6a7d1f4d5..000000000 --- a/Script details/no-zh-terminator/README.md +++ /dev/null @@ -1,199 +0,0 @@ - -
    - - - - - -
    -

    外语终结者

    -

    「 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ 外语终结者 更新日志

    -

    📅 2024/9/24 18:59 - Ver 1.4.0.0

    -

    修复: 修复被翻译的文本过长时翻译后丢失内容的问题

    -
    - -
    - - - -

    使用的Goolge翻译.无法连接Google的请不要下载

    - - - -# 外语终结者 -**版本:** 1.3.98 -**作者:** [人民的勤务员](https://greasyfork.org/zh-CN/users/1169082) -**描述:** 识别非中文字符,如果长度大于5且翻译文本中不含中文,则替换为中文。 - - - - - -## 功能说明 - -本脚本能够识别网页上的非中文字符,并自动翻译为中文。如果检测到字符长度大于5且翻译后的文本中不含中文,则会替换为中文翻译。以下是一些关键功能: - - -- **站点控制:** 用户可以通过菜单命令来控制翻译功能在特定站点的启用或禁用。 - - - -## 使用说明 - -- 在任何网页上自动启用翻译功能。 -- 可通过用户菜单控制翻译功能的启用和禁用。 -- 编辑生效站点列表,定制哪些站点启用翻译功能。 - - - -## 配置和定制 - -用户可以通过油猴菜单命令进行以下操作: - -- **添加/移出翻译:** 选择当前站点是否启用翻译。 -- **编辑生效站点:** 手动编辑站点列表,定制翻译功能。 - - - - -## 使用前: -![bf.png](https://s2.loli.net/2024/08/24/kuC7yUIwPmcRje8.png) - - -## 使用后: -![af.png](https://s2.loli.net/2024/08/24/nYrsvgqNukK1ADZ.png) - - - - - - -> ### 🔍你可能在找自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/no-zh-terminator/no-zh-terminator.user.js b/Script details/no-zh-terminator/no-zh-terminator.user.js deleted file mode 100644 index eb9aa1662..000000000 --- a/Script details/no-zh-terminator/no-zh-terminator.user.js +++ /dev/null @@ -1,267 +0,0 @@ -// ==UserScript== -// @name 外语终结者 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.4.0.0 -// @description 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 -// @license MIT -// @author 人民的勤务员 -// @match *://*/* -// @grant GM_xmlhttpRequest -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAzFBMVEUAAADqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTIn////yp7387vL2zdjvka7uian99ff30dv52eH++Pr64ujwnLXtgKPyrL/rVY32yNT1xtPrXpHrWY764ef99/j++vvqUIr65Or53+bwm7TugqTtfKHteqD1wc/88fT2ytX76Oz41N30u8vxpLvzscPsapdcPEFQAAAAHXRSTlMA2JQoSQiLNvfnfz8Q8My5sW/fX1ROGr+hmCAbpYFuRDsAAAOsSURBVHja7dtrU9pAFMbxVYvi/X7vWQLBEA0QInewivX7f6dqu7OHsJDNMrN7pmN+L8U2/4aHRNrCFlzt/7Br54CtVLq82QX7jrZ3lh/+1PrRseGSKX6cgUvXdyxtGxw7vEid/mNwb4+hE6BwSnT+0b44/j4QORPXhA2gssm+nAOZ8h2eABrbjLEdILRL9xLAF8IRkMCrURkonbAtILVRBOQLmNSED9CwFFDlQgU0ioBvHOB7KWEwHcZOA2pc0X2rEQWgZEQcwLuznnnAR2XRgAtV5SEMWCGIjQNq3ID+F/Vj4gAe9IgD+Iw6oDtyEBD7KcPpC0eJ/QBVL2pwyXcYgMZ1+V1vJAEwbsgVdNYK8KqCx4VBVejmCYBIdg7XCghWX4rruQJ6colTmgCY4m9FEzDkQkgU4Ms5FQFFQBFQBKwVED4KAy60xReGjXwBI08YOL4dq4qAbxTQrgsBTUDzWT40IQmIuNQmCQi5VO+sGTB5WORxIVQegrQnPued4C+pfvE5ifuADk4QZ+gyIOIpbecBIU957jgNwAniDF0G4ARR4jQAJ4gmTgMirmg5DQjl+F7l1bDpMAAn2Ipwhg4DcIJPcQNn6CygKQ8aAlQ1MzQLwB8y3nNNsDL/dLRd/bMdTrDxNbx+1gwtBKT+zMr5UNgIaOEE4VM8twiFjYDm4gFxhmNQ6QMGnjAClGuCkfKUrBXgccFfZ4KQmmHPZoB6FVzysrQdoE4wPcPEfkBHHuylIvVxhtYDIp6pZT0g5JnqTcsBI65RsRzQ4hqJpQCcoM7ENACf1UfQqnCtlnFAoLmQKrG6GZoGTOULu6e/CuZQMQ0Y4s0l/wQfqovkOgamAXFX3l3GunfEGVt/wBkaBsAbPn/ZBZWs0+zjDE0DfC41oowd4G33ednQXnGGhgGQcPTSHvop8fIbseo3nh/TgFGXr1ZbfiNWxThD0wCY5QnACYagUH42NAvoBVkB6gR1W2qbBkDc1wRoJogzxO8wCoA40AQoE9TM0DQAerPuigD1HbH+XpnoA1SjJCugk+f9D0aODQKQ/9ZdEqCdIBrhDI0CUGc4DUIvxReXek94xYFlvMvqiy/8f/+rVioCioAiwEJACUhdk33IBj9mcwOULhi7BELlA8ZKh0DnhH3aAxL4ebsDulNwwv46BSLlLfbPMdA4ZcLBGVD4yaStXXDvuMTQ/RG4dlti80qb4NThOVu043CK5c0rhjDh1s0UNvbw8ErD+famXXsX92zeHzuqGriI4sATAAAAAElFTkSuQmCC -// @iconbak https://immersive-translate.owenyoung.com/favicon.png -// @grant GM_getValue -// @grant GM_addStyle -// @grant GM_setValue -// @grant GM_registerMenuCommand -// @connect translate.googleapis.com -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== -//https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=zh-CN&dj=1&dt=t&dt=rm&q=你好 -(function () { - 'use strict' - // 添加一个对象来跟踪已经翻译过的节点 - var translatedNodes = {} - var skipClasses = GM_getValue('skipClasses') || ['prettyprint', 'linenums', 'lang-js'] - // 创建一个 MutationObserver 实例 - var observer = new MutationObserver(function (mutationsList) { - // 遍历每一个发生变化的 mutation - for (var mutation of mutationsList) { - // 检查是否有子节点被添加到文档中 - //if (mutation.type === 'childList') { - // 遍历新增加的节点 - mutation.addedNodes.forEach(function (addedNode) { - // 如果新增节点是元素节点,可以递归扫描子节点以查找文本内容 - if (addedNode.nodeType === Node.ELEMENT_NODE) { - if (!isInsidePreCode(addedNode)) { - scanTextNodes(addedNode) - } - // scanTextNodes(addedNode); - // console.log("New element node added:", addedNode.nodeName); - } - }) - // } - } - }) - function isInsidePreCode(node) { - while (node) { - if (node.matches && node.matches('pre')) { - return true - } - node = node.parentElement - } - return false - } - // 配置 MutationObserver 监听的目标节点和观察的属性 - var config = { childList: true, subtree: true } - // 开始监听文档的变化 - observer.observe(document.body, config) - // 添加或移除翻译功能 - function toggleTranslation() { - var currentSite = window.location.hostname - var enabledSites = GM_getValue('enabledSites') || [] - if (enabledSites.includes(currentSite)) { - enabledSites = enabledSites.filter(function (site) { - return site !== currentSite - }) - GM_setValue('enabledSites', enabledSites) - Toast('已移出翻译!', 3000, 'rgba(0, 128, 0, 0.7)', '#fff') - location.reload() - } else { - enabledSites.push(currentSite) - GM_setValue('enabledSites', enabledSites) - Toast('已添加翻译!', 3000, 'rgba(0, 128, 0, 0.7)', '#fff') - location.reload() - } - } - var skipClasses = ['prettyprint', 'linenums', 'lang-js'] - function shouldSkipElement(element) { - // 跳过类名包含 "prettyprint"、"linenums" 和 "lang-js" 的元素 - if (element.classList.contains('prettyprint') || - element.classList.contains('linenums') || - element.classList.contains('lang-js')) { - return true - } - // 还可以根据其他需要跳过的条件进行判断 - return false - } - // 编辑生效站点列表 - function editSites() { - // 检查是否已经存在编辑窗口 - if (document.getElementById('editorContainer')) { - return - } - var enabledSites = GM_getValue('enabledSites') || [] - var siteList = enabledSites.join('\n') - var editorWindow = document.createElement('div') - editorWindow.innerHTML = ` -
    -
    - - -
    -
    - ` - document.body.appendChild(editorWindow) - var saveButton = document.getElementById('saveButton') - var cancelButton = document.getElementById('cancelButton') - var siteListTextarea = document.getElementById('siteList') - var overlay = document.getElementById('overlay') - saveButton.addEventListener('click', function () { - var editedSites = siteListTextarea.value.split('\n').map(function (site) { - return site.trim() - }).filter(Boolean) - GM_setValue('enabledSites', editedSites) - Toast('已保存生效站点列表!', 3000, 'rgba(0, 128, 0, 0.7)', '#fff') - document.body.removeChild(editorWindow) - document.body.removeChild(overlay) - }) - cancelButton.addEventListener('click', function () { - document.body.removeChild(editorWindow) - document.body.removeChild(overlay) - }) - } - // 注册油猴菜单命令 - GM_registerMenuCommand(isCurrentSiteEnabled() ? '移出翻译' : '添加翻译', toggleTranslation) - GM_registerMenuCommand('编辑生效站点', editSites) - // GM_registerMenuCommand('开启/关闭高亮和删除功能', toggleMouseListeners) - // 递归遍历给定节点及其后代(深度优先搜索) - function scanTextNodes(node) { - if (!node.parentNode || !document.body.contains(node)) { - return - } - switch (node.nodeType) { - case Node.ELEMENT_NODE: - if (node.tagName.toLowerCase() === 'script' || node.isContentEditable) { - return - } - if (shouldSkipElement(node)) { - return - } - if (shouldTranslateNode(node)) { // 检查是否应该翻译该节点 - node.childNodes.forEach(scanTextNodes) - } - break - case Node.TEXT_NODE: - var text = node.nodeValue.trim() - if (!containsChinese(text) && text.length > 5 && isCurrentSiteEnabled() && shouldTranslateNode(node.parentNode)) { - translateText(node, text) - } - break - } - } - // 检查当前站点是否在生效站点列表中 - function isCurrentSiteEnabled() { - var currentSite = window.location.hostname - var enabledSites = GM_getValue('enabledSites') || [] - return enabledSites.includes(currentSite) - } - // 检查字符串是否含中文或者片假字 - function containsChinese(str) { - // 日文片假字范围:\u3040-\u30FF\uFF66-\uFF9F - var katakanaRegex = /[\u3040-\u30FF\uFF66-\uFF9F]/ - if (katakanaRegex.test(str)) { - return false // 如果包含日文片假字,则返回 false - } - // 中文字符范围:\u4E00-\u9FA5 - var chineseRegex = /[\u4E00-\u9FA5]/ - return chineseRegex.test(str) // 返回是否包含中文字符 - } - // 检查字符串是否含有数字 - function containsNumbers(str) { - return /^\s*[a-zA-Z\u4E00-\u9FA5\s]+\s*$/.test(str) - } - // 检查字符串是否为网址 - function isURL(str) { - return /((https?:\/\/|www\.)[\x21-\x7e]+[\w\/=]|\w([\w._-])+@\w[\w\._-]+\.(com|cn|org|net|info|tv|cc|gov|edu)|(\w[\w._-]+\.(com|cn|org|net|info|tv|cc|gov|edu))(\/[\x21-\x7e]*[\w\/])?|ed2k:\/\/[\x21-\x7e]+\|\/|thunder:\/\/[\x21-\x7e]+=)/gi.test(str) - } - // 检查是否应该翻译该节点 - function shouldTranslateNode(node) { - // 检查是否已经翻译过该节点 - return !translatedNodes[node.textContent] - } - // 翻译文本 - function translateText(node, text) { - // 检查是否已经翻译过该节点 - if (translatedNodes[node.textContent]) { - return - } - var api = 'https://translate.googleapis.com/translate_a/single' - var params = { - client: 'gtx', - dt: 't', - sl: 'auto', - tl: 'zh-CN', - q: text - } - GM_xmlhttpRequest({ - method: 'GET', - url: api + buildQueryString(params), - onload: function (response) { - try { - var data = JSON.parse(response.responseText.replace("'", '\u2019')) - var translatedText = data[0].reduce((acc, item) => acc + item[0], ''); - showTranslation(node, text, translatedText) - // 标记该节点已经翻译过 - translatedNodes[node.textContent] = true - } catch (error) { - console.error('翻译失败:', error) - } - }, - onerror: function (response) { - console.error('请求翻译失败:', response.statusText) - } - }) - } - // 构建查询字符串 - function buildQueryString(params) { - return '?' + Object.keys(params).map(function (key) { - return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]) - }).join('&') - } - // 显示翻译 - // 显示翻译 - function showTranslation(node, originalText, translatedText) { - // 创建 元素和 元素 - var rubyElement = document.createElement('ruby') // 创建包含音标的元素 - var rtElement = document.createElement('rt') // 创建音标元素 - // 设置音标元素的文本内容 - rtElement.textContent = translatedText - // 设置音标元素的字体大小 - rtElement.style.fontSize = 'smaller' - // 设置音标元素的文本左对齐 - rtElement.style.textAlign = 'left' - rtElement.style.color = 'red' // 设置音标元素的颜色 - // 将音标元素添加到包含音标的元素中 - rubyElement.appendChild(rtElement) - // 在中文翻译节点之后插入包含音标的元素 - //node.parentNode.insertBefore(rubyElement, node.nextSibling); - // 将原始的非中文字符串替换为翻译后的文本 - node.textContent = translatedText // 替换原始的非中文字符串 - } - // 主函数 - function main() { - // 在页面加载时进行一次扫描 - scanTextNodes(document.body) - } - // 启动脚本 - main() - // 弹出提示信息 - function Toast(msg, duration, backgroundColor, textColor) { - duration = isNaN(duration) ? 3000 : duration - backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.7)' - textColor = textColor || 'rgb(255, 255, 255)' - var m = document.createElement('div') - m.innerHTML = msg - m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: " + textColor + ";line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 95%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: " + backgroundColor + ";font-size: 16px;" - document.body.appendChild(m) - setTimeout(function () { - var d = 0.5 - m.style.transition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in' - m.style.opacity = '0' - setTimeout(function () { - document.body.removeChild(m) - }, d * 1000) - }, duration) - } -})() diff --git a/Script details/popup-window/Histroy/popup-window-2.5.0.0.user.js b/Script details/popup-window/Histroy/popup-window-2.5.0.0.user.js deleted file mode 100644 index 3d752c7f4..000000000 --- a/Script details/popup-window/Histroy/popup-window-2.5.0.0.user.js +++ /dev/null @@ -1,696 +0,0 @@ -// ==UserScript== -// @name Small Window Preview -// @name:zh-CN 小窗预览 -// @description:zh-CN 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. -// @name:ar معاينة نافذة صغيرة -// @description:ar افتح الرابط في النافذة المنبثقة عند سحب الرابط,وتقديم معاينة قبل الافتتاح,يستخدم Edge تكنولوجيا ما قبل القراءة。وفي نفس الوقت، أضف تأثير الأكريليك خلف النافذة الصغيرة عند فتحها.。 -// @name:bg Визуализация на малък прозорец -// @description:bg Отваряне на връзката в изскачащ прозорец при плъзгане на връзката,и предоставете визуализация преди отваряне,използване Edge технология за предварително четене。В същото време добавете акрилен ефект зад малкото прозорче, когато се отвори.。 -// @name:cs Náhled malého okna -// @description:cs Otevřít odkaz ve vyskakovacím okně při přetahování odkazu,a před otevřením poskytněte náhled,použití Edge technologie předběžného čtení。Zároveň přidejte akrylový efekt za malé okno při jeho otevření.。 -// @name:da Forhåndsvisning af lille vindue -// @description:da Åbn link i pop op-vindue, når du trækker link,og giv en forhåndsvisning inden åbning,bruge Edge pre-reading teknologi。Tilføj samtidig en akryleffekt bag det lille vindue, når det åbnes.。 -// @name:de Kleine Fenstervorschau -// @description:de Öffnen Sie den Link im Popup-Fenster, wenn Sie den Link ziehen,und stellen Sie vor dem Öffnen eine Vorschau bereit,verwenden Edge Vorlesetechnologie。Gleichzeitig entsteht hinter dem kleinen Fenster beim Öffnen ein Acryleffekt.。 -// @name:el Προεπισκόπηση μικρού παραθύρου -// @description:el Άνοιγμα συνδέσμου στο αναδυόμενο παράθυρο κατά τη μεταφορά του συνδέσμου,και παρέχετε μια προεπισκόπηση πριν από το άνοιγμα,χρήση Edge τεχνολογία προ-ανάγνωσης。Ταυτόχρονα, προσθέστε ένα ακρυλικό εφέ πίσω από το μικρό παράθυρο όταν ανοίγει.。 -// @name:en Small window preview -// @description:en Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -// @name:eo Malgranda fenestro antaŭrigardo -// @description:eo Malfermu ligilon en ŝprucfenestro dum trenado de ligilo,kaj provizi antaŭrigardon antaŭ malfermo,uzi Edge antaŭlega teknologio。Samtempe, aldonu akrilan efikon malantaŭ la malgranda fenestro kiam ĝi estas malfermita.。 -// @name:es Vista previa de ventana pequeña -// @description:es Abrir enlace en ventana emergente al arrastrar enlace,y proporcionar una vista previa antes de abrir,usar Edge tecnología de prelectura。Al mismo tiempo, agregue un efecto acrílico detrás de la pequeña ventana cuando esté abierta.。 -// @name:fi Pienen ikkunan esikatselu -// @description:fi Avaa linkki ponnahdusikkunassa, kun vedät linkkiä,ja anna esikatselu ennen avaamista,käyttää Edge esilukutekniikka。Lisää samalla akryyliefekti pienen ikkunan taakse, kun se avataan.。 -// @name:fr Aperçu dans une petite fenêtre -// @description:fr Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 -// @name:he תצוגה מקדימה של חלון קטן -// @description:he פתח קישור בחלון קופץ בעת גרירת קישור,ולספק תצוגה מקדימה לפני הפתיחה,לְהִשְׁתַמֵשׁ Edge טכנולוגיית טרום קריאה。במקביל, הוסף אפקט אקרילי מאחורי החלון הקטן כאשר הוא נפתח.。 -// @name:hr Pregled malog prozora -// @description:hr Otvori vezu u skočnom prozoru prilikom povlačenja veze,i pružiti pregled prije otvaranja,koristiti Edge tehnologija predčitanja。U isto vrijeme dodajte akrilni efekt iza prozora kada se otvori.。 -// @name:hu Kis ablak előnézet -// @description:hu Link megnyitása a felugró ablakban a hivatkozás húzásakor,és adjon előnézetet megnyitás előtt,használat Edge előolvasási technológia。Ugyanakkor a kis ablak mögé, amikor kinyitják, adjunk hozzá akril hatást.。 -// @name:id Pratinjau jendela kecil -// @description:id Buka tautan di jendela popup saat menyeret tautan,dan memberikan pratinjau sebelum dibuka,menggunakan Edge teknologi pra-membaca。Sekaligus menambahkan efek akrilik di belakang jendela kecil saat dibuka.。 -// @name:it Anteprima in una piccola finestra -// @description:it Apri il collegamento nella finestra popup durante il trascinamento del collegamento,e fornire un’anteprima prima dell’apertura,utilizzo Edge tecnologia di prelettura。Allo stesso tempo, aggiungi un effetto acrilico dietro la finestrella quando è aperta.。 -// @name:ja 小さなウィンドウでプレビュー -// @description:ja リンクをドラッグするとポップアップ ウィンドウでリンクが開きます,開く前にプレビューを提供します,使用 Edge 先読み技術。同時に、開いたときの小窓の後ろにアクリル効果を追加します。。 -// @name:ka მცირე ფანჯრის გადახედვა -// @description:ka გახსენით ბმული ამომხტარ ფანჯარაში ბმულის გადატანისას,და მიაწოდეთ გადახედვა გახსნამდე,გამოყენება Edge წინასწარი კითხვის ტექნოლოგია。ამავდროულად დაამატეთ აკრილის ეფექტი პატარა ფანჯრის უკან, როდესაც ის გაიხსნება.。 -// @name:ko 작은 창 미리보기 -// @description:ko 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 -// @name:nl Voorbeeld in klein venster -// @description:nl Open de link in het pop-upvenster tijdens het slepen van de link,en geef een voorbeeld voordat u het opent,gebruik Edge technologie voor voorlezen。Voeg tegelijkertijd een acryleffect toe achter het kleine raam wanneer dit geopend is.。 -// @name:nb Forhåndsvisning av lite vindu -// @description:nb Åpne lenken i popup-vinduet når du drar lenken,og gi en forhåndsvisning før åpning,bruk Edge førleseteknologi。Legg samtidig til en akryleffekt bak det lille vinduet når det åpnes.。 -// @name:pl Mały podgląd okna -// @description:pl Otwórz łącze w wyskakującym oknie podczas przeciągania łącza,i udostępnij podgląd przed otwarciem,używać Edge technologia wstępnego odczytu。Jednocześnie dodaj efekt akrylu za małym oknem, gdy jest ono otwarte.。 -// @name:pt-BR Pré-visualização em janela pequena -// @description:pt-BR Abra o link na janela pop-up ao arrastar o link,e forneça uma prévia antes de abrir,usar Edge tecnologia de pré-leitura。Ao mesmo tempo, adicione um efeito acrílico atrás da pequena janela quando ela for aberta.。 -// @name:ro Previzualizare fereastră mică -// @description:ro Deschideți linkul în fereastra pop-up când trageți linkul,și oferă o previzualizare înainte de deschidere,utilizare Edge tehnologie de pre-lectura。În același timp, adăugați un efect acrilic în spatele ferestrei mici atunci când este deschisă.。 -// @name:ru Предварительный просмотр в небольшом окне -// @description:ru Открыть ссылку во всплывающем окне при перетаскивании ссылки,и предоставьте предварительный просмотр перед открытием,использовать Edge технология предварительного чтения。В то же время добавьте акриловый эффект за маленьким окном, когда оно открыто.。 -// @name:sk Ukážka malého okna -// @description:sk Otvoriť odkaz vo vyskakovacom okne pri presúvaní odkazu,a pred otvorením poskytnite náhľad,použitie Edge technológia predbežného čítania。Zároveň pridajte akrylový efekt za malé okno, keď je otvorené.。 -// @name:sr Преглед малог прозора -// @description:sr Отворите везу у искачућем прозору када превлачите везу,и обезбедите преглед пре отварања,користити Edge технологија предчитања。Истовремено, додајте акрилни ефекат иза малог прозора када се отвори.。 -// @name:sv Litet fönster förhandsvisning -// @description:sv Öppna länken i popup-fönstret när du drar länken,och ge en förhandstitt innan du öppnar,använda Edge förläsningsteknik。Lägg samtidigt till en akryleffekt bakom det lilla fönstret när det öppnas.。 -// @name:th การแสดงตัวอย่างหน้าต่างขนาดเล็ก -// @description:th เปิดลิงก์ในหน้าต่างป๊อปอัปเมื่อลากลิงก์,และแสดงตัวอย่างก่อนเปิด,ใช้ Edge เทคโนโลยีก่อนการอ่าน。ในเวลาเดียวกัน ให้เพิ่มเอฟเฟ็กต์อะคริลิกด้านหลังหน้าต่างเล็กๆ เมื่อเปิดออก。 -// @name:tr Küçük pencere önizlemesi -// @description:tr Bağlantıyı sürüklerken bağlantıyı açılır pencerede aç,ve açmadan önce bir önizleme sağlayın,kullanmak Edge ön okuma teknolojisi。Aynı zamanda küçük pencere açıldığında arkasına akrilik efekti ekleyin.。 -// @name:ug كىچىك كۆزنەك ئالدىن كۆرۈش -// @description:ug ئۇلىنىشنى سۆرىگەندە سەكرىمە كۆزنەكتە ئۇلىنىشنى ئېچىڭ,ۋە ئېچىشتىن بۇرۇن ئالدىن كۆرۈش بىلەن تەمىنلەڭ,use Edge ئالدىن ئوقۇش تېخنىكىسى。شۇنىڭ بىلەن بىر ۋاقىتتا ، ئېچىلغاندا كىچىك كۆزنەكنىڭ كەينىگە ئاكرىللىق ئۈنۈم قوشۇڭ.。 -// @name:uk Попередній перегляд маленького вікна -// @description:uk Відкрити посилання у спливаючому вікні під час перетягування посилання,і надайте попередній перегляд перед відкриттям,використовувати Edge технологія попереднього читання。У той же час додайте акриловий ефект за маленьким вікном, коли воно відкривається.。 -// @name:vi Xem trước cửa sổ nhỏ -// @description:vi Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 -// @name:zh-TW 小窗預覽 -// @description:zh-TW 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -// @name:zh-HK 小窗預覽 -// @description:zh-HK 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -// @name:fr-CA Aperçu dans une petite fenêtre -// @description:fr-CA Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 -// @description Drag a link to open it in a popup window with a preview before opening, using Edge's prerendering technology. Also, add an acrylic effect behind the window when it's open. -// @version 2.5.0.0 -// @author 人民的勤务员 & hiisme -// @match *://*/* -// @grant GM_registerMenuCommand -// @grant GM_unregisterMenuCommand -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_info -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @icon https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-POPUPWINDOW-48.png -// @license MIT -// ==/UserScript== -const translate = (function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const strings = { - 'en': { - actionMode: 'Select Trigger Mode', - actionMode1: 'Long Press', - actionMode2: 'Drag', - actionMode0: 'Both', - longPressDuration: 'Long Press Duration', - blurEnabled: 'Toggle Blur Effect', - blurIntensity: 'Set Blur Intensity', - closeOnMouseClick: 'Toggle Close on Mouse Click', - closeOnScroll: 'Toggle Close on Scroll', - windowWidth: 'Set Window Width', - windowHeight: 'Set Window Height', - setLongPressDuration: 'Enter Long Press Duration (milliseconds):', - setBlurIntensityprompt: 'Enter Blur Intensity (0-10):', - toggleActionMode: 'Select Trigger Mode:\n1: Long Press\n2: Drag\n0: Both', - setWindowSizeprompt: 'Enter Window Size (pixels):', - showCountdown: 'Show countdown progress bar', - saveWindowConfig: 'Record window position', - showCountdowndrag: 'Show drag timeout progress bar', - dragTimeOut: 'Drag timeout duration', - }, - 'zh-CN': { - actionMode: '选择触发方式', - actionMode1: '长按', - actionMode2: '拖拽', - actionMode0: '两者都用', - longPressDuration: '长按触发时间', - blurEnabled: '模糊效果', - blurIntensity: '设置模糊强度', - closeOnMouseClick: '点击关闭小窗', - closeOnScroll: '滚动关闭小窗', - windowWidth: '设置小窗宽度', - windowHeight: '设置小窗高度', - setLongPressDuration: '输入长按触发时间(毫秒):', - setBlurIntensityprompt: '输入模糊强度(0-10):', - toggleActionMode: '选择触发方式:\n1: 长按\n2: 拖拽\n0: 两者都用', - setWindowSizeprompt: '輸入默认小窗口配置(像素):', - showCountdown: '显示长按倒计时进度条', - saveWindowConfig: '记录窗口位置', - showCountdowndrag: '显示拖拽超时进度条', - dragTimeOut: '拖拽超时时间', - }, - 'zh-TW': { - actionMode: '選擇觸發方式', - actionMode1: '長按', - actionMode2: '拖曳', - actionMode0: '兩者都用', - longPressDuration: '長按觸發時間', - blurEnabled: '切換模糊效果', - blurIntensity: '設定模糊強度', - closeOnMouseClick: '切換點擊關閉小窗', - closeOnScroll: '切換滾動關閉小窗', - windowWidth: '設定小窗寬度', - windowHeight: '設定小窗高度', - setLongPressDuration: '輸入長按觸發時間(毫秒):', - setBlurIntensityprompt: '輸入模糊強度(0-10):', - toggleActionMode: '選擇觸發方式:\n1: 長按\n2: 拖曳\n0: 兩者都用', - setWindowSizeprompt: '輸入默认小窗口配置(像素):', - showCountdown: '顯示倒數計時進度條', - saveWindowConfig: '記錄窗口位置', - showCountdowndrag: '顯示拖曳逾時進度條', - dragTimeOut: '拖曳逾時時間', - }, - 'ja': { - actionMode: 'トリガーモードの選択', - actionMode1: '長押し', - actionMode2: 'ドラッグ', - actionMode0: '両方', - longPressDuration: '長押しの時間', - blurEnabled: 'ぼかし効果の切り替え', - blurIntensity: 'ぼかしの強度を設定', - closeOnMouseClick: 'マウスクリックで閉じる切り替え', - closeOnScroll: 'スクロールで閉じる切り替え', - windowWidth: 'ウィンドウ幅の設定', - windowHeight: 'ウィンドウ高さの設定', - setLongPressDuration: '長押しの時間(ミリ秒)を入力:', - setBlurIntensityprompt: 'ぼかしの強度(0-10)を入力:', - toggleActionMode: 'トリガーモードの選択:\n1: 長押し\n2: ドラッグ\n0: 両方', - setWindowSizeprompt: 'ウィンドウサイズ(ピクセル)を入力:', - showCountdown: 'カウントダウン進行状況を表示', - saveWindowConfig: 'ウィンドウの位置を記録', - showCountdowndrag: 'ドラッグタイムアウトの進行状況バーを表示', - dragTimeOut: 'ドラッグタイムアウト時間', - }, - 'vi': { - actionMode: 'Chọn chế độ kích hoạt', - actionMode1: 'Nhấn lâu', - actionMode2: 'Kéo thả', - actionMode0: 'Cả hai', - longPressDuration: 'Thời gian nhấn lâu', - blurEnabled: 'Bật hiệu ứng mờ', - blurIntensity: 'Cài đặt độ mờ', - closeOnMouseClick: 'Bật/tắt đóng cửa sổ bằng nhấp chuột', - closeOnScroll: 'Bật/tắt đóng cửa sổ khi cuộn', - windowWidth: 'Cài đặt chiều rộng cửa sổ', - windowHeight: 'Cài đặt chiều cao cửa sổ', - setLongPressDuration: 'Nhập thời gian nhấn lâu (mili giây):', - setBlurIntensityprompt: 'Nhập độ mờ (0-10):', - toggleActionMode: 'Chọn chế độ kích hoạt:\n1: Nhấn lâu\n2: Kéo thả\n0: Cả hai', - setWindowSizeprompt: 'Nhập kích thước cửa sổ (pixel):', - showCountdown: 'Hiển thị thanh tiến trình đếm ngược', - saveWindowConfig: 'Ghi lại vị trí cửa sổ', - showCountdowndrag: 'Hiển thị thanh tiến trình quá hạn khi kéo thả', - dragTimeOut: 'Thời gian quá hạn khi kéo thả', - } - } - // 返回翻译函数 - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } -}()); -(function () { - 'use strict' - const state = { - isDragging: false, - linkToPreload: null, - popupWindow: null, - acrylicOverlay: null, - progressBar: null, - dragprogressBar: null, - dragintervalId: null, - startTime: null, - } - const windowConfigs = GM_getValue('SitewindowConfigs', [ - ]) - GM_setValue('SitewindowConfigs', windowConfigs - ) - function getWindowConfig() { - const currentHostName = window.location.hostname - // 顶级规则,查找当前域名是否在设置内..... - for (const config of windowConfigs) { - if (typeof config.hostName === 'string') { - if (config.hostName === currentHostName) { - return { - width: config.width || 870, - height: config.height || 530, - top: config.top || (window.screen.height - (config.height || 530)) / 3, - left: config.left || (window.screen.width - (config.width || 870)) / 2 - } - } - } else if (Array.isArray(config.hostName)) { - if (config.hostName.includes(currentHostName)) { - return { - width: config.width || 870, - height: config.height || 530, - top: config.top || (window.screen.height - (config.height || 530)) / 3, - left: config.left || (window.screen.width - (config.width || 870)) / 2 - } - } - } - } - // 二级规则,如果开启了自定义设置,使用自定义. - const customWindowWidth = GM_getValue('custom_windowWidth', 0) - const customWindowHeight = GM_getValue('custom_windowHeight', 0) - const customScreenLeft = GM_getValue('custom_screenLeft', 0) - const customScreenTop = GM_getValue('custom_screenTop', 0) - if (GM_getValue('saveWindowConfig', false)) { - if (customWindowWidth !== 0 && customWindowHeight !== 0 && customScreenLeft !== 0 && customScreenTop !== 0) { - return { - width: customWindowWidth, - height: customWindowHeight, - top: customScreenTop, - left: customScreenLeft - } - } - } - //三级级规则 以上规则全部找不到,窗口使用默认设置. - return { - width: 870, - height: 530, - top: (window.screen.height - 530) / 3, - left: (window.screen.width - 870) / 2 - } - } - const windowConfig = getWindowConfig() - const config = { - windowWidth: windowConfig.width, - windowHeight: windowConfig.height, - screenLeft: windowConfig.left, - screenTop: windowConfig.top, - blurIntensity: GM_getValue('blurIntensity', 5), - blurEnabled: GM_getValue('blurEnabled', true), - closeOnMouseClick: GM_getValue('closeOnMouseClick', true), - closeOnScroll: GM_getValue('closeOnScroll', true), - longPressDuration: GM_getValue('longPressDuration', 500), // 长按持续时间(毫秒) - dragTimeOut: GM_getValue('dragTimeOut', 2000), // 拖拽超时时间(毫秒) - actionMode: GM_getValue('actionMode', 0), // 0: 两者都用, 1: 长按, 2: 拖拽 - showCountdown: GM_getValue('showCountdown', true), // 是否显示倒计时进度条 - showCountdowndrag: GM_getValue('showCountdowndrag', true), // 是否显示拖拽倒计时进度条 - saveWindowConfig: GM_getValue('saveWindowConfig', true)//记住窗口位置,没啥用 - } - function delay(ms) { - return new Promise(resolve => setTimeout(resolve, ms)) - } - async function preloadLink(link, attributes = {}) { - const preloadElement = document.createElement('link') - preloadElement.rel = 'preload' - preloadElement.href = link - preloadElement.as = '*/*' - Object.assign(preloadElement, attributes) - document.head.appendChild(preloadElement) - await delay(1) - } - function createAcrylicOverlay() { - const acrylicOverlay = document.createElement('div') - acrylicOverlay.style.position = 'fixed' - acrylicOverlay.style.top = '0' - acrylicOverlay.style.left = '0' - acrylicOverlay.style.width = '100%' - acrylicOverlay.style.height = '100%' - acrylicOverlay.style.zIndex = '9999' - acrylicOverlay.style.backdropFilter = config.blurEnabled ? `blur(${config.blurIntensity}px)` : 'none' - if (config.closeOnMouseClick) { - acrylicOverlay.addEventListener('click', handleAcrylicOverlayClick) - } - document.body.appendChild(acrylicOverlay) - return acrylicOverlay - } - function handleAcrylicOverlayClick(event) { - if (event.target === state.acrylicOverlay) { - closePopupWindow() - } - } - function removeAcrylicOverlay() { - if (state.acrylicOverlay) { - document.body.removeChild(state.acrylicOverlay) - state.acrylicOverlay = null - } - } - function openPopupWindow(link) { - if (!state.popupWindow || state.popupWindow.closed) { - state.acrylicOverlay = createAcrylicOverlay() - state.popupWindow = window.open(link, '_blank', `width=${config.windowWidth},height=${config.windowHeight},left=${config.screenLeft},top=${config.screenTop}`) - // console.log('Popup window:', state.popupWindow) - state.popupWindowChecker = setInterval(() => { - if (state.popupWindow) {//保证窗口存在时才检测,兼容下原来脚本点击原窗口焦点关闭覆盖层 - if (state.popupWindow.closed) { - removeAcrylicOverlay() - clearInterval(state.popupWindowChecker) - } else { - const width = state.popupWindow.innerWidth - const height = state.popupWindow.innerHeight - const left = state.popupWindow.screenX - const top = state.popupWindow.screenY - /* console.log(`Popup window size: width=${width}, height=${height}`) - console.log(`Popup window position: left=${left}, top=${top}`) */ - if (config.saveWindowConfig) { - saveWindowConfig(width, height, left, top) - } - } - } - }, 200) - } - } - function closePopupWindow() { - if (state.popupWindow && !state.popupWindow.closed) { - state.popupWindow.close() - state.popupWindow = null - removeAcrylicOverlay() - if (state.linkToPreload) { - removePreloadedLink(state.linkToPreload) - } - window.removeEventListener('scroll', closePopupOnScroll) - } - } - function removePreloadedLink(link) { - const preloadElement = document.querySelector(`link[href="${link}"]`) - if (preloadElement) { - document.head.removeChild(preloadElement) - } - } - function closePopupOnScroll() { - if (state.popupWindow && !state.popupWindow.closed) { - closePopupWindow() - } - } - function toggleActionMode() { - const mode = prompt(translate('toggleActionMode'), config.actionMode) - if (mode !== null) { - config.actionMode = parseInt(mode, 10) - GM_setValue('actionMode', config.actionMode) - setupEventListeners() - updateMenuCommands() - } - } - function setLongPressDuration() { - const duration = prompt(translate('setLongPressDuration'), config.longPressDuration) - if (duration !== null) { - config.longPressDuration = duration - GM_setValue('longPressDuration', duration) - updateMenuCommands() - } - } - function setdragTimeOut() { - const duration = prompt(translate('dragTimeOut'), config.dragTimeOut) - if (duration !== null) { - config.dragTimeOut = duration - GM_setValue('dragTimeOut', duration) - updateMenuCommands() - } - } - function toggleBlurEffect() { - config.blurEnabled = !config.blurEnabled - GM_setValue('blurEnabled', config.blurEnabled) - updateMenuCommands() - } - function setBlurIntensity() { - const intensity = prompt(translate('setBlurIntensityprompt'), config.blurIntensity) - if (intensity !== null) { - config.blurIntensity = parseInt(intensity, 10) - GM_setValue('blurIntensity', config.blurIntensity) - updateMenuCommands() - } - } - function toggleCloseOnMouseClick() { - config.closeOnMouseClick = !config.closeOnMouseClick - GM_setValue('closeOnMouseClick', config.closeOnMouseClick) - updateMenuCommands() - } - function toggleCloseOnScroll() { - config.closeOnScroll = !config.closeOnScroll - handleScrollCommand() - GM_setValue('closeOnScroll', config.closeOnScroll) - updateMenuCommands() - } - function handleScrollCommand() { - if (config.closeOnScroll) { - window.addEventListener('scroll', closePopupOnScroll, { once: true }) - } else { - window.removeEventListener('scroll', closePopupOnScroll) - } - } - function setWindowSize(dimension) {//!SECTION-已无实际意义,开启记录窗口位置后,哪里还需要手动配置. - const size = prompt(`${translate('setWindowSizeprompt')} (${dimension})`, config[dimension === 'width' ? 'windowWidth' : 'windowHeight']) - if (size !== null) { - config[dimension === 'width' ? 'windowWidth' : 'windowHeight'] = parseInt(size, 10) - GM_setValue(dimension === 'width' ? 'windowWidth' : 'windowHeight', config[dimension === 'width' ? 'windowWidth' : 'windowHeight']) - updateMenuCommands() - if (state.popupWindow && !state.popupWindow.closed) { - state.popupWindow.resizeTo(config.windowWidth, config.windowHeight) - } - } - } - let registeredMenuCommands = {} - function registerMenuCommand(label, action) { - const menuCommandId = GM_registerMenuCommand(label, action) - registeredMenuCommands[label] = menuCommandId - return menuCommandId - } - function toggleshowCountdown() { - config.showCountdown = !config.showCountdown - GM_setValue('showCountdown', config.showCountdown) - updateMenuCommands() - } - function saveWindowConfig(width, height, left, top) { - config.windowWidth = width - config.windowHeight = height - config.screenLeft = left - config.screenTop = top - const currentHostName = window.location.hostname - let windowConfigs = GM_getValue('SitewindowConfigs', [] - ) - let configUpdated = false - for (let config of windowConfigs) { - if (typeof config.hostName === 'string') { - if (config.hostName === currentHostName) { - config.width = width - config.height = height - config.top = top - config.left = left - configUpdated = true - break - } - } else if (Array.isArray(config.hostName)) { - if (config.hostName.includes(currentHostName)) { - config.width = width - config.height = height - config.top = top - config.left = left - configUpdated = true - break - } - } - } - if (!configUpdated) { - windowConfigs.push({ - name: `${currentHostName}`, - hostName: currentHostName, - width: width, - height: height, - top: top, - left: left - }) - } - //ANCHOR - 开启记录窗口位置时.无法找到配置时,会推送一个新配置,当其他的网站没有自定义配置的也同样使用这一次的窗口.大小. - GM_setValue('SitewindowConfigs', windowConfigs) - GM_setValue('custom_windowWidth', width) - GM_setValue('custom_windowHeight', height) - GM_setValue('custom_screenLeft', left) - GM_setValue('custom_screenTop', top) - updateMenuCommands() - } - function toggleSwitch(property) { - if (property in config) { - config[property] = !config[property] - GM_setValue(property, config[property]) - updateMenuCommands() - } - } - function updateMenuCommands() { - const menuCommands = [ - { label: translate('actionMode') + ` (${config.actionMode === 1 ? translate('actionMode1') : config.actionMode === 2 ? translate('actionMode2') : translate('actionMode0')})`, action: toggleActionMode }, - { label: translate('longPressDuration') + ` (${config.longPressDuration}ms)`, action: setLongPressDuration }, - { label: translate('dragTimeOut') + ` (${config.dragTimeOut}ms)`, action: setdragTimeOut }, - { label: translate('blurEnabled') + ` (${config.blurEnabled ? '✅' : '❌'})`, action: toggleBlurEffect }, - { label: translate('blurIntensity') + ` (${config.blurIntensity})`, action: setBlurIntensity }, - { label: translate('closeOnMouseClick') + ` (${config.closeOnMouseClick ? '✅' : '❌'})`, action: toggleCloseOnMouseClick }, - { label: translate('closeOnScroll') + ` (${config.closeOnScroll ? '✅' : '❌'})`, action: toggleCloseOnScroll }, - /* { label: translate('windowWidth') + ` (${config.windowWidth})`, action: () => { setWindowSize('width') } },//!SECTION -已无实际意义,脚本不会使用 - { label: translate('windowHeight') + ` (${config.windowHeight})`, action: () => { setWindowSize('height') } },//!SECTION -已无实际意义,脚本不会使用 */ - { label: translate('showCountdown') + ` (${config.showCountdown ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdown') } }, - { label: translate('showCountdowndrag') + ` (${config.showCountdowndrag ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdowndrag') } }, - { label: translate('saveWindowConfig') + ` (${config.saveWindowConfig ? '✅' : '❌'})`, action: () => { toggleSwitch('saveWindowConfig') } }, - ] - for (const label in registeredMenuCommands) { - GM_unregisterMenuCommand(registeredMenuCommands[label]) - } - registeredMenuCommands = {} - menuCommands.forEach((command) => { - registerMenuCommand(command.label, command.action) - }) - } - updateMenuCommands() - function toTitleCase(str) { - return str.replace(/\w\S*/g, (txt) => { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() }) - } - function setupEventListeners() { - // 移除旧的事件监听器 - document.body.removeEventListener('dragstart', handleDragStart) - document.body.removeEventListener('dragend', handleDragEnd) - document.body.removeEventListener('mousedown', handleMouseDown) - document.body.removeEventListener('mouseup', handleMouseUp) - document.body.removeEventListener('mouseleave', handleMouseLeave) - document.body.removeEventListener('wheel', handleWheel) - document.body.removeEventListener('click', handleClick) - // 根据 actionMode 配置添加事件监听器 - if (config.actionMode === 1 || config.actionMode === 0) { - document.body.addEventListener('mousedown', handleMouseDown) - document.body.addEventListener('mouseup', handleMouseUp) - document.body.addEventListener('mouseleave', handleMouseLeave) - } - if (config.actionMode === 2 || config.actionMode === 0) { - document.body.addEventListener('dragstart', handleDragStart) - document.body.addEventListener('dragend', handleDragEnd) - } - document.body.addEventListener('wheel', handleWheel) - document.body.addEventListener('click', handleClick) - } - // 事件处理函数 - function handleDragStart(event) { - const linkElement = event.target.tagName === 'A' ? event.target : event.target.closest('a') - if (linkElement) { - if (config.showCountdowndrag && config.dragTimeOut != 0) {//超时选项,只要 - state.dragprogressBar = createProgressBar('#ff9800', '#f44336') - state.dragprogressBar.style.display = 'block' - state.dragprogressBar.style.width = '5%' - state.startTime = Date.now() - clearInterval(state.dragintervalId) - state.dragintervalId = setInterval(function () { - const elapsed = Date.now() - state.startTime - const progress = Math.max(5 - (elapsed / config.dragTimeOut) * 5, 0) // 减小你妈 - state.dragprogressBar.style.width = `${progress}%` - if (progress <= 0) {// 超时结束 - state.isDragging = false - clearInterval(state.dragintervalId) - state.dragprogressBar.style.display = 'none' - } - }, 100) // - window.addEventListener('drag', function (event) { - // 保证进度条位置处于貂毛鼠标的下面 - const x = event.clientX - const y = event.clientY + 30 // 偏移 - state.dragprogressBar.style.left = `${x}px` - state.dragprogressBar.style.top = `${y}px` - }) - } - const link = linkElement.href - state.isDragging = true - state.linkToPreload = link - preloadLink(state.linkToPreload, { importance: 'high' }).then(() => { - if (config.closeOnScroll) { - window.addEventListener('scroll', closePopupOnScroll, { once: true }) - } - }) - } - } - function handleDragEnd(event) { - const x = event.clientX - const y = event.clientY - console.log(x, y) - const elementAtPoint = document.elementFromPoint(x, y) - if (state.dragprogressBar) {//显示超时进度条时 - clearInterval(state.dragintervalId) - state.dragprogressBar.style.display = 'none' - } - if (y < 1) {//接近顶部 - state.isDragging = false - } - //if (!document.body.contains(elementAtPoint)) state.isDragging = false//移出到系统 - if (state.isDragging && state.linkToPreload) { - state.isDragging = false - openPopupWindow(state.linkToPreload) - state.linkToPreload = null - } - } - function createProgressBar(colorStart = '#4caf50', colorEnd = '#81c784') { - if (!config.showCountdown && !config.showCountdowndrag) return null - const progressBar = document.createElement('div') - Object.assign(progressBar.style, { - position: 'fixed', - height: '6px', - width: '5%', - background: `linear-gradient(to right, ${colorStart}, ${colorEnd})`, - borderRadius: '3px', - boxShadow: '0 2px 5px rgba(0, 0, 0, 0.3)', - zIndex: '9999', - }) - document.body.appendChild(progressBar) - return progressBar - } - let mouseDownTime = 0 - function handleMouseDown(event) { - const linkElement = event.target.tagName === 'A' ? event.target : event.target.closest('a') - if (linkElement) { - let isDragging = false - let isMouseDown = true - const onMouseMove = () => { - isDragging = true - clearTimeout(state.pressTimer) - progressBarremove() - } - const onMouseUp = () => { - isMouseDown = false - clearTimeout(state.pressTimer) - progressBarremove() - } - document.addEventListener('dragstart', onMouseMove, { once: true }) - document.addEventListener('mouseup', onMouseUp, { once: true }) - document.addEventListener('keydown', onMouseUp, { once: true }) - setTimeout(() => { // 按下100ms后显示倒计时,避免点击就显示 - if (!isDragging && isMouseDown) { // 确保没有拖拽并且鼠标仍按下 - state.progressBar = createProgressBar() - if (state.progressBar) { - const transitionDuration = Math.max(config.longPressDuration - 100, 0) + 'ms' - state.progressBar.style.left = `${event.clientX}px` // 设置进度条位置为鼠标下方 - state.progressBar.style.top = `${event.clientY + 20}px` // 偏移一点,避免挡住鼠标 - state.progressBar.style.transition = `width ${transitionDuration} linear` - requestAnimationFrame(() => { - state.progressBar.style.width = '0' - }) - } - } - }, 100) - state.pressTimer = setTimeout(() => { - if (!isDragging && isMouseDown) { // 确保没有拖拽并且鼠标仍按下 - const link = linkElement.href - state.linkToPreload = link - preloadLink(state.linkToPreload, { importance: 'high' }).then(() => { - openPopupWindow(state.linkToPreload) - }) - } - progressBarremove() - }, config.longPressDuration) - } - } - function handleMouseUp() { - clearTimeout(state.pressTimer) - state.pressTimer = null - progressBarremove() - } - function progressBarremove() { - if (state.progressBar) { - state.progressBar.remove() - } - } - function handleMouseLeave() { - clearTimeout(state.pressTimer) - state.pressTimer = null - } - function handleWheel() { - if (config.closeOnScroll) { - closePopupWindow() - } - } - function handleClick(event) { - if (event.target === state.acrylicOverlay) { - removeAcrylicOverlay() - } - } - setupEventListeners() -})() diff --git a/Script details/popup-window/Histroy/popup-window.user-2.5.1.2.js b/Script details/popup-window/Histroy/popup-window.user-2.5.1.2.js deleted file mode 100644 index 644c1d3a5..000000000 --- a/Script details/popup-window/Histroy/popup-window.user-2.5.1.2.js +++ /dev/null @@ -1,742 +0,0 @@ -// ==UserScript== -// @name Small Window Preview -// @name:zh-CN 小窗预览 -// @description:zh-CN 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. -// @name:zh 小窗预览 -// @description:zh 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. -// @name:ar معاينة نافذة صغيرة -// @description:ar افتح الرابط في النافذة المنبثقة عند سحب الرابط,وتقديم معاينة قبل الافتتاح,يستخدم Edge تكنولوجيا ما قبل القراءة。وفي نفس الوقت، أضف تأثير الأكريليك خلف النافذة الصغيرة عند فتحها.。 -// @name:bg Визуализация на малък прозорец -// @description:bg Отваряне на връзката в изскачащ прозорец при плъзгане на връзката,и предоставете визуализация преди отваряне,използване Edge технология за предварително четене。В същото време добавете акрилен ефект зад малкото прозорче, когато се отвори.。 -// @name:cs Náhled malého okna -// @description:cs Otevřít odkaz ve vyskakovacím okně při přetahování odkazu,a před otevřením poskytněte náhled,použití Edge technologie předběžného čtení。Zároveň přidejte akrylový efekt za malé okno při jeho otevření.。 -// @name:da Forhåndsvisning af lille vindue -// @description:da Åbn link i pop op-vindue, når du trækker link,og giv en forhåndsvisning inden åbning,bruge Edge pre-reading teknologi。Tilføj samtidig en akryleffekt bag det lille vindue, når det åbnes.。 -// @name:de Kleine Fenstervorschau -// @description:de Öffnen Sie den Link im Popup-Fenster, wenn Sie den Link ziehen,und stellen Sie vor dem Öffnen eine Vorschau bereit,verwenden Edge Vorlesetechnologie。Gleichzeitig entsteht hinter dem kleinen Fenster beim Öffnen ein Acryleffekt.。 -// @name:el Προεπισκόπηση μικρού παραθύρου -// @description:el Άνοιγμα συνδέσμου στο αναδυόμενο παράθυρο κατά τη μεταφορά του συνδέσμου,και παρέχετε μια προεπισκόπηση πριν από το άνοιγμα,χρήση Edge τεχνολογία προ-ανάγνωσης。Ταυτόχρονα, προσθέστε ένα ακρυλικό εφέ πίσω από το μικρό παράθυρο όταν ανοίγει.。 -// @name:en Small window preview -// @description:en Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -// @name:eo Malgranda fenestro antaŭrigardo -// @description:eo Malfermu ligilon en ŝprucfenestro dum trenado de ligilo,kaj provizi antaŭrigardon antaŭ malfermo,uzi Edge antaŭlega teknologio。Samtempe, aldonu akrilan efikon malantaŭ la malgranda fenestro kiam ĝi estas malfermita.。 -// @name:es Vista previa de ventana pequeña -// @description:es Abrir enlace en ventana emergente al arrastrar enlace,y proporcionar una vista previa antes de abrir,usar Edge tecnología de prelectura。Al mismo tiempo, agregue un efecto acrílico detrás de la pequeña ventana cuando esté abierta.。 -// @name:fi Pienen ikkunan esikatselu -// @description:fi Avaa linkki ponnahdusikkunassa, kun vedät linkkiä,ja anna esikatselu ennen avaamista,käyttää Edge esilukutekniikka。Lisää samalla akryyliefekti pienen ikkunan taakse, kun se avataan.。 -// @name:fr Aperçu dans une petite fenêtre -// @description:fr Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 -// @name:he תצוגה מקדימה של חלון קטן -// @description:he פתח קישור בחלון קופץ בעת גרירת קישור,ולספק תצוגה מקדימה לפני הפתיחה,לְהִשְׁתַמֵשׁ Edge טכנולוגיית טרום קריאה。במקביל, הוסף אפקט אקרילי מאחורי החלון הקטן כאשר הוא נפתח.。 -// @name:hr Pregled malog prozora -// @description:hr Otvori vezu u skočnom prozoru prilikom povlačenja veze,i pružiti pregled prije otvaranja,koristiti Edge tehnologija predčitanja。U isto vrijeme dodajte akrilni efekt iza prozora kada se otvori.。 -// @name:hu Kis ablak előnézet -// @description:hu Link megnyitása a felugró ablakban a hivatkozás húzásakor,és adjon előnézetet megnyitás előtt,használat Edge előolvasási technológia。Ugyanakkor a kis ablak mögé, amikor kinyitják, adjunk hozzá akril hatást.。 -// @name:id Pratinjau jendela kecil -// @description:id Buka tautan di jendela popup saat menyeret tautan,dan memberikan pratinjau sebelum dibuka,menggunakan Edge teknologi pra-membaca。Sekaligus menambahkan efek akrilik di belakang jendela kecil saat dibuka.。 -// @name:it Anteprima in una piccola finestra -// @description:it Apri il collegamento nella finestra popup durante il trascinamento del collegamento,e fornire un’anteprima prima dell’apertura,utilizzo Edge tecnologia di prelettura。Allo stesso tempo, aggiungi un effetto acrilico dietro la finestrella quando è aperta.。 -// @name:ja 小さなウィンドウでプレビュー -// @description:ja リンクをドラッグするとポップアップ ウィンドウでリンクが開きます,開く前にプレビューを提供します,使用 Edge 先読み技術。同時に、開いたときの小窓の後ろにアクリル効果を追加します。。 -// @name:ka მცირე ფანჯრის გადახედვა -// @description:ka გახსენით ბმული ამომხტარ ფანჯარაში ბმულის გადატანისას,და მიაწოდეთ გადახედვა გახსნამდე,გამოყენება Edge წინასწარი კითხვის ტექნოლოგია。ამავდროულად დაამატეთ აკრილის ეფექტი პატარა ფანჯრის უკან, როდესაც ის გაიხსნება.。 -// @name:ko 작은 창 미리보기 -// @description:ko 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 -// @name:nl Voorbeeld in klein venster -// @description:nl Open de link in het pop-upvenster tijdens het slepen van de link,en geef een voorbeeld voordat u het opent,gebruik Edge technologie voor voorlezen。Voeg tegelijkertijd een acryleffect toe achter het kleine raam wanneer dit geopend is.。 -// @name:nb Forhåndsvisning av lite vindu -// @description:nb Åpne lenken i popup-vinduet når du drar lenken,og gi en forhåndsvisning før åpning,bruk Edge førleseteknologi。Legg samtidig til en akryleffekt bak det lille vinduet når det åpnes.。 -// @name:pl Mały podgląd okna -// @description:pl Otwórz łącze w wyskakującym oknie podczas przeciągania łącza,i udostępnij podgląd przed otwarciem,używać Edge technologia wstępnego odczytu。Jednocześnie dodaj efekt akrylu za małym oknem, gdy jest ono otwarte.。 -// @name:pt-BR Pré-visualização em janela pequena -// @description:pt-BR Abra o link na janela pop-up ao arrastar o link,e forneça uma prévia antes de abrir,usar Edge tecnologia de pré-leitura。Ao mesmo tempo, adicione um efeito acrílico atrás da pequena janela quando ela for aberta.。 -// @name:ro Previzualizare fereastră mică -// @description:ro Deschideți linkul în fereastra pop-up când trageți linkul,și oferă o previzualizare înainte de deschidere,utilizare Edge tehnologie de pre-lectura。În același timp, adăugați un efect acrilic în spatele ferestrei mici atunci când este deschisă.。 -// @name:ru Предварительный просмотр в небольшом окне -// @description:ru Открыть ссылку во всплывающем окне при перетаскивании ссылки,и предоставьте предварительный просмотр перед открытием,использовать Edge технология предварительного чтения。В то же время добавьте акриловый эффект за маленьким окном, когда оно открыто.。 -// @name:sk Ukážka malého okna -// @description:sk Otvoriť odkaz vo vyskakovacom okne pri presúvaní odkazu,a pred otvorením poskytnite náhľad,použitie Edge technológia predbežného čítania。Zároveň pridajte akrylový efekt za malé okno, keď je otvorené.。 -// @name:sr Преглед малог прозора -// @description:sr Отворите везу у искачућем прозору када превлачите везу,и обезбедите преглед пре отварања,користити Edge технологија предчитања。Истовремено, додајте акрилни ефекат иза малог прозора када се отвори.。 -// @name:sv Litet fönster förhandsvisning -// @description:sv Öppna länken i popup-fönstret när du drar länken,och ge en förhandstitt innan du öppnar,använda Edge förläsningsteknik。Lägg samtidigt till en akryleffekt bakom det lilla fönstret när det öppnas.。 -// @name:th การแสดงตัวอย่างหน้าต่างขนาดเล็ก -// @description:th เปิดลิงก์ในหน้าต่างป๊อปอัปเมื่อลากลิงก์,และแสดงตัวอย่างก่อนเปิด,ใช้ Edge เทคโนโลยีก่อนการอ่าน。ในเวลาเดียวกัน ให้เพิ่มเอฟเฟ็กต์อะคริลิกด้านหลังหน้าต่างเล็กๆ เมื่อเปิดออก。 -// @name:tr Küçük pencere önizlemesi -// @description:tr Bağlantıyı sürüklerken bağlantıyı açılır pencerede aç,ve açmadan önce bir önizleme sağlayın,kullanmak Edge ön okuma teknolojisi。Aynı zamanda küçük pencere açıldığında arkasına akrilik efekti ekleyin.。 -// @name:ug كىچىك كۆزنەك ئالدىن كۆرۈش -// @description:ug ئۇلىنىشنى سۆرىگەندە سەكرىمە كۆزنەكتە ئۇلىنىشنى ئېچىڭ,ۋە ئېچىشتىن بۇرۇن ئالدىن كۆرۈش بىلەن تەمىنلەڭ,use Edge ئالدىن ئوقۇش تېخنىكىسى。شۇنىڭ بىلەن بىر ۋاقىتتا ، ئېچىلغاندا كىچىك كۆزنەكنىڭ كەينىگە ئاكرىللىق ئۈنۈم قوشۇڭ.。 -// @name:uk Попередній перегляд маленького вікна -// @description:uk Відкрити посилання у спливаючому вікні під час перетягування посилання,і надайте попередній перегляд перед відкриттям,використовувати Edge технологія попереднього читання。У той же час додайте акриловий ефект за маленьким вікном, коли воно відкривається.。 -// @name:vi Xem trước cửa sổ nhỏ -// @description:vi Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 -// @name:zh-TW 小窗預覽 -// @description:zh-TW 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -// @name:zh-HK 小窗預覽 -// @description:zh-HK 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -// @name:fr-CA Aperçu dans une petite fenêtre -// @description:fr-CA Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 -// @description Drag a link to open it in a popup window with a preview before opening, using Edge's prerendering technology. Also, add an acrylic effect behind the window when it's open. -// @version 2.5.1.2 -// @author 人民的勤务员 & hiisme -// @match *://*/* -// @grant GM_registerMenuCommand -// @grant GM_unregisterMenuCommand -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_info -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEYklEQVR4nO3VW0yTZxzH8QI9ACbb4g3J3OR2Zm64uaVXu/BChkMUhAotUlrKUQUqqLhDRnDJLnZQoLvYxRLneQSB0tLSw1ugnE9KC7y05QwFVDxBdt/fUhhb2dS97+sLvEv4J89NE5rP98mfpzze9mzP9rxwxNe84shLrjnRhQFfUHE/gov6EFzUg+Az3QhRdyGksAMhBe3g57eBn28H/3QL+KeaIThpgyCPgCDXCmGuGcIcE4TZjRBlGSDKbIBIpYdIVY/QDC1ClXUIVdQgLP0OwuTVCJNXITztN7ymrPJFFusXPv6uNYbHZMS3vOLQr5y+oHMDCDp7F5sdEH7iNsJTb+INxW3f/m9bxbQDdl92z/HOO7DVATtkNxBZpPPSDhB+OejjSsDr8ls+2gG8Eie4ErBDeh20/V+MLONzchkXyCWUDC+hZOgZzg89xbnBpzg7+ATFzicocjxeOWcGHkE98AiF9xZRcG8R+XcfIr//IU73P8Cpvgc42Xcfeb33kduzsHJyuueR3T2PrK45ZHbOQdXpharDi4yOWSjbZ6Fom0F62zTSW6chb51Cmn2KfgCX8CdaJukHrMc/21J8KpMArtx8asskZM0TDAI4hJcxCeASXto0Tj+AS/gUG4MALuGTbWP0A7iEP04wCOASXkKMMgvgCl5iZRDAJXySxUM/gEv4RCYBXMIfM7vpB3AJn8Ak4J/4vJ555HTOIrt9ZuVktU0js20aqtYpZNinoLRPQtkyCUXLBNLtk6zi400uBgGBN9+7ALlpCOKfDfjoJx32a1bPh5p6fFD599n35zlwlUCqhWQNH88kIHBtcrq8OHTTDoFaQ/kc+JVAWvM4K/ijjSP0A9btfPc8MppGEVVeSzlgX6UWqbYxVvBHjAwC/vUP2zUHhc2DqApqEVEVWsiIUVbwcUaSfsBzX5tOL+RWN/ZeqqEQUAcpMcoK/rCBQcDznkpV+yxkRgd2f3ODUkCK1cMKPtYwzCyAKd5/3i9fDWADH9swRD/gVfBrAckWNyv4z/QMAl4FvxpQi+NmNyv4Q/pB+gFreKnBgbcvXn8pdlfZNez5vnrdZ+9droXE7GIFH6NjEKBqn6F087vKriJB2w+JwYl3f7yzLiDJ5GIF/6nOST9AanD8TuXmj2n7ILWNQtY0DkmDA3t+qP7rdyDRNMIKPrreuURPn18hivj6yiJl/NpTSYwhUT+AT36xIK62F0kWNxt4HNQ6qqjjS0uF/EKNjsrarMMHvDZJFhckFg8r+Git43FMjfOtTcOztfMHtc5l/82ziheoK0280iuhgX+WQkxEJNvGSNr4hmHPEa3rTeqrsQH4wAiJ1UP+L/GBEYlmN7m5eB6Px1dr6v7jV9Xof5WofFccMRGRYHaRm4b3D1+tmWEDvzZxxGBEvMlFbgreP8KiyncEhZoFJmvzsoijjSPkhuNfHMEcvzYS0/DOw0byYqyBLIs2De/kbfQICsr3+teJX1hZS3dttnL+AHpvNumR+ceNAAAAAElFTkSuQmCC -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-POPUPWINDOW-48.png -// @license MIT -// ==/UserScript== - -(function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const translations = { - 'en': { - actionMode: 'Select Trigger Mode', - actionMode1: 'Long Press', - actionMode2: 'Drag', - actionMode0: 'Both', - longPressDuration: 'Long Press Duration', - blurEnabled: 'Toggle Blur Effect', - blurIntensity: 'Set Blur Intensity', - closeOnMouseClick: 'Toggle Close on Mouse Click', - closeOnScroll: 'Toggle Close on Scroll', - windowWidth: 'Set Window Width', - windowHeight: 'Set Window Height', - setLongPressDuration: 'Enter Long Press Duration (milliseconds):', - setBlurIntensityprompt: 'Enter Blur Intensity (0-10):', - toggleActionMode: 'Select Trigger Mode:\n1: Long Press\n2: Drag\n0: Both', - setWindowSizeprompt: 'Enter Window Size (pixels):', - showCountdown: 'Show countdown progress bar', - saveWindowConfig: 'Record window position', - showCountdowndrag: 'Show drag timeout progress bar', - dragTimeOut: 'Drag timeout duration', - }, - 'zh-CN,zh,zh-SG': { - actionMode: '选择触发方式', - actionMode1: '长按', - actionMode2: '拖拽', - actionMode0: '两者都用', - longPressDuration: '长按触发时间', - blurEnabled: '模糊效果', - blurIntensity: '设置模糊强度', - closeOnMouseClick: '点击关闭小窗', - closeOnScroll: '滚动关闭小窗', - windowWidth: '设置小窗宽度', - windowHeight: '设置小窗高度', - setLongPressDuration: '输入长按触发时间(毫秒):', - setBlurIntensityprompt: '输入模糊强度(0-10):', - toggleActionMode: '选择触发方式:\n1: 长按\n2: 拖拽\n0: 两者都用', - setWindowSizeprompt: '輸入默认小窗口配置(像素):', - showCountdown: '显示长按倒计时进度条', - saveWindowConfig: '记录窗口位置', - showCountdowndrag: '显示拖拽超时进度条', - dragTimeOut: '拖拽超时时间', - }, - 'zh-TW,zh-HK,zh-MO': { - actionMode: '選擇觸發方式', - actionMode1: '長按', - actionMode2: '拖曳', - actionMode0: '兩者都用', - longPressDuration: '長按觸發時間', - blurEnabled: '切換模糊效果', - blurIntensity: '設定模糊強度', - closeOnMouseClick: '切換點擊關閉小窗', - closeOnScroll: '切換滾動關閉小窗', - windowWidth: '設定小窗寬度', - windowHeight: '設定小窗高度', - setLongPressDuration: '輸入長按觸發時間(毫秒):', - setBlurIntensityprompt: '輸入模糊強度(0-10):', - toggleActionMode: '選擇觸發方式:\n1: 長按\n2: 拖曳\n0: 兩者都用', - setWindowSizeprompt: '輸入默认小窗口配置(像素):', - showCountdown: '顯示倒數計時進度條', - saveWindowConfig: '記錄窗口位置', - showCountdowndrag: '顯示拖曳逾時進度條', - dragTimeOut: '拖曳逾時時間', - }, - 'ja': { - actionMode: 'トリガーモードの選択', - actionMode1: '長押し', - actionMode2: 'ドラッグ', - actionMode0: '両方', - longPressDuration: '長押しの時間', - blurEnabled: 'ぼかし効果の切り替え', - blurIntensity: 'ぼかしの強度を設定', - closeOnMouseClick: 'マウスクリックで閉じる切り替え', - closeOnScroll: 'スクロールで閉じる切り替え', - windowWidth: 'ウィンドウ幅の設定', - windowHeight: 'ウィンドウ高さの設定', - setLongPressDuration: '長押しの時間(ミリ秒)を入力:', - setBlurIntensityprompt: 'ぼかしの強度(0-10)を入力:', - toggleActionMode: 'トリガーモードの選択:\n1: 長押し\n2: ドラッグ\n0: 両方', - setWindowSizeprompt: 'ウィンドウサイズ(ピクセル)を入力:', - showCountdown: 'カウントダウン進行状況を表示', - saveWindowConfig: 'ウィンドウの位置を記録', - showCountdowndrag: 'ドラッグタイムアウトの進行状況バーを表示', - dragTimeOut: 'ドラッグタイムアウト時間', - }, - 'vi': { - actionMode: 'Chọn chế độ kích hoạt', - actionMode1: 'Nhấn lâu', - actionMode2: 'Kéo thả', - actionMode0: 'Cả hai', - longPressDuration: 'Thời gian nhấn lâu', - blurEnabled: 'Bật hiệu ứng mờ', - blurIntensity: 'Cài đặt độ mờ', - closeOnMouseClick: 'Bật/tắt đóng cửa sổ bằng nhấp chuột', - closeOnScroll: 'Bật/tắt đóng cửa sổ khi cuộn', - windowWidth: 'Cài đặt chiều rộng cửa sổ', - windowHeight: 'Cài đặt chiều cao cửa sổ', - setLongPressDuration: 'Nhập thời gian nhấn lâu (mili giây):', - setBlurIntensityprompt: 'Nhập độ mờ (0-10):', - toggleActionMode: 'Chọn chế độ kích hoạt:\n1: Nhấn lâu\n2: Kéo thả\n0: Cả hai', - setWindowSizeprompt: 'Nhập kích thước cửa sổ (pixel):', - showCountdown: 'Hiển thị thanh tiến trình đếm ngược', - saveWindowConfig: 'Ghi lại vị trí cửa sổ', - showCountdowndrag: 'Hiển thị thanh tiến trình quá hạn khi kéo thả', - dragTimeOut: 'Thời gian quá hạn khi kéo thả', - } - } - const getTranslations = (lang) => { - for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { - return translations[key] - } - } - return translations["en"] - } - const translate = new Proxy( - function (key) { - const lang = userLang - const strings = getTranslations(lang) - return strings[key] || translations["en"][key] - }, - { - get(target, prop) { - const lang = userLang - const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, - } - ) - 'use strict' - const state = { - isDragging: false, - linkToPreload: null, - popupWindow: null, - acrylicOverlay: null, - progressBar: null, - dragprogressBar: null, - dragintervalId: null, - startTime: null, - } - function getWindowConfig() { - const windowConfigs = GM_getValue('SitewindowConfigs', [ - ]) - GM_setValue('SitewindowConfigs', windowConfigs - ) - const currentHostName = window.location.hostname - // 顶级规则,查找当前域名是否在设置内..... - for (const config of windowConfigs) { - if (typeof config.hostName === 'string') { - if (config.hostName === currentHostName) { - return { - width: config.width || 870, - height: config.height || 530, - top: config.top || (window.screen.height - (config.height || 530)) / 3, - left: config.left || (window.screen.width - (config.width || 870)) / 2 - } - } - } else if (Array.isArray(config.hostName)) { - if (config.hostName.includes(currentHostName)) { - return { - width: config.width || 870, - height: config.height || 530, - top: config.top || (window.screen.height - (config.height || 530)) / 3, - left: config.left || (window.screen.width - (config.width || 870)) / 2 - } - } - } - } - // 二级规则,如果开启了自定义设置,使用自定义. - const customWindowWidth = GM_getValue('custom_windowWidth', 0) - const customWindowHeight = GM_getValue('custom_windowHeight', 0) - const customScreenLeft = GM_getValue('custom_screenLeft', 0) - const customScreenTop = GM_getValue('custom_screenTop', 0) - if (GM_getValue('saveWindowConfig', false)) { - if (customWindowWidth !== 0 && customWindowHeight !== 0 && customScreenLeft !== 0 && customScreenTop !== 0) { - return { - width: customWindowWidth, - height: customWindowHeight, - top: customScreenTop, - left: customScreenLeft - } - } - } - //三级级规则 以上规则全部找不到,窗口使用默认设置. - return { - width: 870, - height: 530, - top: (window.screen.height - 530) / 3, - left: (window.screen.width - 870) / 2 - } - } - function reWindowConfig() { - const windowConfig = getWindowConfig() - config.windowWidth = windowConfig.width, - config.windowHeight = windowConfig.height, - config.screenLeft = windowConfig.left, - config.screenTop = windowConfig.top - } - const config = { - windowWidth: 0, - windowHeight: 0, - screenLeft: 0, - screenTop: 0, - blurIntensity: GM_getValue('blurIntensity', 5), - blurEnabled: GM_getValue('blurEnabled', true), - closeOnMouseClick: GM_getValue('closeOnMouseClick', true), - closeOnScroll: GM_getValue('closeOnScroll', true), - longPressDuration: GM_getValue('longPressDuration', 500), // 长按持续时间(毫秒) - dragTimeOut: GM_getValue('dragTimeOut', 2000), // 拖拽超时时间(毫秒) - actionMode: GM_getValue('actionMode', 0), // 0: 两者都用, 1: 长按, 2: 拖拽 - showCountdown: GM_getValue('showCountdown', true), // 是否显示倒计时进度条 - showCountdowndrag: GM_getValue('showCountdowndrag', true), // 是否显示拖拽倒计时进度条 - saveWindowConfig: GM_getValue('saveWindowConfig', true)//记住窗口位置,没啥用 - } - reWindowConfig() - function delay(ms) { - return new Promise(resolve => setTimeout(resolve, ms)) - } - async function preloadLink(link, attributes = {}) { - const preloadElement = document.createElement('link') - preloadElement.rel = 'preload' - preloadElement.href = link - preloadElement.as = '*/*' - Object.assign(preloadElement, attributes) - document.head.appendChild(preloadElement) - await delay(1) - } - function createAcrylicOverlay() { - const acrylicOverlay = document.createElement('div') - acrylicOverlay.style.position = 'fixed' - acrylicOverlay.style.top = '0' - acrylicOverlay.style.left = '0' - acrylicOverlay.style.width = '100%' - acrylicOverlay.style.height = '100%' - acrylicOverlay.style.zIndex = '9999' - acrylicOverlay.style.backdropFilter = config.blurEnabled ? `blur(${config.blurIntensity}px)` : 'none' - if (config.closeOnMouseClick) { - acrylicOverlay.addEventListener('click', handleAcrylicOverlayClick) - } - document.body.appendChild(acrylicOverlay) - return acrylicOverlay - } - function handleAcrylicOverlayClick(event) { - if (event.target === state.acrylicOverlay) { - closePopupWindow() - } - } - function removeAcrylicOverlay() { - if (state.acrylicOverlay) { - document.body.removeChild(state.acrylicOverlay) - state.acrylicOverlay = null - } - } - window.addEventListener('message', (event) => { - const message = event.data - if (message.type === 'qinwuyuan') { - const width = window.innerWidth - const height = window.innerHeight - const left = window.screenX - const top = window.screenY - if (config.saveWindowConfig) { - saveWindowConfig(width, height, left, top, message.hostname) - // console.log(width, height, left, top, message.hostname) - } - } - }) - function openPopupWindow(link) { - reWindowConfig()//FIXME - 跨域窗口如果自己刷新了配置,重新刷新下 - if (!state.popupWindow || state.popupWindow.closed) { - state.acrylicOverlay = createAcrylicOverlay() - state.popupWindow = window.open(link, '_blank', `width=${config.windowWidth},height=${config.windowHeight},left=${config.screenLeft},top=${config.screenTop}`) - state.popupWindowChecker = setInterval(() => { - if (state.popupWindow) {//保证窗口存在时才检测,兼容下原来脚本点击原窗口焦点关闭覆盖层 - if (state.popupWindow.closed) { - removeAcrylicOverlay() - clearInterval(state.popupWindowChecker) - } else { - try { - const width = state.popupWindow.innerWidth - const height = state.popupWindow.innerHeight - const left = state.popupWindow.screenX - const top = state.popupWindow.screenY - if (config.saveWindowConfig) { - saveWindowConfig(width, height, left, top) - } - } catch (error) { - console.warn('访问跨源窗口属性失败,让弹出窗口自己设置窗口大小...:') - const message = { - type: "qinwuyuan", - hostname: window.location.hostname - } - state.popupWindow.postMessage(message, '*') - } - } - } - }, 200) - } - } - function closePopupWindow() { - if (state.popupWindow && !state.popupWindow.closed) { - state.popupWindow.close() - state.popupWindow = null - removeAcrylicOverlay() - if (state.linkToPreload) { - removePreloadedLink(state.linkToPreload) - } - window.removeEventListener('scroll', closePopupOnScroll) - } - } - function removePreloadedLink(link) { - const preloadElement = document.querySelector(`link[href="${link}"]`) - if (preloadElement) { - document.head.removeChild(preloadElement) - } - } - function closePopupOnScroll() { - if (state.popupWindow && !state.popupWindow.closed) { - closePopupWindow() - } - } - function toggleActionMode() { - const mode = prompt(translate('toggleActionMode'), config.actionMode) - if (mode !== null) { - config.actionMode = parseInt(mode, 10) - GM_setValue('actionMode', config.actionMode) - setupEventListeners() - updateMenuCommands() - } - } - function setLongPressDuration() { - const duration = prompt(translate('setLongPressDuration'), config.longPressDuration) - if (duration !== null) { - config.longPressDuration = duration - GM_setValue('longPressDuration', duration) - updateMenuCommands() - } - } - function setdragTimeOut() { - const duration = prompt(translate('dragTimeOut'), config.dragTimeOut) - if (duration !== null) { - config.dragTimeOut = duration - GM_setValue('dragTimeOut', duration) - updateMenuCommands() - } - } - function toggleBlurEffect() { - config.blurEnabled = !config.blurEnabled - GM_setValue('blurEnabled', config.blurEnabled) - updateMenuCommands() - } - function setBlurIntensity() { - const intensity = prompt(translate('setBlurIntensityprompt'), config.blurIntensity) - if (intensity !== null) { - config.blurIntensity = parseInt(intensity, 10) - GM_setValue('blurIntensity', config.blurIntensity) - updateMenuCommands() - } - } - function toggleCloseOnMouseClick() { - config.closeOnMouseClick = !config.closeOnMouseClick - GM_setValue('closeOnMouseClick', config.closeOnMouseClick) - updateMenuCommands() - } - function toggleCloseOnScroll() { - config.closeOnScroll = !config.closeOnScroll - handleScrollCommand() - GM_setValue('closeOnScroll', config.closeOnScroll) - updateMenuCommands() - } - function handleScrollCommand() { - if (config.closeOnScroll) { - window.addEventListener('scroll', closePopupOnScroll, { once: true }) - } else { - window.removeEventListener('scroll', closePopupOnScroll) - } - } - function setWindowSize(dimension) {//!SECTION-已无实际意义,开启记录窗口位置后,哪里还需要手动配置. - const size = prompt(`${translate('setWindowSizeprompt')} (${dimension})`, config[dimension === 'width' ? 'windowWidth' : 'windowHeight']) - if (size !== null) { - config[dimension === 'width' ? 'windowWidth' : 'windowHeight'] = parseInt(size, 10) - GM_setValue(dimension === 'width' ? 'windowWidth' : 'windowHeight', config[dimension === 'width' ? 'windowWidth' : 'windowHeight']) - updateMenuCommands() - if (state.popupWindow && !state.popupWindow.closed) { - state.popupWindow.resizeTo(config.windowWidth, config.windowHeight) - } - } - } - let registeredMenuCommands = {} - function registerMenuCommand(label, action) { - const menuCommandId = GM_registerMenuCommand(label, action) - registeredMenuCommands[label] = menuCommandId - return menuCommandId - } - function toggleshowCountdown() { - config.showCountdown = !config.showCountdown - GM_setValue('showCountdown', config.showCountdown) - updateMenuCommands() - } - function saveWindowConfig(width, height, left, top, HostName = window.location.hostname) { - config.windowWidth = width - config.windowHeight = height - config.screenLeft = left - config.screenTop = top - const currentHostName = HostName - let windowConfigs = GM_getValue('SitewindowConfigs', [] - ) - let configUpdated = false - for (let config of windowConfigs) { - if (typeof config.hostName === 'string') { - if (config.hostName === currentHostName) { - config.width = width - config.height = height - config.top = top - config.left = left - configUpdated = true - break - } - } else if (Array.isArray(config.hostName)) { - if (config.hostName.includes(currentHostName)) { - config.width = width - config.height = height - config.top = top - config.left = left - configUpdated = true - break - } - } - } - if (!configUpdated) { - windowConfigs.push({ - name: `${currentHostName}`, - hostName: currentHostName, - width: width, - height: height, - top: top, - left: left - }) - } - //ANCHOR - 开启记录窗口位置时.无法找到配置时,会推送一个新配置,当其他的网站没有自定义配置的也同样使用这一次的窗口.大小. - GM_setValue('SitewindowConfigs', windowConfigs) - GM_setValue('custom_windowWidth', width) - GM_setValue('custom_windowHeight', height) - GM_setValue('custom_screenLeft', left) - GM_setValue('custom_screenTop', top) - updateMenuCommands() - } - function toggleSwitch(property) { - if (property in config) { - config[property] = !config[property] - GM_setValue(property, config[property]) - updateMenuCommands() - } - } - function updateMenuCommands() { - const menuCommands = [ - { label: translate('actionMode') + ` (${config.actionMode === 1 ? translate('actionMode1') : config.actionMode === 2 ? translate('actionMode2') : translate('actionMode0')})`, action: toggleActionMode }, - { label: translate('longPressDuration') + ` (${config.longPressDuration}ms)`, action: setLongPressDuration }, - { label: translate('dragTimeOut') + ` (${config.dragTimeOut}ms)`, action: setdragTimeOut }, - { label: translate('blurEnabled') + ` (${config.blurEnabled ? '✅' : '❌'})`, action: toggleBlurEffect }, - { label: translate('blurIntensity') + ` (${config.blurIntensity})`, action: setBlurIntensity }, - { label: translate('closeOnMouseClick') + ` (${config.closeOnMouseClick ? '✅' : '❌'})`, action: toggleCloseOnMouseClick }, - { label: translate('closeOnScroll') + ` (${config.closeOnScroll ? '✅' : '❌'})`, action: toggleCloseOnScroll }, - /* { label: translate('windowWidth') + ` (${config.windowWidth})`, action: () => { setWindowSize('width') } },//!SECTION -已无实际意义,脚本不会使用 - { label: translate('windowHeight') + ` (${config.windowHeight})`, action: () => { setWindowSize('height') } },//!SECTION -已无实际意义,脚本不会使用 */ - { label: translate('showCountdown') + ` (${config.showCountdown ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdown') } }, - { label: translate('showCountdowndrag') + ` (${config.showCountdowndrag ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdowndrag') } }, - { label: translate('saveWindowConfig') + ` (${config.saveWindowConfig ? '✅' : '❌'})`, action: () => { toggleSwitch('saveWindowConfig') } }, - ] - for (const label in registeredMenuCommands) { - GM_unregisterMenuCommand(registeredMenuCommands[label]) - } - registeredMenuCommands = {} - menuCommands.forEach((command) => { - registerMenuCommand(command.label, command.action) - }) - } - updateMenuCommands() - function toTitleCase(str) { - return str.replace(/\w\S*/g, (txt) => { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() }) - } - function setupEventListeners() { - // 移除旧的事件监听器 - document.body.removeEventListener('dragstart', handleDragStart) - document.body.removeEventListener('dragend', handleDragEnd) - document.body.removeEventListener('mousedown', handleMouseDown) - document.body.removeEventListener('mouseup', handleMouseUp) - document.body.removeEventListener('mouseleave', handleMouseLeave) - document.body.removeEventListener('wheel', handleWheel) - document.body.removeEventListener('click', handleClick) - // 根据 actionMode 配置添加事件监听器 - if (config.actionMode === 1 || config.actionMode === 0) { - document.body.addEventListener('mousedown', handleMouseDown) - document.body.addEventListener('mouseup', handleMouseUp) - document.body.addEventListener('mouseleave', handleMouseLeave) - } - if (config.actionMode === 2 || config.actionMode === 0) { - document.body.addEventListener('dragstart', handleDragStart) - document.body.addEventListener('dragend', handleDragEnd) - } - document.body.addEventListener('wheel', handleWheel) - document.body.addEventListener('click', handleClick) - } - // 事件处理函数 - function handleDragStart(event) { - const linkElement = event.target.tagName === 'A' ? event.target : event.target.closest('a') - if (linkElement) { - if (config.showCountdowndrag && config.dragTimeOut != 0) {//超时选项,只要 - state.dragprogressBar = createProgressBar('#ff9800', '#f44336') - state.dragprogressBar.style.display = 'block' - state.dragprogressBar.style.width = '5%' - state.startTime = Date.now() - clearInterval(state.dragintervalId) - state.dragintervalId = setInterval(function () { - const elapsed = Date.now() - state.startTime - const progress = Math.max(5 - (elapsed / config.dragTimeOut) * 5, 0) // 减小你妈 - state.dragprogressBar.style.width = `${progress}%` - if (progress <= 0) {// 超时结束 - state.isDragging = false - clearInterval(state.dragintervalId) - state.dragprogressBar.style.display = 'none' - } - }, 100) // - window.addEventListener('drag', function (event) { - // 保证进度条位置处于貂毛鼠标的下面 - const x = event.clientX - const y = event.clientY + 30 // 偏移 - state.dragprogressBar.style.left = `${x}px` - state.dragprogressBar.style.top = `${y}px` - }) - } - const link = linkElement.href - state.isDragging = true - state.linkToPreload = link - preloadLink(state.linkToPreload, { importance: 'high' }).then(() => { - if (config.closeOnScroll) { - window.addEventListener('scroll', closePopupOnScroll, { once: true }) - } - }) - } - } - function handleDragEnd(event) { - const x = event.clientX - const y = event.clientY - console.log(x, y) - const elementAtPoint = document.elementFromPoint(x, y) - if (state.dragprogressBar) {//显示超时进度条时 - clearInterval(state.dragintervalId) - state.dragprogressBar.style.display = 'none' - } - if (y < 1) {//接近顶部 - state.isDragging = false - } - //if (!document.body.contains(elementAtPoint)) state.isDragging = false//移出到系统 - if (state.isDragging && state.linkToPreload) { - state.isDragging = false - openPopupWindow(state.linkToPreload) - state.linkToPreload = null - } - } - function createProgressBar(colorStart = '#4caf50', colorEnd = '#81c784') { - if (!config.showCountdown && !config.showCountdowndrag) return null - const progressBar = document.createElement('div') - Object.assign(progressBar.style, { - position: 'fixed', - height: '6px', - width: '5%', - background: `linear-gradient(to right, ${colorStart}, ${colorEnd})`, - borderRadius: '3px', - boxShadow: '0 2px 5px rgba(0, 0, 0, 0.3)', - zIndex: '9999', - }) - document.body.appendChild(progressBar) - return progressBar - } - let mouseDownTime = 0 - function handleMouseDown(event) { - const linkElement = event.target.tagName === 'A' ? event.target : event.target.closest('a') - if (linkElement) { - let isDragging = false - let isMouseDown = true - const onMouseMove = () => { - isDragging = true - clearTimeout(state.pressTimer) - progressBarremove() - } - const onMouseUp = () => { - isMouseDown = false - clearTimeout(state.pressTimer) - progressBarremove() - } - document.addEventListener('dragstart', onMouseMove, { once: true }) - document.addEventListener('mouseup', onMouseUp, { once: true }) - document.addEventListener('keydown', onMouseUp, { once: true }) - setTimeout(() => { // 按下100ms后显示倒计时,避免点击就显示 - if (!isDragging && isMouseDown) { // 确保没有拖拽并且鼠标仍按下 - state.progressBar = createProgressBar() - if (state.progressBar) { - const transitionDuration = Math.max(config.longPressDuration - 100, 0) + 'ms' - state.progressBar.style.left = `${event.clientX}px` // 设置进度条位置为鼠标下方 - state.progressBar.style.top = `${event.clientY + 20}px` // 偏移一点,避免挡住鼠标 - state.progressBar.style.transition = `width ${transitionDuration} linear` - requestAnimationFrame(() => { - state.progressBar.style.width = '0' - }) - } - } - }, 100) - state.pressTimer = setTimeout(() => { - if (!isDragging && isMouseDown) { // 确保没有拖拽并且鼠标仍按下 - const link = linkElement.href - state.linkToPreload = link - preloadLink(state.linkToPreload, { importance: 'high' }).then(() => { - openPopupWindow(state.linkToPreload) - }) - } - progressBarremove() - }, config.longPressDuration) - } - } - function handleMouseUp() { - clearTimeout(state.pressTimer) - state.pressTimer = null - progressBarremove() - } - function progressBarremove() { - if (state.progressBar) { - state.progressBar.remove() - } - } - function handleMouseLeave() { - clearTimeout(state.pressTimer) - state.pressTimer = null - } - function handleWheel() { - if (config.closeOnScroll) { - closePopupWindow() - } - } - function handleClick(event) { - if (event.target === state.acrylicOverlay) { - removeAcrylicOverlay() - } - } - setupEventListeners() -})() diff --git a/Script details/popup-window/README.md b/Script details/popup-window/README.md deleted file mode 100644 index f8cdb2b7c..000000000 --- a/Script details/popup-window/README.md +++ /dev/null @@ -1,309 +0,0 @@ - -
    - - - - - -
    -

    小窗口预览

    -

    「 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ Small Window Preview 更新日志

    -

    📅 2024/9/30 11:56 - Ver 2.5.1.4

    -

    优化: 添加GUI设置界面 菜单太麻烦,设置多个点来点去的.

    -
    -

    📅 2024/9/30 10:49 - Ver 2.5.1.3

    -

    优化: 添加长按生效时间,鼠标按下等于设置的生效时间后调用打开小窗前的长按触发时间.
    打开小窗时间=长按生效时间+长按触发时间 -优化: 添加GUI设置界面 菜单太麻烦,设置多个点来点去的.

    -
    -

    📅 2024/9/10 11:05 - Ver 2.5.1.0

    -

    修复: 无法跨源读取弹出窗口大小位置的问题。
    -新增: 当无法跨源读取到弹窗位置时,会发送信息给弹窗,允许弹窗自己设置大小和位置。

    -
    -

    📅 2024/9/10 09:24 - Ver 2.5.0.0

    -

    感谢: tony0809 的代码贡献。
    -新增:
    -• 开启 记录窗口位置 时,自动记录当前域名配置。
    -• 查找窗口配置逻辑:域名配置 → 自定义窗口配置 → 脚本自带配置。
    -• 配置无需手动编辑,脚本会自动在你更改窗口大小时更新域名配置.每次你改变的窗口大小会记录到全局自定义配置
    -• 配置规则参考#529654
    -• 新增功能演示请参考下方视频。

    -
    -

    📅 2024/9/3 05:26 - Ver 2.4.0.20

    -

    修复: #527837 事件错误,修改为检查鼠标 y 轴 < 1 时判断移动是否在浏览器标签页上。

    -
    -

    📅 2024/9/2 05:34 - Ver 2.4.0.18

    -

    新增: #527625
    -• 长按鼠标模式下按下键盘不触发预览窗口。
    -• 拖拽模式下拖拽链接到新标签时不会触发预览窗口。

    -
    -

    📅 2024/8/29 08:39 - Ver 2.4.0.9

    -

    新增: 拖拽时增加超时显示进度条,时间耗尽时取消拖拽打开预览窗口。

    -
    -

    📅 2024/8/29 06:28 - Ver 2.4.0.8

    -

    优化: 移除长按时监听鼠标移动的逻辑,改为监听鼠标进入拖拽状态时取消打开预览窗口。#526172

    -
    -

    📅 2024/8/27 00:33 - Ver 2.4.0.5

    -

    修复: #526054 反馈的 BUG:
    -• 修复在关闭预览窗后无法触发时间条打开预览窗的概率性问题。

    -
    -

    📅 2024/8/25 04:59 - Ver 2.4.0.2

    -

    新增: #257270
    -• 添加长按时显示倒计时,增加记住窗口位置功能。

    -
    -

    📅 2024/8/24 07:29 - Ver 2.4

    -

    优化: 添加语言包,优化脚本性能。

    -
    -

    📅 2024/8/23 08:12 - Ver 2.4

    -

    优化: 兼容 Chrome 插件 Google Chrome 的超级拖拽 0.9.9
    -修复: 修复点击小窗口关闭按钮时亚克力图层不关闭的问题。

    - -
    - - - - - -## 功能介绍 -🔗 拖拽即开小窗 — 拖拽网页链接,便捷地在小窗口中打开并预览,使用 Edge 的预读技术。小窗口后方有亚克力效果,提升视觉体验。 - - - -# 菜单选项说明 - - - -## 选项列表 - -1. **操作模式 (actionMode)** - - **描述**:设置当前的操作模式,根据 `actionMode` 的值来确定使用哪个操作模式。 - - **操作模式 1**:`1` - 在链接长按时触发预览窗口。 - - **操作模式 2**:`2` - 在链接拖拽时触发预览窗口。 - - **默认操作模式**:`0` - 默认启用以上两种操作模式。 - -2. **长按持续时间 (longPressDuration)** - - **描述**:设置长按操作的持续时间。 - - **操作**:`setLongPressDuration`,用于修改长按持续时间,与 `操作模式 (actionMode)` 配合使用。 - -3. **模糊效果启用 (blurEnabled)** - - **描述**:启用或禁用背景模糊效果。 - - **操作**:`toggleBlurEffect`,用于启用或禁用模糊效果。 - -4. **模糊强度 (blurIntensity)** - - **描述**:设置背景模糊的强度。 - -5. **点击鼠标时关闭 (closeOnMouseClick)** - - **描述**:在主窗口(预览窗口的父窗口)点击鼠标时关闭预览窗口。 - - **操作**:`toggleCloseOnMouseClick`,用于启用或禁用点击鼠标时关闭预览窗口的设置。 - -6. **滚动时关闭 (closeOnScroll)** - - **描述**:在主窗口(预览窗口的父窗口)滚动鼠标滑轮时关闭预览窗口。 - - **操作**:`toggleCloseOnScroll`,用于启用或禁用滚动鼠标时关闭预览窗口的设置。 - -7. **窗口宽度 (windowWidth)** - - **描述**:设置预览窗口的宽度,启用 `保存窗口配置` 时覆盖该配置。 - -8. **窗口高度 (windowHeight)** - - **描述**:设置预览窗口的高度,启用 `保存窗口配置` 时覆盖该配置。 - -9. **显示倒计时 (showCountdown)** - - **描述**:当启用 `操作模式 (actionMode)=1` 长按时,在长按触发预览窗口前,在鼠标下方显示倒计时进度条,时间是 `长按持续时间 (longPressDuration)` 设定的时间。 - - **操作**:用于启用或禁用倒计时进度条显示。 - -10. **显示拖拽超时 (showCountdowndrag)** - - **描述**:当启用时,在拖拽预览窗口前,在鼠标下方显示超时进度条,时间是 `拖拽超时时间 (dragTimeOut)` 设定的时间,时间耗尽,拖拽不会打开预览窗口,设定时间为0时为禁用显示以及禁用超时取消拖拽打开小窗预览。 - - **操作**:用于启用或禁用超时进度条显示。 - -11. **保存窗口配置 (saveWindowConfig)** - - **描述**:用于记忆保存窗口的大小与位置配置,会覆盖用户自己设定的预览窗口高度和宽度。 - -**每个选项后面都有一个对应的操作函数,这些函数用于更新菜单的设置。通过点击选项,用户可以直接改变相关配置,并立即看到效果。** - - - -## 支持的网页 -🌐 全网页适用 — 支持所有网页,随时随地享受便捷的链接预览与打开功能。 - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - -## 脚本亮点: - -亚克力效果:为小窗口添加美观的背景效果。 -链接预读:使用 Edge 的技术加速加载。 -设置选项: -可调节模糊效果强度。 -自定义小窗口尺寸。 - - - -## 注意事项: -点击或滚动页面时,可以自动关闭小窗口。 -立即体验! -🚀 提升浏览效率 — 安装脚本,享受智能链接预览和美观小窗口! - - - - -## ☭ 感谢 - -- **[hiisme](https://greasyfork.org/zh-CN/users/217852) [小窗预览](https://greasyfork.org/scripts/504567)** 是本脚本的创始人,他的想法与实际行动为互联网广大网友做出了巨大贡献 -- **[wxhzjm](https://greasyfork.org/zh-CN/users/1118488)** -- **[hmjz100](https://greasyfork.org/zh-CN/users/893941)** -- **[tony0809](https://greasyfork.org/zh-CN/users/20361)** 为脚本添加了自定义域名设置的代码 - - - -## 脚本演示 - -自动记录每个站点的配置: - -脚本长按,拖拽,记录窗口位置演示: - - -![1.png](https://greasyfork.s3.us-east-2.amazonaws.com/45120umjmiqk1lfkh0116ad6pnui) - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/popup-window/README_en.md b/Script details/popup-window/README_en.md deleted file mode 100644 index 6c6f653aa..000000000 --- a/Script details/popup-window/README_en.md +++ /dev/null @@ -1,296 +0,0 @@ - -
    - - - - - -
    -

    Small window preview

    -

    「 Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ Small Window Preview Change log

    -

    📅 2024/9/30 11:56 - Ver 2.5.1.4

    -

    optimization: Add toGUISetting interface The menu is too troublesome,Set up multiple points to point to and from.

    -
    -

    📅 2024/9/30 10:49 - Ver 2.5.1.3

    -

    optimization: Add toLong press effective time,After the mouse is pressed equal to the set effective time, the function before opening the small window is called.Long press trigger time.
    Open small window time=Long press effective time+Long press trigger time -optimization: Add toGUISetting interface The menu is too troublesome,Set up multiple points to point to and from.

    -
    -

    📅 2024/9/10 11:05 - Ver 2.5.1.0

    -

    repair: The problem of not being able to read the size and position of the pop-up window across sources。
    -New: When the pop-up window location cannot be read across sources,Will send information to the pop-up window,Allow pop-ups to set their own size and position。

    -
    -

    📅 2024/9/10 09:24 - Ver 2.5.0.0

    -

    grateful: tony0809 code contributions。
    -New:
    -• turn on Record window position hour,Automatically record current domain name configuration。
    -• Find window configuration logic:Domain name configuration → Custom window configuration → Script comes with configuration。
    -• No manual editing required for configuration,The script will automatically update the domain configuration when you change the window size.Every time you change the window size it will be recorded in the global custom configuration
    -• Configuration rules reference#529654
    -• Please refer to the video below for a demonstration of the new features.。

    -
    -

    📅 2024/9/3 05:26 - Ver 2.4.0.20

    -

    repair: #527837 event error,Modified to check mouse y axis < 1 Determine if the move is on a browser tab。

    -
    -

    📅 2024/9/2 05:34 - Ver 2.4.0.18

    -

    New: #527625
    -• Pressing the keyboard in long-press mouse mode does not trigger the preview window。
    -• When dragging a link to a new label in drag mode, the preview window will not be triggered.。

    -
    -

    📅 2024/8/29 08:39 - Ver 2.4.0.9

    -

    New: Add timeout to display progress bar when dragging,Cancel drag and drop to open preview window when time runs out。

    -
    -

    📅 2024/8/29 06:28 - Ver 2.4.0.8

    -

    optimization: Remove the logic of monitoring mouse movement when long-pressed,Change to monitor the mouse and cancel the opening of the preview window when it enters the dragging state.。#526172

    -
    -

    📅 2024/8/27 00:33 - Ver 2.4.0.5

    -

    repair: #526054 feedback BUG:
    -• Fixed the probability issue that the time bar cannot be triggered to open the preview window after closing the preview window.。

    -
    -

    📅 2024/8/25 04:59 - Ver 2.4.0.2

    -

    New: #257270
    -• Added display countdown when long press,Added function to remember window position。

    -
    -

    📅 2024/8/24 07:29 - Ver 2.4

    -

    optimization: Add language pack,Optimize script performance。

    -
    -

    📅 2024/8/23 08:12 - Ver 2.4

    -

    optimization: compatible Chrome plug-in Google Chrome super drag 0.9.9
    -repair: Fixed the problem that the acrylic layer does not close when clicking the close button of the small window。

    - -
    - - - - - -## Feature Introduction -🔗 **Drag and Drop to Open Preview Window** — Easily open and preview web links in a small window by dragging them, utilizing Edge's pre-read technology. The background of the small window features an acrylic effect to enhance visual appeal. - - - -# Menu Options Description - - - -## Options List - -1. **Action Mode (actionMode)** - - **Description**: Sets the current action mode. Determines which mode to use based on the value of `actionMode`. - - **Action Mode 1**: `1` - Triggers the preview window when the link is long-pressed. - - **Action Mode 2**: `2` - Triggers the preview window when the link is dragged. - - **Default Action Mode**: `0` - Defaults to enabling both of the above action modes. - -2. **Long Press Duration (longPressDuration)** - - **Description**: Sets the duration of the long press action. - - **Action**: `setLongPressDuration`, used to modify the long press duration in conjunction with `Action Mode (actionMode)`. - -3. **Blur Effect Enabled (blurEnabled)** - - **Description**: Enables or disables the background blur effect. - - **Action**: `toggleBlurEffect`, used to enable or disable the blur effect. - -4. **Blur Intensity (blurIntensity)** - - **Description**: Sets the intensity of the background blur. - -5. **Close on Mouse Click (closeOnMouseClick)** - - **Description**: Closes the preview window when clicking the mouse in the main window (parent window of the preview window). - - **Action**: `toggleCloseOnMouseClick`, used to enable or disable the setting to close the preview window on mouse click. - -6. **Close on Scroll (closeOnScroll)** - - **Description**: Closes the preview window when scrolling the mouse wheel in the main window (parent window of the preview window). - - **Action**: `toggleCloseOnScroll`, used to enable or disable the setting to close the preview window on mouse scroll. - -7. **Window Width (windowWidth)** - - **Description**: Sets the width of the preview window. This configuration will override the set width when `Save Window Configuration` is enabled. - -8. **Window Height (windowHeight)** - - **Description**: Sets the height of the preview window. This configuration will override the set height when `Save Window Configuration` is enabled. - -9. **Show Countdown (showCountdown)** - - **Description**: When `Action Mode (actionMode)=1` is enabled, displays a countdown progress bar below the mouse before the preview window is triggered by a long press. The time is set by `Long Press Duration (longPressDuration)`. - - **Action**: Used to enable or disable the countdown progress bar display. - -10. **Show Drag Timeout (showCountdowndrag)** - - **Description**: When enabled, a timeout progress bar is displayed under the mouse before the drag preview window opens. The duration is determined by the `Drag Timeout (dragTimeOut)` setting. If the time runs out, the drag operation will not open the preview window. If the timeout is set to 0, both the progress bar and the timeout-based cancellation of the drag preview will be disabled. - - **Action**: Used to enable or disable the display of the timeout progress bar. - -11. **Save Window Configuration (saveWindowConfig)** - - **Description**: Used to remember and save the size and position configuration of the window, overriding the user-defined preview window height and width. - -**Each option is followed by a corresponding action function, which is used to update the menu settings. By clicking on an option, users can directly change the related configuration and see the effect immediately.** - - - -## Supported Web Pages -🌐 **Applicable to All Web Pages** — Supports all web pages, allowing convenient link preview and opening functionality anytime, anywhere. - - - -## Script Highlights: - -- **Acrylic Effect**: Adds a beautiful background effect to the small window. -- **Link Pre-read**: Accelerates loading using Edge's technology. -- **Configurable Options**: - - Adjustable blur effect intensity. - - Customizable small window size. - - - -## Notes: -- Clicking or scrolling on the page can automatically close the small window. -- Experience it now! -🚀 **Enhance Browsing Efficiency** — Install the script to enjoy intelligent link previews and aesthetically pleasing small windows! - - - -![1.png](https://greasyfork.s3.us-east-2.amazonaws.com/45120umjmiqk1lfkh0116ad6pnui) - - -## Original Author - [hiisme](https://greasyfork.org/zh-CN/scripts/504567) - - - - - - - - -> ### 🔍You may be looking for web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**高亮网页文本_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for 网页相关脚本 -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,用于增强 GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍你可能在找 GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍你可能在找 adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/remove-link-underlines/README.md b/Script details/remove-link-underlines/README.md deleted file mode 100644 index 1cdd4136c..000000000 --- a/Script details/remove-link-underlines/README.md +++ /dev/null @@ -1,221 +0,0 @@ - -
    - - - - - -
    -

    去除链接下划线

    -

    「 去除网页链接的下划线 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - -# Remove Link Underlines - - - -## Description -This userscript removes underlines from all links on any website and dynamically handles new links. It ensures a cleaner and more visually appealing browsing experience. - - - -## Description in Multiple Languages - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - -### 中文(简体) -这个用户脚本移除所有网站上的链接下划线,并动态处理新链接。它确保了更干净和更有视觉吸引力的浏览体验。 - - - -### 中文(繁体) -这个使用者脚本移除所有网站上的连结底线,并动态处理新连结。它确保了更干净和更有视觉吸引力的浏览体验。 - - - -### Français -Ce script utilisateur supprime les soulignements de tous les liens sur n'importe quel site Web et gère dynamiquement les nouveaux liens. Il assure une expérience de navigation plus propre et plus attrayante visuellement. - - - -### 日本语 -このユーザースクリプトは、任意のWebサイト上のすべてのリンクの下线を削除し、新しいリンクを动的に処理します。これにより、よりクリーンで视覚的に魅力的なブラウジング体験が保証されます。 - - - -### Deutsch -Dieses Benutzerskript entfernt die Unterstreichungen aller Links auf jeder Website und behandelt neue Links dynamisch. Es sorgt für ein saubereres und optisch ansprechenderes Surferlebnis. - - - -### 한국어 -이 사용자 스크립트는 모든 웹사이트에서 모든 링크의 밑줄을 제거하고 새 링크를 동적으로 처리합니다. 이는 더 깨끗하고 시각적으로 매력적인 브라우징 경험을 보장합니다. - - - -### Tiếng Việt -Tập lệnh người dùng này xóa gạch chân khỏi tất cả các liên kết trên bất kỳ trang web nào và xử lý động các liên kết mới. Nó đảm bảo trải nghiệm duyệt web sạch hơn và hấp dẫn hơn về mặt hình ảnh. - - - -### العربية -يقوم هذا النص البرمجي للمستخدم بإزالة التسطير من جميع الروابط على أي موقع ويب والتعامل ديناميكيًا مع الروابط الجديدة. يضمن تجربة تصفح أنظف وأكثر جاذبية بصريًا. - - - -### हिंदी -यह उपयोगकर्ता स्क्रिप्ट किसी भी वेबसाइट पर सभी लिंक से रेखांकन हटा देती है और नए लिंक को गतिशील रूप से संभालती है। यह एक क्लीनर और अधिक आकर्षक ब्राउज़िंग अनुभव सुनिश्चित करता है। - - - -### Español -Este script de usuario elimina los subrayados de todos los enlaces en cualquier sitio web y maneja dinámicamente los nuevos enlaces. Garantiza una experiencia de navegación más limpia y visualmente atractiva. - - - -## Author -人民的勤务员 (Servant of the People) & ChatGPT -[toniaiwanowskiskr47@gmail.com](mailto:toniaiwanowskiskr47@gmail.com) - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/remove-link-underlines/remove-link-underlines.user.js b/Script details/remove-link-underlines/remove-link-underlines.user.js deleted file mode 100644 index e2ce17192..000000000 --- a/Script details/remove-link-underlines/remove-link-underlines.user.js +++ /dev/null @@ -1,107 +0,0 @@ -// ==UserScript== -// @name Remove Link Underlines -// @name:zh-CN 移除链接下划线 -// @description:zh-CN 移除所有网站上的链接下划线,并动态处理新链接 -// @name:ar إزالة الرابط الذي تحته خط -// @description:ar إزالة تسطير الرابط على كافة المواقع,والتعامل مع الروابط الجديدة ديناميكيًا -// @name:bg Премахване на връзката подчертаване -// @description:bg Премахнете подчертаването на връзката на всички сайтове,и динамично обработва нови връзки -// @name:cs Odebrat podtržení odkazu -// @description:cs Odstraňte podtržení odkazů na všech webech,a dynamicky zpracovávat nové odkazy -// @name:da Fjern understregning af link -// @description:da Fjern linkunderstregninger på alle websteder,og håndtere nye links dynamisk -// @name:de Link-Unterstreichung entfernen -// @description:de Entfernen Sie die Link-Unterstreichungen auf allen Websites,und neue Links dynamisch verarbeiten -// @name:el Αφαίρεση υπογράμμισης συνδέσμου -// @description:el Αφαιρέστε τις υπογραμμίσεις συνδέσμων σε όλους τους ιστότοπους,και να χειρίζεται δυναμικά νέους συνδέσμους -// @name:en Remove link underline -// @description:en Remove link underlines on all sites,and handle new links dynamically -// @name:eo Forigu ligilon substreki -// @description:eo Forigu ligsubstrekojn en ĉiuj retejoj,kaj pritrakti novajn ligilojn dinamike -// @name:es Quitar enlace subrayado -// @description:es Eliminar enlaces subrayados en todos los sitios,y manejar nuevos enlaces dinámicamente -// @name:fi Poista linkin alleviivaus -// @description:fi Poista linkin alleviivaukset kaikilta sivustoilta,ja käsitellä uusia linkkejä dynaamisesti -// @name:fr Supprimer le soulignement du lien -// @description:fr Supprimer les liens soulignés sur tous les sites,et gérer les nouveaux liens de manière dynamique -// @name:he הסר קו תחתון של הקישור -// @description:he הסר קווי תחתון של קישורים בכל האתרים,ולטפל בקישורים חדשים באופן דינמי -// @name:hr Ukloni vezu podvučeno -// @description:hr Uklonite podcrtane veze na svim stranicama,i dinamički obrađivati ​​nove veze -// @name:hu Távolítsa el a hivatkozás aláhúzását -// @description:hu Távolítsa el a hivatkozás aláhúzásokat az összes webhelyről,és dinamikusan kezeli az új hivatkozásokat -// @name:id Hapus tautan yang digarisbawahi -// @description:id Hapus garis bawah tautan di semua situs,dan menangani tautan baru secara dinamis -// @name:it Rimuovi la sottolineatura del collegamento -// @description:it Rimuovi le sottolineature dei collegamenti su tutti i siti,e gestire i nuovi collegamenti in modo dinamico -// @name:ja リンクの下線を削除する -// @description:ja すべてのサイトのリンクの下線を削除する,新しいリンクを動的に処理します -// @name:ka ბმულის ხაზგასმის წაშლა -// @description:ka წაშალეთ ბმულის ხაზგასმა ყველა საიტზე,და ახალი ბმულების დინამიურად დამუშავება -// @name:ko 링크 밑줄 제거 -// @description:ko 모든 사이트의 링크 밑줄 제거,새 링크를 동적으로 처리합니다. -// @name:nl Verwijder de onderstreping van de link -// @description:nl Verwijder linkonderstrepingen op alle sites,en dynamisch omgaan met nieuwe links -// @name:nb Fjern understreking av koblingen -// @description:nb Fjern understreking av koblinger på alle nettsteder,og håndtere nye lenker dynamisk -// @name:pl Usuń podkreślenie linku -// @description:pl Usuń podkreślenia linków ze wszystkich witryn,i dynamicznie obsługuj nowe linki -// @name:pt-BR Remover sublinhado do link -// @description:pt-BR Remova os sublinhados dos links em todos os sites,e lidar com novos links dinamicamente -// @name:ro Eliminați sublinierea linkului -// @description:ro Eliminați sublinierea linkurilor de pe toate site-urile,și gestionează dinamic noile legături -// @name:ru Удалить подчеркивание ссылки -// @description:ru Удалить подчеркивание ссылок на всех сайтах,и динамически обрабатывать новые ссылки -// @name:sk Odstrániť podčiarknutie odkazu -// @description:sk Odstráňte podčiarknutia odkazov na všetkých stránkach,a dynamicky spracovávať nové odkazy -// @name:sr Уклони подвучену везу -// @description:sr Уклоните подвучене везе са свих сајтова,и динамички рукују новим везама -// @name:sv Ta bort länk understruken -// @description:sv Ta bort länkunderstrykningar på alla webbplatser,och hantera nya länkar dynamiskt -// @name:th ลบลิงก์ที่ขีดเส้นใต้ -// @description:th ลบลิงก์ที่ขีดเส้นใต้ในทุกไซต์,และจัดการลิงก์ใหม่แบบไดนามิก -// @name:tr Bağlantının altını kaldır -// @description:tr Tüm sitelerdeki bağlantı alt çizgilerini kaldırın,ve yeni bağlantıları dinamik olarak yönetin -// @name:ug ئاستى سىزىقنى ئۆچۈرۈڭ -// @description:ug بارلىق تور بېكەتلەردىكى ئۇلىنىش ئاستىنى ئۆچۈرۈڭ,ھەمدە يېڭى ئۇلىنىشلارنى ھەرىكەتچان بىر تەرەپ قىلىڭ -// @name:uk Вилучити підкреслення посилання -// @description:uk Видалити підкреслення посилань на всіх сайтах,і динамічно обробляти нові посилання -// @name:vi Xóa gạch chân liên kết -// @description:vi Xóa gạch chân liên kết trên tất cả các trang web,và xử lý các liên kết mới một cách linh hoạt -// @name:zh-TW 移除連結下劃線 -// @description:zh-TW 移除所有網站上的連結底線,並動態處理新鏈接 -// @name:zh-HK 移除連結下劃線 -// @description:zh-HK 移除所有網站上的連結底線,並動態處理新鏈接 -// @name:fr-CA Supprimer le soulignement du lien -// @description:fr-CA Supprimer les liens soulignés sur tous les sites,et gérer les nouveaux liens de manière dynamique -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.2.0.63 -// @description Remove underlines from all links on any website and dynamically handle new links -// @author 人民的勤务员 -// @match *://*/* -// @run-at document-body -// @license MIT -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAADq0lEQVR4nO3Yz6uUVRgH8BOGIbQo3aXgwjvPma6K7loYtNCMoP6BwE1EmxCklZs0olVttETonu9YGi0acJ4zFNaqW8vuIjcurIXRpkS0XxKSohPnXjcZVJx5H9/vO/N84CxmM+/3e87784TgnHPOOeecc84551xDEPOkZoQ5yWOOrTDI8phjKwyyPObYCoMsjzm2wiDLY46tMMjymGMrDLI85tgKgyyPObbCIMtjjq0wyPKYYysMsjzm2AqDLI85tsIgy2OOrTDI8phjKwyyPObYCoMsjzm2wiDLY46tMMjymGMrDLI85tgKgyyPObbCIMtjjq0wyPKYYysMsjzm2AqDLI85tsIgy2OOrTDI8phjKwyyPObYCoMsjzm2wiDLY46tMMjymGMrDLI85tgKgyyPObbCIMtjjq0wyPKYYysMsjzm2AqDLI85tsIgy2MuRb1TU3gSJg80naX8Z02W0iF0VYp6o6b0yZ2fPtp0lhOLw4crF+BG6Kok+WpN6aX+SJrOgpgfq7oFSb4WugqSv61agKjPNJ1lqae7654Beil0FaJ+VnXZi77VfJb8Yl2W/GXoqiT5nbrLXi80nQUxn6x7BuQzoatS1BfqLvtcngPPNZVjuGW4ofZ5NBA9FLrqg94nm2sXADGfHy4O1zeRI/X15docAxk9GboMUVeqF0H01LTHT4vjhRT1t8oMvzZ1ErQGUQ9OcRVMkuS3h2G4rubY5XU2iV6sPwHyR6Hr3t+qj6SYf5luEfSL8hr5f49Zztok+lI5g6c5LkT3hlmQor4+1UTEtS0BSP58SfIrS4+Pt5cH69+OsTjcOOjlfRB9E6I/NHC8b8KsKNsASfL3004K/nmG/lG+VCF6q/H/7o/2h1mS+uOnazfncJ9HivnjMIuS6GttTy7+c+il0/3RpjCLVreERU/RnvmSr5bnS5hlZRGS6DHC286VQe/srjAP1q6E/Cok32x74u+O8+WDLcybJOM9tVvWDY3bEH333lfauXJ84dxDSfKRJPr7fZ78rwe9/ETb/Wmc7o82IeY3IHrZ7j6/+jG3PJDRs233pXX0qeUHU9Tnyz58Ev2pkdtM1JXyNf7ewmhb2/2697Dun90B0QNlUy6Jjld3VyX/CNGfk+Q/VydZ8vW13/pdivoVon6YJB8uZ/rMvtM755xz/4bgC3fSxOjsKrc9cfAFaH/y4FdA+xMIvwV1e4Suanvi4AvQ/uTBr4D2JxDzegtyzjnnnHPOOeecc4HFXxVE+hgKTI5DAAAAAElFTkSuQmCC -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-Underlines-96.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -//去你妈的下划线。 -//2024-06-23 11:23 人民的勤务员 -//2024-07-08 08:33 人民的勤务员 改为CSS -(function () { - 'use strict' - - // 创建一个样式元素 - var style = document.createElement('style') - style.type = 'text/css' - style.innerHTML = ` - a { - text-decoration: none !important; - } - ` - - // 将样式元素添加到头部 - document.head.appendChild(style) -})() diff --git a/Script details/script-finder-plus/README.md b/Script details/script-finder-plus/README.md deleted file mode 100644 index 3b04062de..000000000 --- a/Script details/script-finder-plus/README.md +++ /dev/null @@ -1,215 +0,0 @@ - -
    - - - - - -
    -

    Script Finder油猴脚本查找器

    -

    「 Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ Script Finder+ 更新日志

    -

    📅 2024/9/26 10:43 - Ver 0.1.6.80

    -

    修复: • CSS 样式与 GreasyFork 冲突导致放大字体

    -
    -

    📅 2024/8/28 12:01 - Ver 0.1.6.58

    -

    新增: • 网页进入全屏,隐藏右下角按钮。

    -
    -

    📅 2024/8/26 07:32 - Ver 0.1.6.54

    -

    新增: • 增加语言支持。

    -
    -

    📅 2024/8/4 14:32 - Ver 0.1.6.32

    -

    修复: • #253924 在顺丰官网 CSS 冲突,导致右下角按钮变长,横在整个页面底部。
    -修复方式: • 更改按钮类名 button.script-button 👉 scrbutton.script-button

    -
    -

    📅 2024/7/18 08:45 - Ver 0.1.6.9

    -

    优化: • 取消默认排序,改为按照更新时间排序。

    -
    -

    📅 2024/6/26 06:43 - Ver 0.1.6.1

    -

    新增: • 增加对移动设备的支持,手机也能使用啦~
    -修改: • 取消搜索出错时清空列表的操作。

    -
    - -
    - - - - - -# Script Finder - -Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本。它提供了一种方便的方式来搜索和安装来自 Greasy Fork 的用户脚本。借助 Script Finder,你可以轻松地一键将自定义脚本添加到你喜爱的网站上,从而增强你的浏览体验。 - - - -## 功能 - -- 根据网站域名搜索用户脚本 -- 查看每个脚本的详细信息,包括作者、描述、安装数量、版本和评分 -- 一键安装用户脚本 - - - - -> ### 🔍你可能在找GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - - - - -## 使用方法 - -1. 在浏览器中安装用户脚本管理器,例如 Tampermonkey 或 Greasemonkey -2. 访问 Greasy Fork 网站并点击 "Install" 按钮来安装 Script Finder 脚本 -3. 安装完成后,访问页面的右侧上会出现一个 "Scripts" 按钮 -4. 点击 "Scripts" 按钮打开 Script Finder 界面 -5. 可以使用搜索栏根据特定网站查找用户脚本 -6. 点击一个用户脚本以查看更多详细信息或一键安装脚本 -7. 尽情发现和使用 Script Finder 提供的新用户脚本吧! - -**注意**:该用户脚本需要在浏览器中安装用户脚本管理器才能正常使用(可在最底部查看可以使用的管理器) - - - -## 图片 -![fi.png](https://s2.loli.net/2024/08/05/WOkL8vV2oxRASYQ.png) -![show.png](https://s2.loli.net/2024/08/05/EBsldxGySe9Kf3w.png) - - - -## 原作者 - 脚本修改自用户 **[shiquda](https://greasyfork.org/zh-CN/users/935206)** 的脚本 [Script Finder](https://greasyfork.org/scripts/472056) 感谢原作者 **[shiquda](https://greasyfork.org/zh-CN/users/935206)** 的**勤劳**与**智慧** - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/script-finder-plus/README_en.md b/Script details/script-finder-plus/README_en.md deleted file mode 100644 index d2f10cb7b..000000000 --- a/Script details/script-finder-plus/README_en.md +++ /dev/null @@ -1,229 +0,0 @@ - -
    - - - - - -
    -

    Script FinderGrease Monkey Script Finder

    -

    「 Script Finder is a user script(userscript),It helps you find and manage userscripts on any website 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ Script Finder+ Change log

    -

    📅 2024/9/26 10:43 - Ver 0.1.6.80

    -

    repair: • CSS style with GreasyFork Conflict causes enlarged font

    -
    -

    📅 2024/8/28 12:01 - Ver 0.1.6.58

    -

    New: • Web page enters full screen,Hide bottom right button。

    -
    -

    📅 2024/8/26 07:32 - Ver 0.1.6.54

    -

    New: • Add language support。

    -
    -

    📅 2024/8/4 14:32 - Ver 0.1.6.32

    -

    repair: • #253924 On SF official website CSS conflict,Causes the button in the lower right corner to become longer,across the bottom of the page。
    -How to fix it: • Change button class name button.script-button 👉 scrbutton.script-button

    -
    -

    📅 2024/7/18 08:45 - Ver 0.1.6.9

    -

    optimization: • Cancel default sorting,Sort by update time instead。

    -
    -

    📅 2024/6/26 06:43 - Ver 0.1.6.1

    -

    New: • Add support for mobile devices,Can also be used on mobile phones~
    -Revise: • Cancel the operation of clearing the list when a search error occurs。

    -
    - -
    - - - - - -# Script Finder - -The Script Finder userscript allows you to find and manage user scripts on any website. It provides a convenient way to search and install userscripts from Greasy Fork. With Script Finder, you can easily enhance your browsing experience by adding custom scripts to your favorite websites easily. - - - -## Features - -- Search for userscripts based on website domain -- View detailed information about each script, including author, description, installs, version and rating -- Install userscripts with a single click - - - -## How to Use - -1. Install a userscript manager such as Tampermonkey or Greasemonkey in your browser -2. Install the Script Finder userscript by visiting the Greasy Fork and clicking the "Install" button -3. After installation, a "Scripts" button will appear on your browser toolbar -4. Click the "Scripts" button to open the Script Finder interface -5. Use the search bar to find userscripts for a specific website -6. Click on a userscript to view more details or install it by one-click -7. Enjoy discovering and using new userscripts with Script Finder! - -**Note**: This userscript requires a userscript manager extension to be installed in your browser. - - - -## Preview -![fi.png](https://s2.loli.net/2024/08/05/WOkL8vV2oxRASYQ.png) -![show.png](https://s2.loli.net/2024/08/05/EBsldxGySe9Kf3w.png) - - - -## Aoriginal Author - - -# [shiquda](https://greasyfork.org/zh-CN/scripts/472056-script-finder) - - - -## Modify content - -- Added support for mobile devices, mobile phones can also be used~ -- Cancel the operation of clearing the list when a search error occurs -- Cancel the default sorting and change to sorting by update time - - - - - - - - - -> ### 🔍you may be looking forGreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/scroll-button/README.md b/Script details/scroll-button/README.md deleted file mode 100644 index 496343941..000000000 --- a/Script details/scroll-button/README.md +++ /dev/null @@ -1,157 +0,0 @@ - -
    - - - - - -
    -

    上下滚动小按钮

    -

    「 页面右侧添加上下滚动按钮 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - -在每个网页的右侧添加上下按钮,方便滚动。 -![1.png](https://s2.loli.net/2024/08/24/nOVbHuZzvmdtRUc.png) - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/scroll-to-top-button/README.md b/Script details/scroll-to-top-button/README.md deleted file mode 100644 index 0d2fbada8..000000000 --- a/Script details/scroll-to-top-button/README.md +++ /dev/null @@ -1,173 +0,0 @@ - -
    - - - - - -
    -

    一键置顶和置底按钮

    -

    「 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    🛠️ 一键置顶和置底按钮 更新日志

    -

    📅 2024/8/26 1:28 - Ver 1.2.0.48

    -

    请求:
    -• #257324 添加绑定热键。

    -
    - -
    - - - - -该脚本修改自 [金衍丞](https://greasyfork.org/scripts/498420/) - - -## 修改说明: -- **处于网页底部时,自动关闭滚动。** -- **处于滚动时,向下的按钮变成绿色。** - - - - -> ### 🔍你可能在找网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - - -![set.png](https://s2.loli.net/2024/08/26/3Et6ghaqMSo54KF.png) -![c.png](https://s2.loli.net/2024/08/26/UrwMu2lphEia3Q7.png) - - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/scroll-to-top-button/README_en.md b/Script details/scroll-to-top-button/README_en.md deleted file mode 100644 index 0df0fde13..000000000 --- a/Script details/scroll-to-top-button/README_en.md +++ /dev/null @@ -1,173 +0,0 @@ - -
    - - - - - -
    -

    One-touch top and bottom buttons

    -

    「 Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    🛠️ One-touch top and bottom buttons Change log

    -

    📅 2024/8/26 1:28 - Ver 1.2.0.48

    -

    ask:
    -• #257324 Add binding hotkey。

    -
    - -
    - - - - -This script is modified from [Kim Yong-jo](https://greasyfork.org/scripts/498420/) - - -## Modification instructions: -- **at the bottom of the page,Automatically turn off scrolling。** -- **While scrolling,The down button turns green。** - - - - -> ### 🔍You may be looking for web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - - -![set.png](https://s2.loli.net/2024/08/26/3Et6ghaqMSo54KF.png) -![c.png](https://s2.loli.net/2024/08/26/UrwMu2lphEia3Q7.png) - - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/scroll-to-top-button/scroll-to-top-button.user.js b/Script details/scroll-to-top-button/scroll-to-top-button.user.js deleted file mode 100644 index f77ef907b..000000000 --- a/Script details/scroll-to-top-button/scroll-to-top-button.user.js +++ /dev/null @@ -1,283 +0,0 @@ -// ==UserScript== -// @name Scroll to Top and Bottom Buttons -// @name:zh-CN 置顶和置底按钮 -// @description:zh-CN 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 -// @name:ar دبوس على الأزرار العلوية والسفلية -// @description:ar إنشاء زرين في كافة الصفحات,واحد لتنعيم العودة إلى الأعلى,واحد للتمرير المستمر إلى الأسفل,انقر مرة أخرى لإلغاء التمرير إلى الأسفل -// @name:bg Закачете горния и долния бутон -// @description:bg Генерирайте два бутона на всички страници,Един за изглаждане обратно към върха,Един за непрекъснато превъртане до дъното,Щракнете отново, за да отмените, превъртете надолу -// @name:cs Připnout na horní a spodní tlačítka -// @description:cs Vygenerujte dvě tlačítka na všech stránkách,Jeden pro vyhlazení zpět nahoru,Jeden pro nepřetržité posouvání dolů,Dalším kliknutím zrušíte posun dolů -// @name:da Fastgør til top og bund knapper -// @description:da Generer to knapper på alle sider,En til at glatte tilbage til toppen,En til kontinuerlig rulning til bunden,Klik igen for at annullere scroll til bunden -// @name:de An die oberen und unteren Knöpfe stecken -// @description:de Generieren Sie zwei Schaltflächen auf allen Seiten,Eine zum Glätten nach oben,Eine für kontinuierliches Scrollen nach unten,Klicken Sie erneut, um den Bildlauf nach unten abzubrechen -// @name:el Καρφιτσώστε τα κουμπιά πάνω και κάτω -// @description:el Δημιουργήστε δύο κουμπιά σε όλες τις σελίδες,Ένα για λείανση πίσω στην κορυφή,Ένα για συνεχή κύλιση προς τα κάτω,Κάντε ξανά κλικ για να ακυρώσετε την κύλιση προς τα κάτω -// @name:en Pin to top and bottom buttons -// @description:en Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom -// @name:eo Alpinglu al supraj kaj malsupraj butonoj -// @description:eo Generu du butonojn sur ĉiuj paĝoj,Unu por glatigi reen al la supro,Unu por kontinua movo al la fundo,Alklaku denove por nuligi rulumadon malsupre -// @name:es Fijar a los botones superior e inferior -// @description:es Generar dos botones en todas las páginas.,Uno para alisar hasta arriba.,Uno para desplazamiento continuo hasta el final.,Haga clic nuevamente para cancelar, desplácese hacia abajo -// @name:fi Kiinnitä painikkeet ylä- ja alaosaan -// @description:fi Luo kaksi painiketta kaikille sivuille,Yksi tasoittamiseen takaisin yläosaan,Yksi jatkuvaan vierittämiseen pohjaan,Napsauta uudelleen peruuttaaksesi vierityksen alas -// @name:fr Épingler sur les boutons du haut et du bas -// @description:fr Générez deux boutons sur toutes les pages,Un pour lisser vers le haut,Un pour un défilement continu vers le bas,Cliquez à nouveau pour annuler le défilement vers le bas -// @name:he הצמד לחצנים למעלה ולמטה -// @description:he צור שני כפתורים בכל הדפים,אחד להחלקת חזרה למעלה,אחד לגלילה רציפה לתחתית,לחץ שוב כדי לבטל את הגלילה למטה -// @name:hr Pričvrstite na gornji i donji gumb -// @description:hr Generirajte dva gumba na svim stranicama,Jedan za glačanje natrag na vrh,Jedan za kontinuirano pomicanje do dna,Kliknite ponovno za odustajanje pomaknite se do dna -// @name:hu Rögzítse a felső és alsó gombokat -// @description:hu Minden oldalon hozzon létre két gombot,Az egyik a tetejére való visszasimításhoz,Egy a folyamatos görgetéshez az aljára,Kattintson újra a lefelé görgetés megszakításához -// @name:id Sematkan ke tombol atas dan bawah -// @description:id Hasilkan dua tombol di semua halaman,Satu untuk menghaluskan kembali ke atas,Satu untuk menggulir terus menerus ke bawah,Klik lagi untuk membatalkan gulir ke bawah -// @name:it Aggiungi ai pulsanti superiore e inferiore -// @description:it Genera due pulsanti su tutte le pagine,Uno per tornare in cima,Uno per lo scorrimento continuo verso il basso,Fare di nuovo clic per annullare lo scorrimento fino in fondo -// @name:ja 上下のボタンにピン留めする -// @description:ja すべてのページに 2 つのボタンを生成する,1 つはトップに戻るためのスムージング用,1 つは下まで継続的にスクロールするためのもの,もう一度クリックすると下までスクロールがキャンセルされます -// @name:ka ჩაამაგრეთ ზედა და ქვედა ღილაკები -// @description:ka შექმენით ორი ღილაკი ყველა გვერდზე,ერთი ზევით დასაბრუნებლად,ერთი ბოლოში უწყვეტი გადახვევისთვის,დააწკაპუნეთ ხელახლა გადახვევის გასაუქმებლად ბოლოში -// @name:ko 상단 및 하단 버튼에 고정 -// @description:ko 모든 페이지에 두 개의 버튼 생성,하나는 위쪽으로 부드럽게 하기 위한 것입니다.,하나는 아래쪽으로 계속 스크롤하기 위한 것입니다.,취소하려면 다시 클릭하세요. 맨 아래로 스크롤 -// @name:nl Speld vast aan de bovenste en onderste knoppen -// @description:nl Genereer twee knoppen op alle pagina’s,Eén om terug naar boven glad te strijken,Eén voor continu naar beneden scrollen,Klik nogmaals om te annuleren. Scroll naar beneden -// @name:nb Fest til topp- og bunnknapper -// @description:nb Generer to knapper på alle sider,En for å glatte tilbake til toppen,En for kontinuerlig rulling til bunnen,Klikk på nytt for å avbryte bla til bunnen -// @name:pl Przypnij do górnego i dolnego przycisku -// @description:pl Wygeneruj dwa przyciski na wszystkich stronach,Jeden do wygładzania z powrotem do góry,Jeden do ciągłego przewijania w dół,Kliknij ponownie, aby anulować przewijanie w dół -// @name:pt-BR Fixar nos botões superior e inferior -// @description:pt-BR Gere dois botões em todas as páginas,Um para suavizar de volta ao topo,Um para rolagem contínua até o final,Clique novamente para cancelar a rolagem para baixo -// @name:ro Fixați butoanele de sus și de jos -// @description:ro Generați două butoane pe toate paginile,Unul pentru netezirea înapoi în vârf,Unul pentru defilarea continuă până în jos,Faceți clic din nou pentru a anula derularea în jos -// @name:ru Закрепить на верхней и нижней кнопках -// @description:ru Создать две кнопки на всех страницах,Один для сглаживания обратно наверх,Один для непрерывной прокрутки вниз,Нажмите еще раз, чтобы отменить прокрутку вниз -// @name:sk Pripnúť na horné a spodné tlačidlo -// @description:sk Vygenerujte dve tlačidlá na všetkých stránkach,Jeden na vyhladenie späť nahor,Jeden pre plynulé posúvanie nadol,Opätovným kliknutím zrušíte posúvanie nadol -// @name:sr Закачите горње и доње дугме -// @description:sr Генеришите два дугмета на свим страницама,Један за заглађивање назад на врх,Један за непрекидно скроловање до дна,Кликните поново да бисте отказали померање до дна -// @name:sv Fäst knappar upptill och nedtill -// @description:sv Skapa två knappar på alla sidor,En för att jämna tillbaka till toppen,En för kontinuerlig rullning till botten,Klicka igen för att avbryta scroll till botten -// @name:th ปักหมุดที่ปุ่มบนและล่าง -// @description:th สร้างสองปุ่มในทุกหน้า,หนึ่งอันสำหรับปรับให้เรียบกลับไปด้านบน,หนึ่งรายการสำหรับการเลื่อนไปที่ด้านล่างอย่างต่อเนื่อง,คลิกอีกครั้งเพื่อยกเลิกการเลื่อนไปด้านล่าง -// @name:tr Üst ve alt düğmelere sabitle -// @description:tr Tüm sayfalarda iki düğme oluşturun,En üste doğru yumuşatmak için bir tane,Aşağıya doğru sürekli kaydırma için bir tane,Aşağıya kaydırmayı iptal etmek için tekrar tıklayın -// @name:ug ئۈستى ۋە ئاستى كۇنۇپكىلارغا بېسىڭ -// @description:ug بارلىق بەتلەردە ئىككى كۇنۇپكا ھاسىل قىلىڭ,يۇقىرىغا قايتىش ئۈچۈن بىرى,ئاستىغا توختىماي دومىلاش ئۈچۈن بىرى,ئاستىنى سىيرىشنى قايتا چېكىڭ -// @name:uk Прикріпіть до верхньої та нижньої кнопок -// @description:uk Згенеруйте дві кнопки на всіх сторінках,Один для згладжування назад до верху,Один для безперервного прокручування вниз,Клацніть ще раз, щоб скасувати прокрутку вниз -// @name:vi Ghim vào nút trên và dưới -// @description:vi Tạo hai nút trên tất cả các trang,Một để làm mịn trở lại đầu trang,Một để cuộn liên tục xuống phía dưới,Bấm lần nữa để hủy cuộn xuống dưới cùng -// @name:zh-TW 置頂和置底按鈕 -// @description:zh-TW 在所有頁面產生兩個按鈕,一個用於順滑回到頂部,一個用於持續滾動到底部,再次點擊取消捲動到底部 -// @name:zh-HK 置頂和置底按鈕 -// @description:zh-HK 在所有頁面產生兩個按鈕,一個用於順滑回到頂部,一個用於持續滾動到底部,再次點擊取消捲動到底部 -// @name:fr-CA Épingler sur les boutons du haut et du bas -// @description:fr-CA Générez deux boutons sur toutes les pages,Un pour lisser vers le haut,Un pour un défilement continu vers le bas,Cliquez à nouveau pour annuler le défilement vers le bas -// @description Generate two buttons on all pages, one for smoothly scrolling back to the top and one for continuous scrolling to the bottom. Click again to stop scrolling to the bottom. -// @version 1.2.0.72 -// @run-at document-end -// @match *://*/* -// @license MIT -// @grant GM_registerMenuCommand -// @grant GM_setValue -// @grant GM_getValue -// @namespace https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAADO0lEQVR4nO3ZXUsUURwG8P0ACYoXoWheRYi9kG3zQAR9RjW6cAV3LyKKIMKKunHTnNFdtTNW0CewFCIyqjsxTmovYO7O7nnd//PAAdmLceb57f/M7G6pxDAMwzAR5eLj1bOXXyxtlZfW98vL6/v6b/2a7/MSkfGHT8Ym62vfkOUHf6/JeuPH+MLCed/nJ7J8EMF/+SCC//JBBP/lgwj+ywcRus+lZ/WRq4ur3zst/3jpY0zcez5q4JTk5OarNwPXXjZ3uy3/eE08Xdw9d+fugO/riiJX6qofWd40Vb5e5eX1g6FKTQ3XaoO+r09c+dArVQfDlRoRWm07SNWG8fKPlgY4WhvcjhyXj38BiOBk28lOBeB25LJ8nAAgHsFl+fgPgFgE1+XjFABxCD7KRwsAMQi+ykcbAD2P4LN8tAnQswi+y0cBgJ5DCKF8FAToGYRQykcHANEjhFQ+OgSIFiG08tEFQHQIIZaPLgGiQQi1fBgACB4h5PJhCCBYhNDLh0GA4BBiKB+GAYJBiKV8WADwjmCz/CRTry0ANHsG4cbK+74kVZtW3q2p2vj1G7Hh4+of4vUP8jYQhivVzcG5uT5nAMjy2zbLLx3+D6PH1se0ijBbm3EGkKRqx8a2c73R+D3KNgB0xubn+61sR7PVHWcASNVHm+XbBLCFMDRb2y65CtJ8xsa24wrgz3ZU3TR4H5guRXcTTk8u3wWAWQTHN2ETj6EnbTuuAUxsR1F+FmhVvkuAbhCC+TScpHnDZPmuATpBCKL8ogjtlu8DoAhCUOW3i1CkfF8A7SAEWX4rhKLl+wQ4DSHo8o9zq/7uTJKq6STLtw+XmtKvFT0OPALo6MdK/fXCUKX6QS/9nO/8UdNn4BlAfEAAvwEBCCA64AQQQHTACSCA6IATQADRASeAAKIDTgABRAecAAKIDjgBBBAdcAIIIDrgBBBAdMAJIIDogBNAANEBJ4AAogNOAAFEB5wAAogOOAEEEB1wAgggOuAEEEB0wAnwmyRTX40hpPkXz5cTX5Dlj0wBJGl+3/f1RJfyytaFJFOfu3/3q0/J2taI7+uJMuXm21Fk+QOk+V4H286efuezfIZhGKYUaH4C72t5mm5DSxAAAAAASUVORK5CYII= -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-up-96.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== -(function () { - 'use strict' - let isScrollingToBottom = false - let buttonTopKey = GM_getValue("buttonTopKey", "") - let buttonBottomKey = GM_getValue("buttonBottomKey", "") - var style = document.createElement('style') - GM_registerMenuCommand("SetHotkey", showHotkeyModal) - function showHotkeyModal() { - let modalHtml = ` -
    -

    ButtonKey

    -
    - - -
    -
    - - -
    -
    - - -
    -
    ` - let modalDiv = document.createElement('div') - modalDiv.innerHTML = modalHtml - document.body.appendChild(modalDiv) - document.getElementById("hotkeyInput1").addEventListener("keydown", function (event) { - event.preventDefault() - buttonTopKey = event.key - this.value = buttonTopKey - }) - document.getElementById("hotkeyInput2").addEventListener("keydown", function (event) { - event.preventDefault() - buttonBottomKey = event.key - this.value = buttonBottomKey - }) - document.getElementById("saveHotkeys").addEventListener("click", function () { - GM_setValue("buttonTopKey", buttonTopKey) - GM_setValue("buttonBottomKey", buttonBottomKey) - closeModal() - }) - document.getElementById("closeModal").addEventListener("click", closeModal) - } - function closeModal() { - let modal = document.getElementById("hotkeyModal") - if (modal) { - modal.remove() - } - } - document.addEventListener("keydown", function (event) { - if (event.target.matches('input, textarea, [contenteditable="true"]')) { - return - } - if (event.key === GM_getValue("buttonTopKey")) { - goToTop() - } else if (event.key === GM_getValue("buttonBottomKey")) { - isScrollingToBottom = toggleScrolling(buttonBottom, isScrollingToBottom) - } - }) - style.innerHTML = ` -:root { - --button-size: 29.4px; /* 按钮的大小 */ - --button-margin: 1px; /* 按钮之间的间距 */ -} -.GO_TO_TOP_button, .GO_TO_BOTTOM_button { - width: var(--button-size); /* 按钮大小 */ - height: var(--button-size); /* 按钮大小 */ - border-radius: 5.6px; /* 縮小30% */ - box-shadow: 0 3px 6px rgb(0 0 0 / 16%), 0 1px 2px rgb(0 0 0 / 23%); - position: fixed; - right: 14px; /* 缩小30% */ - display: flex; - align-items: center; - justify-content: center; - z-index: 99999999; - background-color: white; - opacity: 0.8; - transition: opacity 0.2s ease-in-out; - cursor: pointer; -} - .GO_TO_TOP_button svg, .GO_TO_BOTTOM_button svg { - left: 16.8px; /* 縮小30% */ - height: 16.8px; /* 縮小30% */ - margin: 0; - } - .GO_TO_TOP_button { - bottom: 49px; /* 縮小30% */ - } - .GO_TO_BOTTOM_button { - bottom: 14px; /* 縮小30% */ - } - ` - document.head.appendChild(style) - const goToTop = () => { - window.scrollTo({ - top: 0, - behavior: 'smooth' - }) - } - let bottomInterval - const startScrollingToBottom = () => { - bottomInterval = setInterval(() => { - window.scrollTo({ - top: document.body.scrollHeight, - behavior: 'smooth' - }) - }, 1000) - let checkTimeout = setTimeout(() => { - if (window.innerHeight + window.scrollY >= document.body.scrollHeight) { - if (buttonBottom.style.backgroundColor === 'green') { - buttonBottom.click() - // alert("已处于最底端"); - } - } - }, 3000) - window.addEventListener('scroll', () => { - if (window.innerHeight + window.scrollY < document.body.scrollHeight) { - clearTimeout(checkTimeout) - checkTimeout = setTimeout(() => { - if (buttonBottom.style.backgroundColor === 'green') { - buttonBottom.click() - // alert("自动滚动到底部已停止。"); - } - }, 3000) - } - }) - buttonBottom.style.opacity = '0.8' - buttonBottom.style.display = 'flex' - } - const stopScrollingToBottom = () => { - clearInterval(bottomInterval) - } - const buttonTop = document.createElement('div') - buttonTop.className = 'GO_TO_TOP_button' - buttonTop.innerHTML = ` - - - - ` - const buttonBottom = document.createElement('div') - buttonBottom.className = 'GO_TO_BOTTOM_button' - buttonBottom.innerHTML = ` - - - - ` - buttonTop.addEventListener('click', goToTop) - buttonBottom.addEventListener('click', () => { - isScrollingToBottom = toggleScrolling(buttonBottom, isScrollingToBottom) - }) - function toggleScrolling(buttonBottom, isScrollingToBottom) { - if (isScrollingToBottom) { - stopScrollingToBottom() - buttonBottom.style.transform = 'scale(1)' - buttonBottom.style.backgroundColor = 'white' // 改回原来的背景色 - } else { - startScrollingToBottom() - buttonBottom.style.transform = 'scale(1.1)' - buttonBottom.style.backgroundColor = 'green' // 改为绿色 - } - return !isScrollingToBottom - } - buttonTop.style.display = 'none' - buttonBottom.style.display = 'none' - document.body.appendChild(buttonTop) - document.body.appendChild(buttonBottom) - let timer - window.addEventListener('scroll', () => { - if (window.pageYOffset > 50) { - buttonTop.style.opacity = '0.8' - buttonTop.style.display = 'flex' - buttonBottom.style.opacity = '0.8' - buttonBottom.style.display = 'flex' - } else if (window.pageYOffset === 0) { - buttonTop.style.opacity = '0' - buttonBottom.style.opacity = '0' - setTimeout(() => { - buttonTop.style.display = 'none' - buttonBottom.style.display = 'none' - }, 200) - } - clearTimeout(timer) - timer = setTimeout(() => { - buttonTop.style.opacity = '0' - buttonBottom.style.opacity = '0' - setTimeout(() => { - buttonTop.style.display = 'none' - buttonBottom.style.display = 'none' - }, 200) - }, 1800) - }) -})() diff --git a/Script details/thisav-auto-login-helper/Change history/README.md b/Script details/thisav-auto-login-helper/Change history/README.md deleted file mode 100644 index e9c5e302b..000000000 --- a/Script details/thisav-auto-login-helper/Change history/README.md +++ /dev/null @@ -1 +0,0 @@ -初始版本,欢迎使用 \ No newline at end of file diff --git a/Script details/thisav-auto-login-helper/README.md b/Script details/thisav-auto-login-helper/README.md deleted file mode 100644 index 325a19420..000000000 --- a/Script details/thisav-auto-login-helper/README.md +++ /dev/null @@ -1,181 +0,0 @@ - -
    - - - - - -
    -

    TissAV自动登录

    -

    「 检测 TissAV 状态,并且在未登录时自动登录 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    更新记录

    初始版本,欢迎使用

    - -
    - - - - - -# ThisAV AutoLogin Helper - -这是一个用于ThisAV管理用户账户的脚本,主要功能自动登录以及检测用户是否已登录。 - - - -## 功能 - -- **设置账户**: 通过弹出模态框允许用户设置电子邮件和密码。 -- **登录功能**: 使用用户提供的电子邮件和密码进行登录,并处理登录错误。 -- **用户检测**: 检测用户是否已登录,如果未登录则尝试自动登录。 - - - -## 安装和使用 - -1. **安装脚本**: - - 将脚本复制到 Greasemonkey 或 Tampermonkey 插件中。 - - 确保脚本在你希望运行的网页上启用。 - -2. **设置账户**: - - 点击浏览器工具栏中的 Greasemonkey/Tampermonkey 图标。 - - 选择“Set Account”选项,输入你的电子邮件和密码,然后点击“Save”。 - -3. **自动登录**: - - 脚本会自动检测用户是否已登录。如果检测到未登录状态,它将使用提供的账户信息尝试登录。 - - - - - - - -> ### 🔍你可能在找成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/thisav-auto-login-helper/README_en.md b/Script details/thisav-auto-login-helper/README_en.md deleted file mode 100644 index cf9f04c8d..000000000 --- a/Script details/thisav-auto-login-helper/README_en.md +++ /dev/null @@ -1,181 +0,0 @@ - -
    - - - - - -
    -

    TissAVAutomatic login

    -

    「 Detection TissAV state,and automatically log in when not logged in 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    Update record

    initial version,Welcome

    - -
    - - - - - -# ThisAV AutoLogin Helper - -This script is used for managing user accounts on ThisAV. It provides functionalities for automatic login and checking if the user is already logged in. - - - -## Features - -- **Account Setup**: Allows users to set their email and password via a popup modal. -- **Login Functionality**: Logs in using the provided email and password, and handles login errors. -- **User Detection**: Checks if the user is logged in. If not, it attempts to log in automatically. - - - -## Installation and Usage - -1. **Install the Script**: - - Copy the script into the Greasemonkey or Tampermonkey extension. - - Ensure the script is enabled on the webpage where you want it to run. - -2. **Set Up Account**: - - Click on the Greasemonkey/Tampermonkey icon in your browser toolbar. - - Select the “Set Account” option, enter your email and password, and then click “Save”. - -3. **Automatic Login**: - - The script will automatically check if the user is logged in. If it detects that the user is not logged in, it will attempt to log in using the provided account information. - - - - - - - -> ### 🔍You may be looking for adult scripts -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - - - - - -## Help - - Recommended browsers and script managers: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** - -

    More user scripts / -back to top↑

    - - - - - - - -### View all publish scripts - - - - -> ### 🔍you may be looking for ChatGPTRelated scripts -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT 聊天Copy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“复制代码”按钮 -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - - -> ### 🔍you may be looking for Web related scripts -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopy限制**](https://greasyfork.org/scripts/505207): fuck you CSDN 登录复制,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll -> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - - -> ### 🔍you may be looking for GitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - - -> ### 🔍you may be looking for GoogleRelated scripts -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - - -> ### 🔍you may be looking for GreasyForkRelated scripts -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search -> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - - -> ### 🔍you may be looking for adult script -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in - - - -> ### 🔍you may be looking for automatic translation -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - -
    - - - diff --git a/Script details/translate-only-chinese/README.md b/Script details/translate-only-chinese/README.md deleted file mode 100644 index c192f6053..000000000 --- a/Script details/translate-only-chinese/README.md +++ /dev/null @@ -1,199 +0,0 @@ - -
    - - - - - -
    -

    网页翻译——自动翻译为中文

    -

    「 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 」

    - Views - -

    Download:Github | ⭐Greasy - Fork

    - -
    - - - - - - -> ### 🔍你可能在找自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - - - -

    网页翻译——翻译为中文修改脚本为自动翻译.无需点击或者按键

    -

    特别说明

    -
      -
    • -

      已适配 PC - 端,移动端

      -
    • -
    • -

      该版本主要只针对外语翻译为中文,如果你需要多种语言的互相翻译,请直接下载原脚本:网页翻译

      -
    • -
    -

    1 功能介绍

    -
      -
    • 给每个非中文的网页在左下角添加一个 google 翻译图标,在右下角添加显示原网页按钮 -
    • -
    • 快捷键:点击油猴或者暴力猴扩展的图标,脚本下面有【设置快捷键】,点击进行设置
    • -
    -

    2 插件实现简介

    -
      -
    • 直接调用 Google 的翻译接口对非中文网页进行翻译.
    • -
    -

    3 使用注意

    -
      -
    • 由于脚本调用了 Google 的翻译接口,所以可能需要科学上网手段(目前暂时不需要,可能后面谷歌的被墙了就要了)
    • -
    • 由于一些网站使用了 CSP(如:github),所以可能有些网站翻译不了。有些网站可以使用以下方法解决,使用扩展,先去掉 CSP,就能够解决这类网站不能翻译的问题.下列扩展亲测可用: -
    • -
    - - - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

    更多用户脚本 / -回到顶部↑

    - - - - - - - -### 查看所有发布脚本 - - - - -> ### 🔍你可能在找 ChatGPT相关脚本 -> - [**ChatGPT代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - - -> ### 🔍你可能在找 网页相关脚本 -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除CSDN登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - - -> ### 🔍你可能在找 GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - - -> ### 🔍你可能在找 Google相关脚本 -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - - -> ### 🔍你可能在找 GreasyFork相关脚本 -> - [**GreasyFork适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强greasyfork导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork糊裱匠**](https://greasyfork.org/scripts/497346): 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - - -> ### 🔍你可能在找 成人脚本 -> - [**MiSSAV自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV收藏管理器**](https://greasyfork.org/scripts/497682): miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav -> - [**TissAV自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 - - - -> ### 🔍你可能在找 自动翻译 -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - -
    - - - diff --git a/Script details/translate-only-chinese/translate-only-chinese.user.js b/Script details/translate-only-chinese/translate-only-chinese.user.js deleted file mode 100644 index 711e898a7..000000000 --- a/Script details/translate-only-chinese/translate-only-chinese.user.js +++ /dev/null @@ -1,875 +0,0 @@ -// ==UserScript== -// @name 网页翻译——自动翻译为中文 -// @author Kaiter-Plus & 人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @description 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 -// @version 0.31.0.23 -// @license MIT -// @include *://* -// @exclude /^(http|https).*((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/ -// @exclude /.*duyaoss\.com/ -// @exclude /.*lanzous\.com/ -// @exclude /.*w3school.*cn/ -// @exclude /.*iqiyi\.com/ -// @exclude /.*baidu.*/ -// @exclude /.*cnblogs\.com/ -// @exclude /.*csdn\.net/ -// @exclude /.*zhku\.edu\.cn/ -// @exclude /.*zhihuishu\.com/ -// @exclude /.*aliyuncs\.com/ -// @exclude /.*chaoxing\.com/ -// @exclude /.*youku\.com/ -// @exclude /.*examcoo\.com/ -// @exclude /.*mooc\.com/ -// @exclude /.*bilibili\.com/ -// @exclude /.*qq\.com/ -// @exclude /.*yy\.com/ -// @exclude /.*huya\.com/ -// @exclude /localhost/ -// @exclude /.*acfun\.cn/ -// @exclude /.*eleme\.cn/ -// @exclude /.*douyin\.com/ -// @icon data:image/png;base64,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 -// @noframes -// @grant GM_addStyle -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_notification -// @grant GM_registerMenuCommand -// @grant GM_unregisterMenuCommand -// ==/UserScript== - -; (function () { - 'use strict' - - const supportApplet = - 'data:image/png;base64,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' - - // 取消没有用的图片请求 - const pointTimer = setInterval(() => { - const banner = document.getElementById(':2.container') - if (banner) { - const doc = banner.contentWindow.document || banner.contentDocument - const imgs = doc.getElementsByTagName('img') - for (let i = 0; i < imgs.length; i++) { - imgs[i].src = '' - } - clearInterval(pointTimer) - } - }, 10) - - // 菜单 - const menu = [ - { - key: 'position', - name: '按钮位置', - value: true, - showNotification: true, - tip: { - open: '👈', - close: '👉' - }, - click: setButtonPosition - }, - { - key: 'isCheck', - name: '自动检测中文', - value: true, - showNotification: true, - tip: { - open: '✅', - close: '❌' - }, - click: null - }, - { - key: 'isShowTip', - name: '显示翻译建议', - value: false, - showNotification: true, - tip: { - open: '✅', - close: '❌' - }, - click: setShowTip - }, - { - key: 'setHotkey', - name: '设置快捷键', - value: false, - showNotification: false, - tip: { - open: '', - close: '' - }, - click: openSettings - }, - { - key: 'support', - name: '赞助一下作者', - value: false, - showNotification: false, - tip: { - open: '', - close: '' - }, - click: openSupport - } - ] - - // 保存已注册的菜单 - const munuRegister = [] - - // 配置默认菜单 - menu.forEach(v => { - if (GM_getValue(v.key) === undefined || GM_getValue(v.key) === null) GM_setValue(v.key, v.value) - }) - - // 注册菜单 - function registerMenuCommand() { - if (munuRegister.length === menu.length) { - munuRegister.forEach(v => { - GM_unregisterMenuCommand(v) - }) - } - menu.forEach((v, i) => { - v.value = GM_getValue(v.key) - munuRegister[i] = GM_registerMenuCommand(`${v.value ? v.tip.open : v.tip.close} ${v.name}`, () => { - menuSwitch(v) - }) - }) - } - - // 切换菜单 - function menuSwitch(item) { - // 设置数据 - item.value = !item.value - GM_setValue(item.key, item.value) - // 系统通知 - if (item.showNotification) { - GM_notification({ - text: `已${item.value ? item.tip.open : item.tip.close}[${item.name}] 功能`, - title: '网页翻译', - timeout: 1000 - }) - } - // 如果有点击事件,执行 - if (item.click) item.click() - // 重新注册 - registerMenuCommand() - } - - // 打开设置快捷键弹窗 - function openSupport() { - document.getElementById('k-support-wrap').classList.add('show') - document.getElementById('k-support-content').classList.add('show') - } - - // 获取 head - const head = document.head - // 获取body - const body = document.body - // 获取当前页面的语言 - const lang = document.documentElement.lang - // 获取网页的标题 - const pageTitle = document.title - // 获取网页使用的主要语言 - const mainLang = document.characterSet.toLowerCase() - - // 判断是不是中文网页 - function isChinesePage() { - // 获取网页标题 - const pageTitle = document.title - - // 获取网页语言 - const lang = document.documentElement.lang - const mainLang = document.characterSet.toLowerCase() - - // 定义日文字符的正则表达式 - const japaneseRegex = /[\u30A1-\u30FA\u30FD-\u30FF][\u3099\u309A\u30A1-\u30FF]*[\u3099\u309A\u30A1-\u30FA\u30FC-\u30FF]|[\uFF66-\uFF6F\uFF71-\uFF9D][\uFF65-\uFF9F]*[\uFF66-\uFF9F]/ - // /[\u3040-\u30FF\u31F0-\u31FF\uFF66-\uFF9F]/ - // /[\u30A1-\u30FA\u30FD-\u30FF][\u3099\u309A\u30A1-\u30FF]*[\u3099\u309A\u30A1-\u30FA\u30FC-\u30FF]|[\uFF66-\uFF6F\uFF71-\uFF9D][\uFF65-\uFF9F]*[\uFF66-\uFF9F]/ - // 如果网页标题中包含日文字符,则返回false - if (japaneseRegex.test(pageTitle)) { - return false - } - - // 定义中文字符的正则表达式 - const chineseRegex = /[\u4E00-\u9FFF]/ - - // 如果网页语言是中文、英文或网页标题含有中文字符,则返回true - return ( - GM_getValue('isCheck') && - (lang.substring(0, 2) === 'zh' || mainLang.substring(0, 2) === 'gb' || chineseRegex.test(pageTitle)) - ) - } - - // 打开设置快捷键弹窗 - function openSettings() { - document.querySelector('.hotkey-settings').classList.add('show') - document.querySelector('.hotkey-settings__container').classList.add('show') - } - - // 位置信息样式 - let positionStyle = null - // 设置按钮位置 - function setButtonPosition() { - if (positionStyle) positionStyle.parentNode.removeChild(positionStyle) - positionStyle = GM_addStyle(` - .buttonContainer { - ${GM_getValue('position') ? 'left' : 'right'}: 0; - transform: translateX(${GM_getValue('position') ? '-' : ''}80%); - } - `) - } - - // 显示翻译建议信息 - let tipStyle = null - function setShowTip() { - if (tipStyle) tipStyle.parentNode.removeChild(tipStyle) - tipStyle = GM_addStyle(` - #goog-gt- { - visibility: ${GM_getValue('isShowTip') ? 'visible' : 'hidden!important'}; - display: ${GM_getValue('isShowTip') ? 'block' : 'none!important'}; - } - .goog-text-highlight { - background-color: ${GM_getValue('isShowTip') ? '#c9d7f1' : 'inherit!important'}; - box-shadow: ${GM_getValue('isShowTip') ? '2 2 4 #99a' : '0 0 0 0 transparent!important'}; - } - `) - } - - // 注册菜单 - registerMenuCommand() - - const keyName = ['translate', 'recover'] - let hotkey = GM_getValue('hotkey') - hotkey = hotkey ? hotkey : [] - - const exclude = /control|shift|alt/ - - // 设置按钮 - function setting() { - document.getElementById(`i-hotkey`).value = '松开手指即可设置完成!' - document.removeEventListener('keydown', clickHotkey) - document.addEventListener('keyup', setHotkey) - } - - // 开始设置 - function setHotkey(e) { - hotkey = [] - if (!exclude.test(e.key.toLowerCase())) { - if (e.ctrlKey) hotkey.push('ctrl') - if (e.shiftKey) hotkey.push('shift') - if (e.altKey) hotkey.push('alt') - hotkey.push(e.key) - // 保存键值 - GM_setValue('hotkey', hotkey) - document.getElementById(`i-hotkey`).value = `${hotkey.join(' + ')}` - // 设置完成移除事件 - document.removeEventListener('keyup', setHotkey) - } - } - - // 按键按下事件 - document.addEventListener('keydown', clickHotkey) - - // 快捷键 - function clickHotkey(e) { - const keys = [] - if (!exclude.test(e.key.toLowerCase())) { - if (e.ctrlKey) keys.push('ctrl') - if (e.shiftKey) keys.push('shift') - if (e.altKey) keys.push('alt') - keys.push(e.key) - let key = '' - if (hotkey[0] && hotkey.length === keys.length) { - const isRight = hotkey.every(v => { - return keys.indexOf(v) > -1 - }) - if (isRight) { - const reg = /googtrans=\/auto\/zh-CN/g - key = reg.test(document.cookie) ? keyName[1] : keyName[0] - } - } - if (key) document.getElementById(`${key}Button`).click() - } - } - - // 关闭按钮 - function closeSettings() { - document.querySelector('.hotkey-settings').classList.remove('show') - document.querySelector('.hotkey-settings__container').classList.remove('show') - // 重新添加按键按下事件 - document.addEventListener('keydown', clickHotkey) - } - - // 快捷键设置结构 - function inttSettingsUI() { - // 主要容器 - const settings = document.createElement('div') - settings.className = 'hotkey-settings' - // 弹窗容器 - const container = document.createElement('div') - container.className = 'hotkey-settings__container' - // 关闭按钮 - const close = document.createElement('div') - close.className = 'hotkey-settings__close' - close.textContent = '×' - close.addEventListener('click', closeSettings) - // 标题 - const header = document.createElement('div') - header.className = 'hotkey-settings__header' - header.textContent = '快捷键设置' - // 设置区域 - const content = document.createElement('div') - content.className = 'hotkey-settings__content' - // 提示 - const tip = document.createElement('div') - tip.className = 'hotkey-settings__tip' - tip.textContent = '目前支持的快捷键附加键有:Ctrl, Shift, Alt' - // 设置区域内容 - const contentItem = document.createElement('div') - contentItem.className = 'hotkey-settings__content-item' - const title = document.createElement('span') - title.className = 'hotkey-settings__title' - title.textContent = '快捷键:' - const input = document.createElement('input') - input.id = `i-hotkey` - input.disabled = true - input.className = 'hotkey-input' - if (hotkey[0]) { - input.value = hotkey.join(' + ') - } else { - input.value = '还没有设置快捷键哦~' - } - input.setAttribute('type', 'text') - const button = document.createElement('button') - button.id = `b--hotkey` - button.className = 'hotkey-button' - button.textContent = '设置' - button.addEventListener('click', e => setting()) - contentItem.appendChild(title) - contentItem.appendChild(input) - contentItem.appendChild(button) - content.appendChild(contentItem) - container.appendChild(close) - container.appendChild(header) - container.appendChild(content) - container.appendChild(tip) - settings.appendChild(container) - document.body.appendChild(settings) - } - - // 设置快捷键的样式 - function addHotkeyStyle() { - GM_addStyle(` - .hotkey-settings { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 999999999; - backdrop-filter: blur(10px); - display: flex; - justify-content: center; - align-items: center; - font-size: 16px; - color: #606266; - visibility: hidden; - } - - .hotkey-settings.show { - visibility: visible; - } - - .hotkey-settings .hotkey-settings__container { - width: 400px; - border-radius: 6px; - box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 10%); - background-color: #fff; - transform: scale(0); - position: relative; - transition: transform 0.3s; - } - - .hotkey-settings__container.show { - transform: scale(1); - } - - .hotkey-settings__container .hotkey-settings__close { - width: 20px; - height: 20px; - line-height: 21px; - border-radius: 50%; - text-align: center; - color: #fff; - font-weight: bold; - background-color: #F56C6C; - position: absolute; - top: -6px; - right: -6px; - user-select: none; - } - - .hotkey-settings__container .hotkey-settings__close:hover { - opacity: 0.7; - } - - .hotkey-settings__container .hotkey-settings__header { - padding: 0 12px; - height: 30px; - line-height: 30px; - display: flex; - justify-content: space-between; - align-items: center; - } - - .hotkey-settings__container .hotkey-settings__content { - padding: 0 12px; - } - - .hotkey-settings__container .hotkey-settings__tip { - padding: 12px; - color: #909399; - } - - .hotkey-settings__container .hotkey-settings__content .hotkey-settings__content-item { - display: flex; - align-items: center; - } - - .hotkey-settings__container .hotkey-settings__content .hotkey-input { - flex: 1; - -webkit-appearance: none; - background-color: #fff; - background-image: none; - border-radius: 4px; - border: 1px solid #dcdfe6; - box-sizing: border-box; - color: #606266; - display: inline-block; - font-size: inherit; - height: 40px; - line-height: 40px; - outline: none; - padding: 0 15px; - margin: 6px 12px; - } - - .hotkey-settings__container .hotkey-settings__content .hotkey-button { - display: inline-block; - height: 40px; - line-height: 40px; - white-space: nowrap; - cursor: pointer; - border: 1px solid #409eff; - -webkit-appearance: none; - text-align: center; - box-sizing: border-box; - outline: none; - margin: 0; - transition: 0.1s; - font-weight: 500; - user-select: none; - padding: 0 15px; - font-size: 14px; - border-radius: 4px; - color: #fff; - background-color: #409eff; - } - - .hotkey-settings__container .hotkey-settings__content .hotkey-button:hover { - opacity: 0.5; - } - `) - } - - addHotkeyStyle() - inttSettingsUI() - - // 判断是不是中文,如果是则直接return,否则执行 - if (!isChinesePage()) { - // 创建网页元素方法 - function createElement(html, nodeText, attr, parent) { - const element = document.createElement(nodeText) - if (attr) { - element[attr] = html - } else { - element.innerHTML = html - } - parent.appendChild(element) - } - - // 初始化按钮位置 - setButtonPosition() - //key.push('alt') - // 初始化是否显示更好的翻译建议 - setShowTip() - - // 设置网页自动把 http 升级为 https - // const e = document.createElement('meta') - // e.setAttribute('http-equiv', 'Content-Security-Policy') - // e.setAttribute('content', 'upgrade-insecure-requests') - // head.appendChild(e) - - // 自定义样式,隐藏顶部栏 - GM_addStyle(` - html,body{ - top: 0!important; - } - #google_translate_element { - display: none; - } - .buttonContainer { - width: 6em; - position: fixed; - bottom: 30px; - z-index: 10000000; - user-select: none; - overflow: hidden; - text-align: center; - font-size: 13px; - line-height: 2em; - border-radius: 1em; - box-shadow: 1px 1px 3px 0 #888; - opacity: .5; - transition: all .3s; - } - .recoverPage, .translateButton { - float: left; - width: 50%; - box-sizing: border-box; - } - .recoverPage { - border-radius: 1em 0 0 1rem; - background-color: #fff; - } - .translateButton { - color: #fff; - border-radius: 0 1rem 1rem 0; - background-color: #55b9f3; - } - .buttonContainer:hover { - opacity: 1; - transform: translateX(0); - } - .recoverPage:active, .translateButton:active { - box-shadow: 1px 1px 3px 0 #888 inset; - } - /* 隐藏移动端顶部栏 */ - [id=":1.container"].skiptranslate { - display: none; - } - /* 隐藏 PC 端顶部栏 */ - [id=":2.container"].skiptranslate { - display: none; - } - `) - - // 创建容器 - createElement('google_translate_element', 'div', 'id', body) - - // 初始化 - createElement( - ` - function googleTranslateElementInit() { - new google.translate.TranslateElement( - { - pageLanguage: 'auto', - includedLanguages: 'zh-CN', - layout: /mobile/i.test(navigator.userAgent) ? 0 : 2 - }, - 'google_translate_element' - ) - // 清除图片的请求,加快访问速度 - let img = [].slice.call(document.querySelectorAll('#goog-gt- img,#google_translate_element img')) - img.forEach(function (v) { - const a = v - a.src = '' - let b = a.outerHTML.replace(//, () => { - return '' - }) - const c = document.createElement('div') - c.innerHTML = b - a.parentNode.insertBefore(c.children[0], a.parentNode.children[0]) - a.remove() - }) - // 获取设备信息 - const device = navigator.userAgent.indexOf('Mobile') - // 按钮容器 - const buttonContainer = document.createElement('div') - buttonContainer.setAttribute('class', 'notranslate buttonContainer') - document.body.appendChild(buttonContainer) - // 恢复按钮 - const recoverPage = document.createElement('div') - recoverPage.setAttribute('id', 'recoverButton') - recoverPage.setAttribute('class', 'notranslate recoverPage') - recoverPage.innerText = '恢复' - buttonContainer.appendChild(recoverPage) - // 点击恢复原网页 - recoverPage.onclick = () => { - let recoverIframe = null - if (~device) { - // 移动端 - const recoverDocument = document.getElementById(':1.container').contentWindow.document - recoverDocument.getElementById(':1.restore').click() - } else { - // PC端 - const recoverDocument = document.getElementById(':2.container').contentWindow.document - recoverDocument.getElementById(':2.restore').click() - } - } - // 翻译按钮 - if (~device) { - // 移动端 - let translateLang - const translateTimer = setInterval(() => { - translateLang = document.querySelector('.goog-te-combo') - if (translateLang) { - clearInterval(translateTimer) - // 添加翻译按钮 - const translateButton = document.createElement('div') - translateButton.setAttribute('id', 'translateButton') - translateButton.setAttribute('class', 'notranslate translateButton') - translateButton.innerText = '翻译' - buttonContainer.appendChild(translateButton) - // 点击翻译 - - - - - translateButton.onclick = () => { - - const event = document.createEvent('HTMLEvents') - event.initEvent('change', true, true) - event.eventType = 'message' - document.querySelector('.goog-te-combo').dispatchEvent(event) - } - translateButton.onclick() // 无需点击 立即翻译 - } - translateButton.onclick() // 无需点击 立即翻译 - }, 300) - translateButton.onclick() - } else { - // PC端 - let langIframe = document.querySelector('[title="语言翻译微件"]') - const langIframeTimer = setInterval(() => { - if (langIframe) { - const langDocument = langIframe.contentWindow.document || langIframe.contentDocument - let translateLang - const translateTimer = setInterval(() => { - translateLang = langDocument.querySelectorAll('table a')[1] - if (translateLang) { - clearInterval(translateTimer) - // 添加翻译按钮 - const translateButton = document.createElement('div') - translateButton.setAttribute('id', 'translateButton') - translateButton.setAttribute('class', 'notranslate translateButton') - translateButton.innerText = '翻译' - buttonContainer.appendChild(translateButton) - // 点击翻译 - // // 无需点击 立即翻译 所有非中文网站,自动点击 - translateLang.click() - - translateButton.onclick = () => { - translateLang.click() - } - } - }, 300) - clearInterval(langIframeTimer) - } else { - langIframe = document.querySelector('.goog-te-menu-frame') - } - }, 300) - } - // 删除元素 - const targetId = 'goog-gt-tt'; - const targetElement = document.getElementById(targetId); - if (targetElement) { - targetElement.remove(); - } - } - `, - 'script', - '', - head - - ) - - // 导入翻译接口 - createElement( - 'https://translate.google.com/translate_a/element.js?&cb=googleTranslateElementInit', - 'script', - 'src', - head - ) - key.push('alt') - // 排除一些代码的翻译 - const noTranslateArray = [ - '.bbCodeCode', - 'tt', - 'pre[translate="no"]', - 'pre', - '.post_spoiler_show', - '.c-article-section__content sub', - '.c-article-section__content sup', - '.c-article-equation', - '.mathjax-tex' - ] - noTranslateArray.forEach(selectorName => { - ;[...document.querySelectorAll(selectorName)].forEach(node => { - if (node.className.indexOf('notranslate') === -1) { - node.classList.add('notranslate') - } - }) - }) - - // 针对一些网站排除一些无需翻译的文字 - const noTranslateList = [ - { - site: 'cratchapixel.com', - selector: ['span.MathJax'] - } - ] - noTranslateList.forEach(item => { - if (~document.domain.indexOf(item.site)) { - item.selector.forEach(selectorName => { - let timer = null - let classList = document.querySelectorAll(selectorName) - if (!classList[0]) { - timer = setInterval(() => { - classList = document.querySelectorAll(selectorName) - if (classList[0]) { - clearInterval(timer) - ;[...classList].forEach(node => { - if (!~node.className.indexOf('notranslate')) { - node.classList.add('notranslate') - } - }) - } - }) - } - }) - } - }) - - // 解决一些网站开启脚本之后不能滚动 - function CanIScroll() { - // 其它网站 - const noScrollSite = ['curseforge.com'] - noScrollSite.forEach(site => { - if (~document.domain.indexOf(site)) { - GM_addStyle(` - html { - height: auto!important; - } - `) - } - }) - - // 解决 gatesnotes.com 开启脚本之后不能滚动的问题,原理 z-index 太低导致 - if (~document.domain.indexOf('gatesnotes.com')) { - GM_addStyle(` - .TGN_site { - z-index: 0!important; - } - `) - } - } - CanIScroll() - } - - // 添加支持作者弹框 - function addSupportDialog() { - // 创建元素 - const wrap = document.createElement('div') - wrap.id = 'k-support-wrap' - wrap.className = 'k-support-wrap' - const content = document.createElement('div') - content.id = 'k-support-content' - content.className = 'k-support-content' - const title = document.createElement('div') - title.className = 'k-support-title' - title.textContent = '扫码打开小程序支持一下作者' - const image = document.createElement('img') - image.className = 'k-support-code' - image.src = supportApplet - image.alt = '支持作者小程序码' - const close = document.createElement('div') - close.className = 'k-support-close' - close.textContent = '关闭' - close.onclick = () => { - wrap.classList.remove('show') - content.classList.remove('show') - } - content.appendChild(title) - content.appendChild(image) - content.appendChild(close) - wrap.appendChild(content) - document.body.appendChild(wrap) - - // 添加样式 - GM_addStyle(` - .k-support-wrap { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 999999999; - backdrop-filter: blur(10px); - display: flex; - justify-content: center; - align-items: center; - visibility: hidden; - } - - .k-support-wrap.show { - visibility: visible; - } - - .k-support-wrap .k-support-content { - padding: 20px; - border-radius: 6px; - box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 10%); - background-color: #fff; - transform: scale(0); - position: relative; - transition: transform 0.3s; - text-align: center; - } - - .k-support-content.show { - transform: scale(1); - } - - .k-support-content .k-support-title { - font-size: 24px; - } - - .k-support-content .k-support-code { - width: 250px; - height: 250px; - margin: 15px; - } - - .k-support-content .k-support-close { - width: 80px; - height: 40px; - line-height: 40px; - cursor: pointer; - border-radius: 6px; - background-color: #F56C6C; - margin: 0 auto; - color: #fff; - } - - .k-support-content .k-support-close:hover { - opacity: 0.6; - } - `) - } - addSupportDialog() -})() diff --git a/chatgpt-code-styling.user.js b/chatgpt-code-styling.user.js deleted file mode 100644 index 0c6c10d33..000000000 --- a/chatgpt-code-styling.user.js +++ /dev/null @@ -1,127 +0,0 @@ -// ==UserScript== -//人民的勤务员 -// @name ChatGPT Code Box Styling -// @description Change the font size and enable word wrap in ChatGPT code boxes -// @name:zh-CN ChatGPT代码字体缩小. -// @description:zh-CN ChatGPT 让代码字体变小 并且自动折行 -// @name:ar ChatGPT代码字体缩小 -// @description:ar ChatGPT جعل خط التعليمات البرمجية أصغر والتفاف تلقائيا -// @name:cs ChatGPTVelikost písma kódu zmenšena -// @description:cs ChatGPT Zmenšit písmo kódu a automaticky zabalit -// @name:da ChatGPTKodeskriftstørrelse reduceret -// @description:da ChatGPT Gør kodeskrifttypen mindre og automatisk indpakning -// @name:de ChatGPTDie Schriftgröße des Codes wurde reduziert -// @description:de ChatGPT Verkleinern Sie die Codeschrift und automatisch umwickeln -// @name:el ChatGPTΜειώθηκε το μέγεθος γραμματοσειράς κώδικα -// @description:el ChatGPT Κάντε τη γραμματοσειρά κώδικα μικρότερη και τυλίγεται αυτόματα -// @name:en ChatGPTCode font size reduced -// @description:en ChatGPT Make code font smaller and automatically wrap -// @name:eo ChatGPTKoda tiparo grandeco reduktita -// @description:eo ChatGPT Malgrandigu kodan tiparon kaj aŭtomate envolvi -// @name:es ChatGPTTamaño de fuente del código reducido -// @description:es ChatGPT Reducir la fuente del código y envolver automáticamente -// @name:fi ChatGPTKoodin fonttikokoa pienennetty -// @description:fi ChatGPT Pienennä koodin fonttia ja kääri automaattisesti -// @name:fr ChatGPTTaille de la police du code réduite -// @description:fr ChatGPT Rendre la police du code plus petite et envelopper automatiquement -// @name:he ChatGPTגודל גופן הקוד מופחת -// @description:he ChatGPT הקטן את גופן הקוד ועוטף אוטומטית -// @name:hr ChatGPTSmanjena veličina fonta koda -// @description:hr ChatGPT Smanjite font koda i automatski omotati -// @name:hu ChatGPTA kód betűmérete csökkentve -// @description:hu ChatGPT Csökkentse a kód betűtípusát és automatikusan becsomagolja -// @name:id ChatGPTUkuran font kode dikurangi -// @description:id ChatGPT Buat font kode lebih kecil dan secara otomatis membungkus -// @name:it ChatGPTDimensione del carattere del codice ridotta -// @description:it ChatGPT Rimpicciolisci il carattere del codice e avvolgi automaticamente -// @name:ja ChatGPTコードのフォントサイズが小さくなりました -// @description:ja ChatGPT コードのフォントを小さくする そして自动的に折り返す -// @name:ka ChatGPTკოდის შრიფტის ზომა შემცირდა -// @description:ka ChatGPT გაამცირეთ კოდის შრიფტი და ავტომატურად შეფუთვა -// @name:ko ChatGPT코드 글꼴 크기 감소 -// @description:ko ChatGPT 코드 글꼴을 더 작게 만들기 자동으로 포장 -// @name:nl ChatGPTLettergrootte van code verkleind -// @description:nl ChatGPT Maak het codelettertype kleiner en automatisch inpakken -// @name:nb ChatGPTKodeskriftstørrelse redusert -// @description:nb ChatGPT Gjør kodeskrift mindre og pakkes inn automatisk -// @name:pl ChatGPTZmniejszono rozmiar czcionki kodu -// @description:pl ChatGPT Zmniejsz czcionkę kodu i automatycznie zawijać -// @name:pt-BR ChatGPTTamanho da fonte do código reduzido -// @description:pt-BR ChatGPT Diminuir a fonte do código e embrulhar automaticamente -// @name:ro ChatGPTDimensiunea fontului codului a fost redusă -// @description:ro ChatGPT Faceți fontul codului mai mic și înfășurați automat -// @name:ru ChatGPTРазмер шрифта кода уменьшен -// @description:ru ChatGPT Уменьшить шрифт кода и автоматически обернуть -// @name:sk ChatGPTZmenšená veľkosť písma kódu -// @description:sk ChatGPT Zmenšiť písmo kódu a automaticky zabaliť -// @name:sr ChatGPTСмањена величина фонта кода -// @description:sr ChatGPT Смањите фонт кода и аутоматски умотати -// @name:sv ChatGPTKodens teckensnittsstorlek minskas -// @description:sv ChatGPT Gör kodteckensnittet mindre och linda automatiskt -// @name:th ChatGPTขนาดตัวอักษรโค้ดลดลง -// @description:th ChatGPT ทำให้โค้ดฟอนต์เล็กลง และห่ออัตโนมัติ -// @name:tr ChatGPTKod yazı tipi boyutu küçültüldü -// @description:tr ChatGPT Kod yazı tipini küçültün ve otomatik olarak sar -// @name:ug ChatGPTكود خەت چوڭلۇقى كىچىكلىتىلدى -// @description:ug ChatGPT كود خەت نۇسخىسىنى كىچىكرەك قىلىڭ ھەمدە ئاپتوماتىك ئورايدۇ -// @name:uk ChatGPTРозмір шрифту коду зменшено -// @description:uk ChatGPT Зменшіть шрифт коду і автоматично обернути -// @name:vi ChatGPTKích thước phông chữ mã giảm -// @description:vi ChatGPT Làm cho phông chữ mã nhỏ hơn và tự động bọc -// @name:zh-TW ChatGPT程序码字体缩小 -// @description:zh-TW ChatGPT 让程序码字体变小 并且自动折行 -// @name:zh-HK ChatGPT程序码字体缩小 -// @description:zh-HK ChatGPT 让程序码字体变小 并且自动折行 -// @name:fr-CA ChatGPTTaille de la police du code réduite -// @description:fr-CA ChatGPT Rendre la police du code plus petite et envelopper automatiquement - -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.1.1.0 -// @author 人民的勤务员 -// @match https://chatgpt.com/* -// @grant none -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/png;base64,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 -// ==/UserScript== -function addCustomCSS() { - const css = ` - pre code { - font-size: 12px !important; /* 设置字体大小为12px */ - white-space: pre-wrap !important; /* 设置自动换行 */ - word-break: break-word !important; /* 设置单词断行 */ - } -  - pre { - overflow-x: auto !important; /* 允许水平滚动 */ - } - ` - - function applyStyles() { - if (typeof GM_addStyle !== "undefined") { - GM_addStyle(css) - } else { - let styleNode = document.createElement("style") - styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) - } - } - - // 初次应用样式 - applyStyles() - - - setInterval(() => { - // 检查样式是否仍在中 - const styles = document.querySelectorAll('style') - const styleExists = Array.from(styles).some(style => style.textContent.includes(css)) - - if (!styleExists) { - applyStyles() // 如果样式不存在,则重新应用 - } - }, 300) -} - -// 调用函数以添加自定义CSS -addCustomCSS() diff --git a/chatgpt-code-styling/README.md b/chatgpt-code-styling/README.md new file mode 100644 index 000000000..5f837750e --- /dev/null +++ b/chatgpt-code-styling/README.md @@ -0,0 +1,192 @@ + + +
    +
    + + + + + 简体中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    ChatGPT代码字体缩小.

    +

    「 ChatGPT 让代码字体变小 并且自动折行 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + +让 ChatGPT 输出的代码框字体变小 + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/Script details/chatgpt-code-styling/chatgpt-code-styling.user.js b/chatgpt-code-styling/chatgpt-code-styling.user.js similarity index 96% rename from Script details/chatgpt-code-styling/chatgpt-code-styling.user.js rename to chatgpt-code-styling/chatgpt-code-styling.user.js index 0c6c10d33..e4bc33036 100644 --- a/Script details/chatgpt-code-styling/chatgpt-code-styling.user.js +++ b/chatgpt-code-styling/chatgpt-code-styling.user.js @@ -77,7 +77,7 @@ // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.1.1.0 -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://chatgpt.com/* // @grant none // @supportURL https://github.com/ChinaGodMan/UserScripts/issues @@ -92,20 +92,15 @@ function addCustomCSS() { white-space: pre-wrap !important; /* 设置自动换行 */ word-break: break-word !important; /* 设置单词断行 */ } -  pre { overflow-x: auto !important; /* 允许水平滚动 */ } ` function applyStyles() { - if (typeof GM_addStyle !== "undefined") { - GM_addStyle(css) - } else { - let styleNode = document.createElement("style") - styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) - } + let styleNode = document.createElement('style') + styleNode.appendChild(document.createTextNode(css)); + (document.querySelector('head') || document.documentElement).appendChild(styleNode) } // 初次应用样式 diff --git a/Script details/chatgpt-copy-code-button/Change history/README.md b/chatgpt-copy-code-button/Change history/README.md similarity index 100% rename from Script details/chatgpt-copy-code-button/Change history/README.md rename to chatgpt-copy-code-button/Change history/README.md diff --git a/chatgpt-copy-code-button/README.md b/chatgpt-copy-code-button/README.md new file mode 100644 index 000000000..bc2149b86 --- /dev/null +++ b/chatgpt-copy-code-button/README.md @@ -0,0 +1,252 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + + +
    +

    ChatGPT 聊天复制代码和导出代码按钮

    +

    「 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ ChatGPT 聊天复制代码按钮 更新日志

    +

    📅 2024-09-23 08:58:07- Ver 1.2.0.0

    +

    修复: • 新发送内容也会错误添加按钮,改为添加时判断元素是否存在以下子元素querySelector('div.flex.items-center.text-token-text-secondary') +修复: •导出代码检测代码类型出错的问题var languageDiv = elem.parentElement.parentElement.querySelector('div.flex.items-center.text-token-text-secondary')var languageDiv = elem.querySelector('div.flex.items-center.text-token-text-secondary')

    +
    +

    📅 2024-09-22 10:44:07- Ver 1.1.0.0

    +

    新增: •增加一个导出代码的按钮,新增的代码来自脚本 →ChatGPT Code Export Button

    +
    +

    📅 2024-09-22 07:06:07- Ver 1.0.0.0

    +

    新增: •兼容新版的 ChatGPT 官网

    +
    + +
    + + + +# ChatGPT Chat Copy Code Button 用户脚本 + +## 介绍 + +该用户脚本为 [chatgpt.com](https://chatgpt.com) 和 [share.nezhagpt.cloud](https://share.nezhagpt.cloud) 页面上的代码块添加一个“复制代码”按钮。按钮位于代码块的右下角,带有动画效果,用户可以轻松点击按钮将代码复制到剪贴板。 + +## 功能 + +- 在代码块的右下角添加一个“复制代码”按钮 +- 点击按钮后,代码将被复制到剪贴板 +- 按钮点击后有反馈动画,按钮会显示“Copied!”提示 +- 鼠标悬停时按钮颜色发生变化 + +## 使用场景 + +- 开发人员可以方便地复制代码片段 +- 学习者在查看代码时更加便捷 +- 自动观察并为新加载的代码块添加复制按钮 + +## 安装步骤 + +1. 安装支持用户脚本的浏览器扩展,例如 [Tampermonkey](https://www.tampermonkey.net/) 或 [Violentmonkey](https://violentmonkey.github.io/)。 +2. 点击上方绿色按钮安装。 + +## 兼容性 + +- 支持 Chrome、Firefox、Edge、Opera 和 Safari 等主流浏览器 + +## 项目地址 + +- [GitHub 项目地址](https://github.com/ChinaGodMan/UserScripts) +- YodaBets + +## 反馈地址 + +- 如有问题或建议,请通过以下链接进行反馈:[GitHub 反馈地址](https://github.com/ChinaGodMan/UserScripts/issues) + +## 贡献者 + +- [**YodaBets**](https://greasyfork.org/zh-CN/users/1052550) [OpenAI Chat Copy Code Button](https://greasyfork.org/zh-CN/scripts/463493) 修改了此脚本 +- [**Muffin Productions**](https://greasyfork.org/zh-CN/users/1327919) [ChatGPT Code Export Button](https://greasyfork.org/zh-CN/scripts/499627) 引用此脚本内的导出代码. +- [**人民的勤务员**](https://greasyfork.org/zh-CN/users/1169082) + +## 授权 + +- 本脚本遵循 MIT 许可证开源 + +![Snipaste_2024-09-22_07-32-11.png](https://s2.loli.net/2024/09/22/VexqWUEA6GYPQjN.png) + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/chatgpt-copy-code-button/README_en.md b/chatgpt-copy-code-button/README_en.md new file mode 100644 index 000000000..18b51f1f6 --- /dev/null +++ b/chatgpt-copy-code-button/README_en.md @@ -0,0 +1,252 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + + +
    +

    ChatGPT Chat copy code and export code buttons

    +

    「 exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ ChatGPT Chat copy code button Change log

    +

    📅 2024-09-23 08:58:07- Ver 1.2.0.0

    +

    repair: • Newly sent content also incorrectly adds a button,Change to determine whether the element has the following sub-elements when addingquerySelector('div.flex.items-center.text-token-text-secondary') +repair: •Problem with export code detection code type errorvar languageDiv = elem.parentElement.parentElement.querySelector('div.flex.items-center.text-token-text-secondary')var languageDiv = elem.querySelector('div.flex.items-center.text-token-text-secondary')

    +
    +

    📅 2024-09-22 10:44:07- Ver 1.1.0.0

    +

    New: •Add a button to export code,The added code comes from the script →ChatGPT Code Export Button

    +
    +

    📅 2024-09-22 07:06:07- Ver 1.0.0.0

    +

    New: •Compatible with new version ChatGPT Official website

    +
    + +
    + + + +# ChatGPT Chat Copy Code Button user script + +## introduce + +The user script is [chatgpt.com](https://chatgpt.com) and [share.nezhagpt.cloud](https://share.nezhagpt.cloud) code block on the page add a“Copy code”button。The button is located in the lower right corner of the code block,With animation effects,Users can easily copy the code to the clipboard with the click of a button。 + +## Function + +- In the lower right corner of the code block add a“Copy code”button +- After clicking the button,The code will be copied to the clipboard +- There is a feedback animation after clicking the button,button will show“Copied!”hint +- Button color changes on mouseover + +## Usage scenarios + +- Developers can easily copy code snippets +- It is more convenient for learners to view code +- Automatically observe and add copy button for newly loaded code blocks + +## Installation steps + +1. Install a browser extension that supports userscripts,For example [Tampermonkey](https://www.tampermonkey.net/) or [Violentmonkey](https://violentmonkey.github.io/)。 +2. Click the green button above to install。 + +## compatibility + +- support Chrome、Firefox、Edge、Opera and Safari Wait for mainstream browsers + +## Project address + +- [GitHub Project address](https://github.com/ChinaGodMan/UserScripts) +- YodaBets [OpenAI Chat Copy Code Button](https://greasyfork.org/zh-CN/scripts/463493)Script posted by the original author + +## Feedback address + +- If you have any questions or suggestions,Please provide feedback via the link below:[GitHub Feedback address](https://github.com/ChinaGodMan/UserScripts/issues) + +## Contributors + +- [**YodaBets**](https://greasyfork.org/zh-CN/users/1052550) [OpenAI Chat Copy Code Button](https://greasyfork.org/zh-CN/scripts/463493) modified this script +- [**Muffin Productions**](https://greasyfork.org/zh-CN/users/1327919) [ChatGPT Code Export Button](https://greasyfork.org/zh-CN/scripts/499627) referenced the export code in this script +- [**人民的勤务员**](https://greasyfork.org/zh-CN/users/1169082) + +## Authorize + +- This script follows MIT License open source + +![Snipaste_2024-09-22_07-32-11.png](https://s2.loli.net/2024/09/22/VexqWUEA6GYPQjN.png) + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/chatgpt-copy-code-button.user.js b/chatgpt-copy-code-button/chatgpt-copy-code-button.user.js similarity index 98% rename from chatgpt-copy-code-button.user.js rename to chatgpt-copy-code-button/chatgpt-copy-code-button.user.js index 6ed3fc313..acf2ea559 100644 --- a/chatgpt-copy-code-button.user.js +++ b/chatgpt-copy-code-button/chatgpt-copy-code-button.user.js @@ -38,13 +38,13 @@ // @name:it ChatGPT Chatta copia il codice ed esporta i pulsanti del codice // @description:it esistere chatgpt.com Aggiungi un’animazione nell’angolo in basso a destra del blocco di codice superiore“Copia il codice”pulsante e un for ChatGPT Il blocco di codice in risposta aggiunge il pulsante di esportazione,Richiede all’utente di salvare il codice in un file in base al linguaggio di programmazione rilevato dal nome della classe del blocco di codice。 // @name:ja ChatGPT チャットのコードのコピー ボタンとコードのエクスポート ボタン -// @description:ja 存在する chatgpt.com 上部のコード ブロックの右下隅にアニメーションを追加します。“コードをコピーする”ボタンと for ChatGPT 応答のコード ブロックはエクスポート ボタンを追加します,コード ブロックのクラス名によって検出されたプログラミング言語に基づいて、コードをファイルに保存するようにユーザーにプロンプ​​トを表示します。。 +// @description:ja 存在する chatgpt.com 上部のコード ブロックの右下隅にアニメーションを追加します。“コードをコピーする”ボタンと for ChatGPT 応答のコード ブロックはエクスポート ボタンを追加します,コード ブロックのクラス名によって検出されたプログラミング言語に基づいて、コードをファイルに保存するようにユーザーにプロンプトを表示します。。 // @name:ka ChatGPT ჩეთის კოპირების კოდის და ექსპორტის კოდის ღილაკები // @description:ka არსებობს chatgpt.com დაამატეთ ანიმაცია ზედა კოდის ბლოკის ქვედა მარჯვენა კუთხეში“დააკოპირეთ კოდი”ღილაკი და ამისთვის ChatGPT კოდის ბლოკი პასუხად ამატებს ექსპორტის ღილაკს,სთხოვს მომხმარებელს შეინახოს კოდი ფაილში კოდის ბლოკის კლასის სახელით აღმოჩენილი პროგრამირების ენის საფუძველზე。 // @name:ko ChatGPT 채팅 코드 복사 및 코드 내보내기 버튼 // @description:ko 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“코드 복사”버튼과 ChatGPT 응답으로 코드 블록에 내보내기 버튼이 추가됩니다.,코드 블록의 클래스 이름으로 감지된 프로그래밍 언어를 기반으로 파일에 코드를 저장하라는 메시지를 사용자에게 표시합니다.。 // @name:nl ChatGPT Chat kopieer code en exportcodeknoppen -// @description:nl bestaan chatgpt.com Voeg een animatie toe in de rechter benedenhoek van het bovenste codeblok“Kopieer code”knop en een voor ChatGPT Codeblok als reactie voegt een exportknop toe,Vraagt ​​de gebruiker om code op te slaan in een bestand op basis van de programmeertaal die wordt gedetecteerd door de klassenaam van het codeblok。 +// @description:nl bestaan chatgpt.com Voeg een animatie toe in de rechter benedenhoek van het bovenste codeblok“Kopieer code”knop en een voor ChatGPT Codeblok als reactie voegt een exportknop toe,Vraagt de gebruiker om code op te slaan in een bestand op basis van de programmeertaal die wordt gedetecteerd door de klassenaam van het codeblok。 // @name:nb ChatGPT Chat kopier kode og eksport kode knapper // @description:nb eksistere chatgpt.com Legg til en animasjon i nedre høyre hjørne av den øvre kodeblokken“Kopier koden”knapp og en for ChatGPT Kodeblokk som svar legger til eksportknapp,Ber brukeren om å lagre kode i en fil basert på programmeringsspråket oppdaget av kodeblokkens klassenavn。 // @name:pl ChatGPT Przyciski kopiowania kodu i eksportowania kodu na czacie @@ -79,7 +79,7 @@ // @description:fr-CA exister chatgpt.com Ajoutez une animation dans le coin inférieur droit du bloc de code supérieur“Copier le code”bouton et un pour ChatGPT Le bloc de code en réponse ajoute un bouton d’exportation,Invite l’utilisateur à enregistrer le code dans un fichier basé sur le langage de programmation détecté par le nom de classe du bloc de code。 // @match https://chatgpt.com/* // @match https://share.nezhagpt.cloud/* -// @author YodaBets,人民的勤务员 +// @author YodaBets,人民的勤务员 // @namespace https://github.com/ChinaGodMan/UserScripts // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts @@ -361,10 +361,10 @@ { description: language, accept: { - [mimeType]: [fileExtension], - }, - }, - ], + [mimeType]: [fileExtension] + } + } + ] }) const writable = await fileHandle.createWritable() await writable.write(blob) diff --git a/Script details/chatgpt-copy-code-button/preview/Snipaste_2024-09-22_07-32-11.png b/chatgpt-copy-code-button/preview/Snipaste_2024-09-22_07-32-11.png similarity index 100% rename from Script details/chatgpt-copy-code-button/preview/Snipaste_2024-09-22_07-32-11.png rename to chatgpt-copy-code-button/preview/Snipaste_2024-09-22_07-32-11.png diff --git a/Script details/chatgpt-counter/Change history/README.md b/chatgpt-counter/Change history/README.md similarity index 100% rename from Script details/chatgpt-counter/Change history/README.md rename to chatgpt-counter/Change history/README.md diff --git a/chatgpt-counter/README.md b/chatgpt-counter/README.md new file mode 100644 index 000000000..abbbdb030 --- /dev/null +++ b/chatgpt-counter/README.md @@ -0,0 +1,218 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    ChatGPT 字符计数器限制

    +

    「 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ ChatGPT 字符计数器 更新日志

    +

    📅 2024/9/1 09:37 - Ver 1.3.1

    +

    修复: 无法在新开聊天或切换聊天时显示计数器的问题,以及发送后计数器不清零的问题

    +
    + +
    + + + +![Snipaste_2024-09-01_10-05-11.png](https://s2.loli.net/2024/09/01/uJZIDbie6fdmOQH.png) + + + +## 描述 + +ChatGPT Character Counter Limit (CCCL) 是一个用户脚本,旨在为 ChatGPT 的输入框添加一个字符计数器,限制为 32732 个字符。这个脚本可以帮助用户在输入时实时查看已输入字符的数量,并在超出限制时给出视觉提示。. + + + +## 功能 + +- 在 ChatGPT 输入框下方添加一个字符计数器。 +- 实时更新计数器,显示已输入字符数和字符限制。 +- 当字符数超出限制时,计数器文本颜色变为红色,提示用户。 +- 当字符数接近限制时,计数器文本颜色变为绿色,显示警告。 + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + +## Thanks + +修改自用户 [Emree.el](https://greasyfork.org/zh-CN/users/1297357)的脚本 [ChatGPT Character Counter Limit (CCCL)](https://greasyfork.org/scripts/505802) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/chatgpt-counter/README_en.md b/chatgpt-counter/README_en.md new file mode 100644 index 000000000..76160e048 --- /dev/null +++ b/chatgpt-counter/README_en.md @@ -0,0 +1,169 @@ + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + + +
    +

    ChatGPT Character counter limit (CCCL)

    +

    「 Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ ChatGPT character counter Change log

    +

    📅 2024/9/1 09:37 - Ver 1.3.1

    +

    repair: The counter cannot be displayed when opening a new chat or switching chats,And the problem of the counter not clearing after sending

    +
    + +
    + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/chatgpt-counter.user.js b/chatgpt-counter/chatgpt-counter.user.js similarity index 99% rename from chatgpt-counter.user.js rename to chatgpt-counter/chatgpt-counter.user.js index 59bef9af1..cd0e133ee 100644 --- a/chatgpt-counter.user.js +++ b/chatgpt-counter/chatgpt-counter.user.js @@ -2,7 +2,7 @@ // @name ChatGPT Character Counter Limit (CCCL) // @description Adds a character counter to the input field with a limit of 32732 characters. (ChatGPT has a limit of 32732 characters.) // @name:zh-CN ChatGPT 字符计数器限制 -// @description:zh-CN 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) +// @description:zh-CN 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) // @name:ar ChatGPT حد عداد الأحرف // @description:ar إضافة عداد الأحرف إلى مربع الإدخال,يقتصر على 32732 الشخصيات。(ChatGPT الحد هو 32732 الشخصيات。) // @name:bg ChatGPT Ограничение на брояча на знаци @@ -57,7 +57,7 @@ // @description:sk Do vstupného poľa pridajte počítadlo znakov,obmedzené na 32732 postavy。(ChatGPT Limit je 32732 postavy。) // @name:sr ChatGPT Ограничење бројача знакова (CCCL) // @description:sr Додајте бројач знакова у поље за унос,ограничен на 32732 ликова。(ChatGPT Граница је 32732 ликова。) -// @name:sv ChatGPT Gräns ​​för teckenräknare (CCCL) +// @name:sv ChatGPT Gräns för teckenräknare (CCCL) // @description:sv Lägg till en teckenräknare i inmatningsrutan,begränsat till 32732 tecken。(ChatGPT Gränsen är 32732 tecken。) // @name:th ChatGPT ขีดจำกัดตัวนับอักขระ (CCCL) // @description:th เพิ่มตัวนับอักขระลงในกล่องอินพุต,จำกัดอยู่ที่ 32732 ตัวอักษร。(ChatGPT ขีดจำกัดคือ 32732 ตัวอักษร。) @@ -77,7 +77,7 @@ // @description:fr-CA Ajouter un compteur de caractères à la zone de saisie,limité à 32732 personnages。(ChatGPT La limite est 32732 personnages。) // @namespace https://github.com/ChinaGodMan/UserScripts // @version 1.3.1.14 -// @author Emree.el on instagram ,人民的勤务员 +// @author Emree.el on instagram ,人民的勤务员 // @match https://chatgpt.com/* // @grant none // @license MIT @@ -132,7 +132,7 @@ if (url !== lastUrl) { lastUrl = url addCharacterCounter() - console.log("change", url) + console.log('change', url) } }).observe(document, { subtree: true, childList: true }) // Run the function after the page loads diff --git a/Script details/chatgpt-counter/preview/Snipaste_2024-09-01_10-02-29.png b/chatgpt-counter/preview/Snipaste_2024-09-01_10-02-29.png similarity index 100% rename from Script details/chatgpt-counter/preview/Snipaste_2024-09-01_10-02-29.png rename to chatgpt-counter/preview/Snipaste_2024-09-01_10-02-29.png diff --git a/Script details/chatgpt-counter/preview/Snipaste_2024-09-01_10-05-11.png b/chatgpt-counter/preview/Snipaste_2024-09-01_10-05-11.png similarity index 100% rename from Script details/chatgpt-counter/preview/Snipaste_2024-09-01_10-05-11.png rename to chatgpt-counter/preview/Snipaste_2024-09-01_10-05-11.png diff --git a/chatgpt-plus.user.js b/chatgpt-plus.user.js deleted file mode 100644 index c562224e3..000000000 --- a/chatgpt-plus.user.js +++ /dev/null @@ -1,161 +0,0 @@ -// ==UserScript== -// @name ChatGPT Chat Fold Script & MAXWidth -// @description Fold long "You" messages in ChatGPT -// @name:zh-CN ChatGPT 折叠自己消息和最大宽度 -// @description:zh-CN 折叠ChatGPT中较长的“你”消息,并设置最大宽度 -// @name:ar ChatGPT طي الرسالة الذاتية والحد الأقصى للعرض -// @description:ar طيةChatGPTمتوسطة وطويلة“أنت”معلومة,وتعيين الحد الأقصى للعرض -// @name:bg ChatGPT Свиване на собственото съобщение и максимална ширина -// @description:bg гънкаChatGPTсредно и дълго“вие”информация,и задайте максималната ширина -// @name:cs ChatGPT Sbalit vlastní zprávu a maximální šířku -// @description:cs složitChatGPTstřední a dlouhé“Vy”informace,a nastavte maximální šířku -// @name:da ChatGPT Skjul selvbesked og maks. bredde -// @description:da foldeChatGPTmedium og lang“du”information,og indstil den maksimale bredde -// @name:de ChatGPT Selbstnachricht minimieren und maximale Breite erreichen -// @description:de faltenChatGPTmittel und lang“Du”Information,und stellen Sie die maximale Breite ein -// @name:el ChatGPT Σύμπτυξη αυτο μηνύματος και μέγιστο πλάτος -// @description:el πτυχήChatGPTμεσαίο και μακρύ“εσείς”πληροφορίες,και ορίστε το μέγιστο πλάτος -// @name:en ChatGPT Collapse self message and max width -// @description:en foldChatGPTmedium and long“you”information,and set the maximum width -// @name:eo ChatGPT Kolapu mem-mesaĝon kaj maksimuman larĝon -// @description:eo faldiChatGPTmeza kaj longa“vi”informoj,kaj starigu la maksimuman larĝon -// @name:es ChatGPT Contraer automensaje y ancho máximo -// @description:es doblarChatGPTmedio y largo“tú”información,y establecer el ancho máximo -// @name:fi ChatGPT Tiivistä itseviesti ja enimmäisleveys -// @description:fi taitaChatGPTkeskipitkä ja pitkä“sinä”tiedot,ja aseta suurin leveys -// @name:fr ChatGPT Réduire le message personnel et la largeur maximale -// @description:fr pliChatGPTmoyen et long“toi”information,et définissez la largeur maximale -// @name:he ChatGPT כווץ הודעה עצמית ורוחב מקסימלי -// @description:he לְקַפֵּלChatGPTבינוני וארוך“אַתָה”מֵידָע,והגדר את הרוחב המרבי -// @name:hr ChatGPT Sažmi vlastitu poruku i maksimalnu širinu -// @description:hr presavijatiChatGPTsrednje i duge“vas”informacija,i postavite maksimalnu širinu -// @name:hu ChatGPT Saját üzenet összecsukása és maximális szélessége -// @description:hu hajtogatniChatGPTközepes és hosszú“te”információ,és állítsa be a maximális szélességet -// @name:id ChatGPT Ciutkan pesan mandiri dan lebar maksimal -// @description:id melipatChatGPTsedang dan panjang“Anda”informasi,dan atur lebar maksimum -// @name:it ChatGPT Comprimi il messaggio personale e la larghezza massima -// @description:it piegaChatGPTmedio e lungo“Voi”informazioni,e impostare la larghezza massima -// @name:ja ChatGPT セルフメッセージと最大幅を折りたたむ -// @description:ja 折り畳みChatGPTミディアムとロング“あなた”情報,最大幅を設定します -// @name:ka ChatGPT საკუთარი შეტყობინების ჩაკეცვა და მაქსიმალური სიგანე -// @description:ka ჩამოყაროსChatGPTსაშუალო და გრძელი“შენ”ინფორმაცია,და დააყენეთ მაქსიმალური სიგანე -// @name:ko ChatGPT 자체 메시지 및 최대 너비 축소 -// @description:ko 겹ChatGPT중간 및 긴“너”정보,그리고 최대 너비를 설정하세요 -// @name:nl ChatGPT Zelfbericht en maximale breedte samenvouwen -// @description:nl vouwChatGPTmiddellang en lang“Jij”informatie,en stel de maximale breedte in -// @name:nb ChatGPT Skjul selvmelding og maks bredde -// @description:nb bretteChatGPTmiddels og lang“du”informasjon,og still inn maksimal bredde -// @name:pl ChatGPT Zwiń wiadomość własną i maksymalną szerokość -// @description:pl zginaćChatGPTśrednie i długie“Ty”informacja,i ustaw maksymalną szerokość -// @name:pt-BR ChatGPT Recolher mensagem própria e largura máxima -// @description:pt-BR dobrarChatGPTmédio e longo“você”Informação,e defina a largura máxima -// @name:ro ChatGPT Restrângeți mesajul propriu și lățimea maximă -// @description:ro pliazăChatGPTmediu și lung“tu”informaţii,și setați lățimea maximă -// @name:ru ChatGPT Свернуть собственное сообщение и максимальную ширину -// @description:ru складыватьChatGPTсредний и длинный“ты”информация,и установите максимальную ширину -// @name:sk ChatGPT Zbaliť vlastnú správu a maximálnu šírku -// @description:sk zložiťChatGPTstredné a dlhé“vy”informácie,a nastavte maximálnu šírku -// @name:sr ChatGPT Скупи самопоруку и максималну ширину -// @description:sr фолдChatGPTсредње и дуго“ти”информације,и поставите максималну ширину -// @name:sv ChatGPT Komprimera självmeddelande och maxbredd -// @description:sv vikaChatGPTmedium och lång“du”information,och ställ in maximal bredd -// @name:th ChatGPT ยุบข้อความของตัวเองและความกว้างสูงสุด -// @description:th พับChatGPTปานกลางและยาว“คุณ”ข้อมูล,และกำหนดความกว้างสูงสุด -// @name:tr ChatGPT Kendi kendine mesajı ve maksimum genişliği daralt -// @description:tr katlamakChatGPTorta ve uzun“Sen”bilgi,ve maksimum genişliği ayarlayın -// @name:ug ChatGPT ئۆزلۈكىدىن ئۇچۇر ۋە ئەڭ چوڭ كەڭلىك -// @description:ug قاتلاشChatGPTئوتتۇرا ۋە ئۇزۇن“سىز”ئۇچۇر,ھەمدە ئەڭ چوڭ كەڭلىكىنى بەلگىلەڭ -// @name:uk ChatGPT Згорнути власне повідомлення та максимальну ширину -// @description:uk складкаChatGPTсередні і довгі“ти”інформації,і встановити максимальну ширину -// @name:vi ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa -// @description:vi nếp gấpChatGPTtrung bình và dài“Bạn”thông tin,và đặt chiều rộng tối đa -// @name:zh-TW ChatGPT 折疊自己訊息和最大寬度 -// @description:zh-TW 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 -// @name:zh-HK ChatGPT 折疊自己訊息和最大寬度 -// @description:zh-HK 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 -// @name:fr-CA ChatGPT Réduire le message personnel et la largeur maximale -// @description:fr-CA pliChatGPTmoyen et long“toi”information,et définissez la largeur maximale -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.3.0.0 -// @author 人民的勤务员 -// @match https://chatgpt.com/* -// @match https://share.nezhagpt.cloud/* -// @match https://new.oaifree.com/* -// @grant none -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,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 -// @downloadURL https://update.greasyfork.org/scripts/504901/ChatGPT%20Chat%20Fold%20Script%20%20MAXWidth.user.js -// @updateURL https://update.greasyfork.org/scripts/504901/ChatGPT%20Chat%20Fold%20Script%20%20MAXWidth.meta.js -// ==/UserScript== -(function () { - 'use strict' - //移动设备使用回车键发送 - let isEnter = true - //MAX WIGHT - function addMaxWidthCSS() { - const css = ` - .md\\:max-w-3xl { - max-width: 100%; - }` - function applyStyles() { - if (typeof GM_addStyle !== "undefined") { - GM_addStyle(css) - } else { - let styleNode = document.createElement("style") - styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) - } - } - applyStyles() - setInterval(() => { - const styles = document.querySelectorAll('style') - const styleExists = Array.from(styles).some(style => style.textContent.includes(css)) - if (!styleExists) { - applyStyles() - } - }, 300) - } - addMaxWidthCSS() - // Your code here... - window.addEventListener('load', function () { - // Function to fold long messages - function foldLongMessages() { - const messages = document.querySelectorAll('div[data-message-author-role="user"]') - messages.forEach(message => { - if (message.innerText.split('\n').length > 3) { - message.style.overflow = 'hidden' - message.style.height = '100px' // Adjust as needed - message.style.cursor = 'pointer' - // Click to expand - message.addEventListener('click', function () { - if (message.style.overflow === 'hidden') { - message.style.overflow = 'visible' - message.style.height = 'auto' - } else { - message.style.overflow = 'hidden' - message.style.height = '100px' - } - }) - } - }) - } - function handleKeyPress(event) { - const textarea = document.getElementById('prompt-textarea') - if (textarea && event.target === textarea && event.key === 'Enter' && !event.shiftKey) { - event.preventDefault() - const sendbutton = document.querySelector('button[data-testid="send-button"]') - if (sendbutton) { - sendbutton.click() - } - } - } - if (isEnter) { - document.addEventListener('keydown', handleKeyPress) - } - // Run the function and also set an interval to handle dynamic content - foldLongMessages() - setInterval(foldLongMessages, 1000) - }) -})() diff --git a/Script details/chatgpt-plus/Change history/README.md b/chatgpt-plus/Change history/README.md similarity index 100% rename from Script details/chatgpt-plus/Change history/README.md rename to chatgpt-plus/Change history/README.md diff --git a/chatgpt-plus/README.md b/chatgpt-plus/README.md new file mode 100644 index 000000000..665e053d0 --- /dev/null +++ b/chatgpt-plus/README.md @@ -0,0 +1,239 @@ + + +
    +
    + + + + + 简体中文 | + English | + Tiếng Việt | + 繁體中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    ChatGPT 折叠自己消息和最大宽度

    +

    「 折叠ChatGPT中较长的“你”消息,并设置最大宽度 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ ChatGPT 折叠自己消息和最大宽度 更新日志

    +

    📅 2024/9/28 09:32 - Ver 0.3.0.0

    +

    新增: 兼容新 ChatGPT 官网,设置最大宽度失败时,自动重新添加.

    +
    +

    📅 2024/9/15 11:13 - Ver 0.2.0.0

    +

    新增: 增加在移动设备回车键发送。代码来自ChatGPT.com Mobile Layout Enter Key Fix

    +
    + +
    + + + +![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) + + + +# ChatGPT Chat Fold Script & MAXWidth + + + +## 简介 + +`ChatGPT Chat Fold Script & MAXWidth` 是一个用于在 ChatGPT 中折叠较长的“你”发送的消息并设置最大宽度的脚本。这可以帮助你更好地管理长消息,并改善界面布局。 + + + +## 功能 + +- **折叠长消息**:自动折叠由你发送的长消息,节省屏幕空间。 +- **设置最大宽度**:允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 + + + +## 使用方法 + +- 默认情况下,脚本会自动折叠长消息。 +- 你可以点击消息旁边的 “折叠” 按钮来手动折叠或展开消息。 +- 在设置中调整聊天窗口的最大宽度。 + + + +## 更新日志 + +- **v0.1**:初始版本,添加折叠功能和最大宽度设置。 + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + +## 贡献 + +如果你有任何建议或发现了问题,请通过 GitHub 或者GreasyFork 提交问题。 + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/chatgpt-plus/README_en.md b/chatgpt-plus/README_en.md new file mode 100644 index 000000000..e64a1659e --- /dev/null +++ b/chatgpt-plus/README_en.md @@ -0,0 +1,238 @@ + + +
    +
    + + + + + 简体中文 | + English | + Tiếng Việt | + 繁體中文 +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    ChatGPT Collapse self message and max width

    +

    「 foldChatGPTmedium and long“you”information,and set the maximum width 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ ChatGPT Collapse self message and max width Change log

    +

    📅 2024/9/28 09:32 - Ver 0.3.0.0

    +

    New: Compatible with new ChatGPT Official website,When setting the maximum width fails,Automatically re-add.

    +
    +

    📅 2024/9/15 11:13 - Ver 0.2.0.0

    +

    New: Added the ability to send the Enter key on mobile devices。code fromChatGPT.com Mobile Layout Enter Key Fix

    +
    + +
    + + + + + +# ChatGPT Chat Fold Script & MAXWidth + + + +## Introduction + +`ChatGPT Chat Fold Script & MAXWidth` is one used in ChatGPT The middle fold is longer“you”Script that sends the message and sets the maximum width。thisCanbyhelphelpyouEvengoodlandTubereasonlongremovebreath,and improve the interface layout。 + + + +## Function + +- **Collapse long messages**:Automatically collapse long messages sent by you,Save screen space。 +- **Set maximum width**:Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 + + + +## How to use + +- By default,Script automatically collapses long messages。 +- You can click next to the message “fold” according tobuttonComehandmovefoldorexhibitionopenremovebreath。 +- Adjust the maximum width of the chat window in settings。 + + + +## Change log + +- **v0.1**:initial version,Add folding functionality and max-width settings。 + + + +## contribute + +If you have any suggestions or find a problem,Please pass GitHub orGreasyFork Submit a question。 + +![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/chatgpt-plus/README_vi.md b/chatgpt-plus/README_vi.md new file mode 100644 index 000000000..7236f18aa --- /dev/null +++ b/chatgpt-plus/README_vi.md @@ -0,0 +1,246 @@ + + +
    +
    + + + + + 简体中文 | + English | + Tiếng Việt | + 繁體中文 +
    + 👆️truy cậpGitHub Tập tin Readme trên ứng dụng để có trải nghiệm tốt hơn。 +
    +
    + + + +
    + + + + + +
    +

    ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa

    +

    「 nếp gấpChatGPTtrung bình và dài“Bạn”thông tin,và đặt chiều rộng tối đa 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Cập nhật bản ghi

    🛠️ ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa Nhật ký thay đổi

    +

    📅 2024/9/28 09:32 - Ver 0.3.0.0

    +

    Mới: Tương thích với mới ChatGPT Trang web chính thức,Khi cài đặt chiều rộng tối đa không thành công,Tự động thêm lại.

    +
    +

    📅 2024/9/15 11:13 - Ver 0.2.0.0

    +

    Mới: Đã thêm khả năng gửi phím Enter trên thiết bị di động。mã từChatGPT.com Mobile Layout Enter Key Fix

    +
    + +
    + + + + + +# ChatGPT Chat Fold Script & MAXWidth + + + +## Giới thiệu + +`ChatGPT Chat Fold Script & MAXWidth` là một cái được sử dụng trong ChatGPT Nếp gấp ở giữa dài hơn“Bạn”Tập lệnh gửi tin nhắn và đặt độ rộng tối đa。cái nàyCó thểquagiúp đỡgiúp đỡBạnThậm chíTốtđấtỐnglý dodàidi dờihơi thở,và cải thiện bố cục giao diện。 + + + +## Chức năng + +- **Thu gọn tin nhắn dài**:Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。 +- **Đặt chiều rộng tối đa**:Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 + + + +## Cách sử dụng + +- Theo mặc định,Tập lệnh tự động thu gọn các tin nhắn dài。 +- Bạn có thể bấm vào bên cạnh tin nhắn “nếp gấp” theocái nútĐếntaydi chuyểnnếp gấphoặctriển lãmmởdi dờihơi thở。 +- Điều chỉnh độ rộng tối đa của cửa sổ trò chuyện trong cài đặt。 + + + +## Nhật ký thay đổi + +- **v0.1**:phiên bản đầu tiên,Thêm chức năng gấp và cài đặt chiều rộng tối đa。 + + + +## đóng góp + +Nếu bạn có bất kỳ đề xuất hoặc tìm thấy một vấn đề,Xin vui lòng vượt qua GitHub hoặcGreasyFork Gửi câu hỏi。 + +![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) + + + +## làmsử dụnggiúp đỡgiúp đỡ + + + +## Giúp đỡ + + + + +> ### 🔍có thể bạn đang tìm kiếmChatGPTTập lệnh liên quan +> +> - [**ChatGPTKích thước phông chữ mã giảm**](https://greasyfork.org/scripts/505209): ChatGPT Làm cho phông chữ mã nhỏ hơn và tự động bọc +> - [**ChatGPT Nút trò chuyện sao chép mã và xuất mã**](https://greasyfork.org/scripts/509598): hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“Sao chép mã”nút và một cho ChatGPT Khối mã phản hồi thêm nút xuất,Nhắc người dùng lưu mã vào tệp dựa trên ngôn ngữ lập trình được phát hiện bởi tên lớp của khối mã。 +> - [**ChatGPT Giới hạn bộ đếm ký tự (CCCL)**](https://greasyfork.org/scripts/506166): Thêm bộ đếm ký tự vào hộp nhập liệu,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 nhân vật。) +> - [**ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa**](https://greasyfork.org/scripts/504901): nếp gấpChatGPTtrung bình và dài“Bạn”thông tin,và đặt chiều rộng tối đa + + + + + +## Giúp đỡ + +Trình duyệt và trình quản lý tập lệnh được đề xuất: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**Nếu bạn cần biết thêm về cách cài đặt userscript,[bấm vào tôi](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)Xem giảng dạy đồ họa!** + + + +### Xem tất cả các tập lệnh xuất bản + + + + + + +> ### 🔍có thể bạn đang tìm kiếmChatGPTTập lệnh liên quan +> +> - [**ChatGPTKích thước phông chữ mã giảm**](https://greasyfork.org/scripts/505209): ChatGPT Làm cho phông chữ mã nhỏ hơn và tự động bọc +> - [**ChatGPT Nút trò chuyện sao chép mã và xuất mã**](https://greasyfork.org/scripts/509598): hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“Sao chép mã”nút và một cho ChatGPT Khối mã phản hồi thêm nút xuất,Nhắc người dùng lưu mã vào tệp dựa trên ngôn ngữ lập trình được phát hiện bởi tên lớp của khối mã。 +> - [**ChatGPT Giới hạn bộ đếm ký tự (CCCL)**](https://greasyfork.org/scripts/506166): Thêm bộ đếm ký tự vào hộp nhập liệu,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 nhân vật。) +> - [**ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa**](https://greasyfork.org/scripts/504901): nếp gấpChatGPTtrung bình và dài“Bạn”thông tin,và đặt chiều rộng tối đa + + + + + + +> ### 🔍Bạn có thể đang tìm kiếm các tập lệnh liên quan đến web +> +> - [**Trình quản lý ủy quyền phiên bản clip viết trang web**](https://greasyfork.org/scripts/497403): Quản lý hành vi ghi của các trang web vào bảng nhớ tạm để ngăn chặn việc sao chép tự động trái phép, đồng thời tắt tính năng tải trước nội dung âm thanh và video cũng như tự động phát lại. +> - [**Thang máyCSDNĐăng nhậpSao chép**](https://greasyfork.org/scripts/505207): chết tiệt bạnCSDNĐăng nhậpSao chép,Sao chép mà không cần đăng nhập +> - [**Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp**](https://greasyfork.org/scripts/507036): Tự động áp dụng độ chuyển màu cho tất cả các cột của bảng để làm đẹp nó +> - [**Đánh dấu từ khóa trên các trang web**](https://greasyfork.org/scripts/498906): Đánh dấu văn bản trên các trang web,nếu nó giúp bạn,Có thể sửa đổi và sử dụng theo ý muốn +> - [**Làm nổi bật từ khóa trang web**](https://greasyfork.org/scripts/498905): Làm nổi bật từ khóa tùy chỉnh trên các trang web bao gồm nội dung được tải động khi cuộn +> - [**Xem trước cửa sổ nhỏ**](https://greasyfork.org/scripts/504880): Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 +> - [**Xóa gạch chân liên kết**](https://greasyfork.org/scripts/498625): Xóa gạch chân liên kết trên tất cả các trang web,và xử lý các liên kết mới một cách linh hoạt +> - [**nút cuộn**](https://greasyfork.org/scripts/497251): Tạo hai nút ở bên phải trang để cuộn trang +> - [**Ghim vào nút trên và dưới**](https://greasyfork.org/scripts/500255): Tạo hai nút trên tất cả các trang,Một để làm mịn trở lại đầu trang,Một để cuộn liên tục xuống phía dưới,Bấm lần nữa để hủy cuộn xuống dưới cùng + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Gửi thông tin hiển thị xem web**](https://greasyfork.org/scripts/505830): Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 +> - [**Trợ lý nhảy nhanh kho GitHub**](https://greasyfork.org/scripts/515205): 🤠 Trợ lý nhảy nhanh kho GitHub, được thiết kế đặc biệt để giúp người dùng truy cập nhanh vào kho của họ trên GitHub. Nó tạo ra một nút ở đầu thanh điều hướng. Nhấp để mở rộng tất cả các kho lưu trữ của bạn và dễ dàng chuyển đến trang kho lưu trữ GitHub của riêng bạn mà không cần sử dụng menu phụ của GitHub. +> - [**GitHub Trình làm đẹp danh sách tập tin**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。Thêm màu sắc và biểu tượng vào tệp theo loại,Hiển thị hình ảnh nhỏ thay cho biểu tượng loại tệp trong cây nguồn kho lưu trữ +> - [**Github Danh sách ngôn ngữ mã hiển thị tất cả**](https://greasyfork.org/scripts/509889): Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong“khác”Xuống +> - [**GitHub Tự động xác nhận ủy quyền thiết bị**](https://greasyfork.org/scripts/508956): hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 +> - [**GitHub trình tải xuống thư mục**](https://greasyfork.org/scripts/505496): Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub thư mục。 +> - [**Github Sao chép tập tin gốc URL với các tập tin tải về**](https://greasyfork.org/scripts/505501): Nút thêm vào cuối mỗi dòng tập tin,để sao chép tập tin gốc URL và tải về các tập tin +> - [**🤠 Kích thước hiển thị kho trợ lý nâng cao của Github**](https://greasyfork.org/scripts/502291): 🤠 Kích thước hiển thị kho: Trên mã tìm kiếm, tìm kiếm kho, trang vấn đề, danh sách kho của người dùng và trang kho, kích thước của kho sẽ được hiển thị bên cạnh tên kho, giúp người dùng nhanh chóng hiểu được quy mô của kho và tối ưu hóa quy mô kho của mình. lựa chọn. Cảnh báo phát triển không hoạt động: Nếu kho lưu trữ không được cập nhật trong sáu tháng qua, hệ thống sẽ thêm lời nhắc ở đầu kho lưu trữ để nhắc nhở người dùng rằng kho lưu trữ không hoạt động và hiển thị thời gian cập nhật lần cuối. Điều này giúp người dùng xác định được tình trạng hoạt động và bảo trì của kho. Nhảy nhanh trong kho: Khi duyệt kho, người dùng có thể dễ dàng xem danh sách tất cả các kho của người dùng, cung cấp lối vào để nhanh chóng chuyển đến các kho khác nhau. Người dùng có thể nhanh chóng tìm và truy cập các dự án khác mà họ quan tâm, nâng cao hiệu quả công việc. Tình huống sử dụng: Nhà phát triển: Bằng cách hiển thị quy mô kho và cảnh báo đang hoạt động, bạn có thể nhanh chóng lọc ra các thư viện phù hợp để phát triển và tránh sử dụng các dự án không còn được bảo trì. Quản lý dự án: Thông qua chức năng nhảy nhanh, bạn có thể dễ dàng quản lý và điều phối nhiều dự án, đồng thời nâng cao hiệu quả công việc. Người học: Khi học các công nghệ mới, họ có thể dễ dàng tìm thấy các dự án nguồn mở có liên quan hơn và nhanh chóng kiểm tra hoạt động cũng như quy mô của dự án. 🤠 +> - [**GitHub Sắp xếp theo ngày**](https://greasyfork.org/scripts/505218): Thay đổi cách sắp xếp tệp thành giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 + + + + + + +> ### 🔍có thể bạn đang tìm kiếmGoogleTập lệnh liên quan +> +> - [**Google Trợ lý tìm kiếm nâng cao**](https://greasyfork.org/scripts/502652): Thêm biểu mẫu tìm kiếm nâng cao vào đầu trang tìm kiếm Google của bạn +> - [**Chặn trang tìm kiếm Google**](https://greasyfork.org/scripts/500262): hiện hữugoogleTìm kiếm và chặn các trang web cụ thể + + + + + + +> ### 🔍có thể bạn đang tìm kiếmGreasyForkTập lệnh liên quan +> +> - [**Greasy forkCác trang tập lệnh phù hợp để nâng cao URL**](https://greasyfork.org/scripts/497317): Trang chi tiết tập lệnh phù hợp với các URL không chuyển sang tìm kiếm theo mặc định. Chuyển đổi thành liên kết văn bản có thể nhấp và lời nhắc bật lên +> - [**GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản**](https://greasyfork.org/scripts/508968): sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. +> - [**GreaysFork Nâng caoWebHookĐồng bộ hóa cài đặt**](https://greasyfork.org/scripts/506717): GreaysFork Nhập nhanh thông tin đồng bộ script,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi tới URL tương ứng。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): Định dạng mặc định được sử dụng trong diễn đàn làMarkdown,Thêm liên kết trợ giúp định dạng và xuất bản tập lệnh mới,Thanh công cụ thời gian trả lời có bật tính năng chỉnh sửa nhanh +> - [**Greasyfork Script hiển thị xếp hạng**](https://greasyfork.org/scripts/501119): Thêm xếp hạng tập lệnh sau tên tập lệnh khi duyệt danh sách tập lệnh +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Tìm kiếm bằng GoogleGreasyForkVàSleazyForkchữ viết trên +> - [**GreasyFork: Cải tiến thanh điều hướng**](https://greasyfork.org/scripts/501880): Thêm danh sách người dùng trên thanh điều hướng,bảng điều khiển,Bộ sưu tập vv... +> - [**Greasyfork Thợ làm keo**](https://greasyfork.org/scripts/497346): vì Greasyfork Cung cấp các chức năng sử dụng khác nhau,thời gian tuyệt đối,Màn hình rộng web,Cải tiến trang tập lệnh,Tải xuống tiện ích mở rộng,Sửa chữa bảng điều khiển và một loạt các hoạt động +> - [**GreasyFork Trợ lý thông báo**](https://greasyfork.org/scripts/506345): Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Tập lệnh sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 +> - [**Script Finder Tra cứu tập lệnh GreasyFork**](https://greasyfork.org/scripts/498904): Script Finder Tìm trên bất kỳ trang web nào áp dụng cho trang web đó Kịch bản khỉ mỡ。 + + + + + + +> ### 🔍Có thể bạn đang tìm kiếm kịch bản dành cho người lớn +> +> - [**MissAV Đăng nhập tự động**](https://greasyfork.org/scripts/505325): Phát hiện MissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập +> - [**MissAvSao lưu hàng loạt video yêu thích**](https://greasyfork.org/scripts/497682): từ hiện tạimissavTrang lấy file hình ảnh và thông tin video,Và sau khi hợp nhất các kết quả, tệp trang web được tạo sẽ được cung cấp để tải xuống. +> - [**ThisAV Đăng nhập tự động**](https://greasyfork.org/scripts/506528): Phát hiện ThisAV tình trạng,và tự động đăng nhập khi chưa đăng nhập +> - [**JableTV Đăng nhập tự động**](https://greasyfork.org/scripts/506730): Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập + + + + + + +> ### 🔍Bạn có thể đang tìm kiếm bản dịch tự động +> +> - [**đầu cuối ngoại ngữ**](https://greasyfork.org/scripts/504890): Nhận biết các ký tự không phải tiếng Trung,Nếu chiều dài lớn hơn5Và văn bản dịch không chứa tiếng Trung Quốc,Sau đó dịch và thay thế văn bản gốc sang tiếng Trung +> - [**dịch trang web——Tự động dịch sang tiếng Trung**](https://greasyfork.org/scripts/505208): Cung cấp góc dưới bên phải của mỗi trang web không phải tiếng Trung Quốc(Có thể điều chỉnh ở góc dưới bên trái)thêm mộtgoogleBiểu tượng dịch,Phiên bản này là phiên bản dịch tiếng Trung,Chỉ dịch tiếng nước ngoài sang tiếng Trung,Thêm bản dịch tự động + + + + + + +
    + + diff --git a/chatgpt-plus/README_zh-TW.md b/chatgpt-plus/README_zh-TW.md new file mode 100644 index 000000000..574372cac --- /dev/null +++ b/chatgpt-plus/README_zh-TW.md @@ -0,0 +1,238 @@ + + +
    +
    + + + + + 简体中文 | + English | + Tiếng Việt | + 繁體中文 +
    + 👆️訪問GitHub 上的自述文件以獲得更好的體驗。 +
    +
    + + + +
    + + + + + +
    +

    ChatGPT 折疊自己訊息和最大寬度

    +

    「 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新記錄

    🛠️ ChatGPT 折疊自己訊息和最大寬度 更新日誌

    +

    📅 2024/9/28 09:32 - Ver 0.3.0.0

    +

    新增: 相容新 ChatGPT 官網,設定最大寬度失敗時,自動重新新增.

    +
    +

    📅 2024/9/15 11:13 - Ver 0.2.0.0

    +

    新增: 增加在行動裝置回車鍵發送。代碼來自ChatGPT.com Mobile Layout Enter Key Fix

    +
    + +
    + + + + + +# ChatGPT Chat Fold Script & MAXWidth + + + +## 簡介 + +`ChatGPT Chat Fold Script & MAXWidth` 是一個用於在 ChatGPT 中折疊較長的“你”發送的訊息並設定最大寬度的腳本。這可以幫助你更好地管理長訊息,並改善介面佈局。 + + + +## 功能 + +- **折疊長訊息**:自動折疊由你發送的長訊息,節省螢幕空間。 +- **設定最大寬度**:允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 + + + +## 使用方法 + +- 預設情況下,腳本會自動折疊長訊息。 +- 你可以點擊訊息旁邊的 “折疊” 按钮来手动折疊或展开消息。 +- 在設定中調整聊天視窗的最大寬度。 + + + +## 更新日誌 + +- **v0.1**:初始版本,添加折疊功能和最大寬度設置。 + + + +## 貢獻 + +如果你有任何建議或發現了問題,請透過 GitHub 或者GreasyFork 提交問題。 + +![1.png](https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png) + + + + +> ### 🔍你可能在找ChatGPT相關腳本 +> +> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): ChatGPT 讓程式碼字體變小 並且自動折行 +> - [**ChatGPT 聊天複製程式碼和匯出程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕和一個為 ChatGPT 響應中的程式碼區塊新增匯出按鈕,提示使用者根據程式碼區塊的類別名稱偵測到的程式語言將程式碼儲存為文件。 +> - [**ChatGPT 字元計數器限制 (CCCL)**](https://greasyfork.org/scripts/506166): 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。) +> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 + + + + + +## 使用幫助 + +推薦瀏覽器和腳本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多關於如何安裝使用者腳本,[點擊我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看圖文教學!** + + + +### 查看所有發布腳本 + + + + + + +> ### 🔍你可能在找ChatGPT相關腳本 +> +> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): ChatGPT 讓程式碼字體變小 並且自動折行 +> - [**ChatGPT 聊天複製程式碼和匯出程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕和一個為 ChatGPT 響應中的程式碼區塊新增匯出按鈕,提示使用者根據程式碼區塊的類別名稱偵測到的程式語言將程式碼儲存為文件。 +> - [**ChatGPT 字元計數器限制 (CCCL)**](https://greasyfork.org/scripts/506166): 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。) +> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 + + + + + + +> ### 🔍你可能在找網頁相關腳本 +> +> - [**網頁寫入剪輯版授權管理員**](https://greasyfork.org/scripts/497403): 管理網頁對剪貼簿的寫入行為防止未經授權的自動複製和停用音視頻內容預載及自動播放。 +> - [**解除CSDN登入複製**](https://greasyfork.org/scripts/505207): 去你媽的CSDN登入複製,無需登入即可複製 +> - [**絢麗漸層美化網頁表格**](https://greasyfork.org/scripts/507036): 自動為表格所有欄位套用色彩漸層來美化 +> - [**網頁高亮關鍵字**](https://greasyfork.org/scripts/498906): 對網頁上的文字進行高亮顯示,如果對你有幫助,可以隨意修改使用 +> - [**網頁關鍵字高亮顯示**](https://greasyfork.org/scripts/498905): 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 +> - [**小窗預覽**](https://greasyfork.org/scripts/504880): 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 +> - [**移除連結下劃線**](https://greasyfork.org/scripts/498625): 移除所有網站上的連結底線,並動態處理新鏈接 +> - [**上下滾動按鈕**](https://greasyfork.org/scripts/497251): 在頁面右側產生兩個按鈕用於滾動頁面 +> - [**置頂和置底按鈕**](https://greasyfork.org/scripts/500255): 在所有頁面產生兩個按鈕,一個用於順滑回到頂部,一個用於持續滾動到底部,再次點擊取消捲動到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交資料顯示網頁視圖**](https://greasyfork.org/scripts/505830): 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 +> - [**GitHub 倉庫快速跳轉助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 倉庫快速跳轉助手,專為幫助用戶快速存取自己在 GitHub 上的倉庫而設計 。它在導覽列頂部產生一個按鈕,點擊展開自己的所有倉庫,輕鬆跳到自己的 GitHub 倉庫頁面,而無需使用 GitHub 的二級選單 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。按類型為文件添加顏色和圖標,在儲存庫來源樹中顯示小圖像以取代文件類型圖標 +> - [**Github 代碼語言列表顯示全部**](https://greasyfork.org/scripts/509889): 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在“其他”下 +> - [**GitHub 自動確認設備授權**](https://greasyfork.org/scripts/508956): 在GitHub授權頁面自動輸入授權碼與自動確認。 +> - [**GitHub 資料夾下載器**](https://greasyfork.org/scripts/505496): 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 +> - [**Github 複製原始文件 URL 與下載文件**](https://greasyfork.org/scripts/505501): 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 +> - [**🤠 Github 增強小助手 倉庫顯示大小**](https://greasyfork.org/scripts/502291): 🤠 倉庫顯示大小:在 GitHub 的程式碼搜尋、倉庫搜尋、議題頁面、使用者倉庫清單和儲存庫頁面上,倉庫名稱旁會顯示該倉庫的大小,方便使用者快速了解倉庫的規模,最佳化選擇。不活躍開發警告:如果某個倉庫在過去六個月內沒有更新,系統會在倉庫的頂部添加提示,提醒用戶該倉庫不活躍,並顯示最後一次更新的時間。這有助於使用者判斷倉庫的活躍程度和維護狀況。倉庫內快速跳轉:在瀏覽倉庫時,使用者可以方便地查看該使用者的所有倉庫列表,提供一個快速跳到不同倉庫的入口。用戶可以快速找到和存取感興趣的其他項目,提高工作效率。使用情境:開發者:可以透過顯示倉庫大小和活躍警告,快速篩選出適當的庫進行開發,避免使用不再維護的項目。專案管理者:透過快速跳轉功能,方便管理和協調多個項目,提高工作效率。學習者:在學習新科技時,可以更方便地找到相關的開源項目,快速查看專案的活躍程度和規模。 🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 將文件排序方式改為日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相關腳本 +> +> - [**Google 高級搜尋助手**](https://greasyfork.org/scripts/502652): 在谷歌搜尋頁面頂部新增一個高級搜尋表單 +> - [**封鎖谷歌搜尋站點**](https://greasyfork.org/scripts/500262): 在google搜尋屏蔽指定站點 + + + + + + +> ### 🔍你可能在找GreasyFork相關腳本 +> +> - [**Greasy fork腳本頁面適用於網址增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁適用於網址不預設跳轉搜尋 轉為可點擊的文字連結並彈出提示 +> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 +> - [**GreaysFork 增強WebHook同步設定**](https://greasyfork.org/scripts/506717): GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 +> - [**Greasyfork 腳本顯示評分**](https://greasyfork.org/scripts/501119): 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋GreasyFork和SleazyFork上體文字 +> - [**GreasyFork: 導覽列增強**](https://greasyfork.org/scripts/501880): 在導覽列上新增使用者列表,主機,收藏等.. +> - [**Greasyfork 膠水工匠**](https://greasyfork.org/scripts/497346): 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 +> - [**Script Finder 油猴腳本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 + + + + + + +> ### 🔍你可能在找成人腳本 +> +> - [**MissAV 自動登入**](https://greasyfork.org/scripts/505325): 偵測 MissAV 狀態,並且在未登入時自動登入 +> - [**MissAv批量備份收藏視頻**](https://greasyfork.org/scripts/497682): 從目前missav頁面獲取圖片文件和視頻信息,並合併結果後提供下載產生的網頁文件 +> - [**ThisAV 自動登入**](https://greasyfork.org/scripts/506528): 偵測 ThisAV 狀態,並且在未登入時自動登入 +> - [**JableTV 自動登入**](https://greasyfork.org/scripts/506730): 偵測 JableTV 狀態,並且在未登入時自動登入 + + + + + + +> ### 🔍你可能在找自動翻譯 +> +> - [**外語終結者**](https://greasyfork.org/scripts/504890): 識別非中文字符,如果長度大於5且翻譯文中不含中文,則翻譯並且取代原始文字到中文 +> - [**網頁翻譯——自動翻譯為中文**](https://greasyfork.org/scripts/505208): 給每個非中文的網頁右下角(可以調整到左下角)添加一個google翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 + + + + + + +
    + + diff --git a/Script details/chatgpt-plus/chatgpt-plus.user.js b/chatgpt-plus/chatgpt-plus.user.js similarity index 98% rename from Script details/chatgpt-plus/chatgpt-plus.user.js rename to chatgpt-plus/chatgpt-plus.user.js index c562224e3..9e014b018 100644 --- a/Script details/chatgpt-plus/chatgpt-plus.user.js +++ b/chatgpt-plus/chatgpt-plus.user.js @@ -77,7 +77,7 @@ // @description:fr-CA pliChatGPTmoyen et long“toi”information,et définissez la largeur maximale // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.3.0.0 -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://chatgpt.com/* // @match https://share.nezhagpt.cloud/* // @match https://new.oaifree.com/* @@ -100,12 +100,12 @@ max-width: 100%; }` function applyStyles() { - if (typeof GM_addStyle !== "undefined") { + if (typeof GM_addStyle !== 'undefined') { GM_addStyle(css) } else { - let styleNode = document.createElement("style") + let styleNode = document.createElement('style') styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) + (document.querySelector('head') || document.documentElement).appendChild(styleNode) } } applyStyles() diff --git a/Script details/chatgpt-plus/preview/1.png b/chatgpt-plus/preview/1.png similarity index 100% rename from Script details/chatgpt-plus/preview/1.png rename to chatgpt-plus/preview/1.png diff --git a/chatgpt-regional-support-checker.user.js b/chatgpt-regional-support-checker.user.js deleted file mode 100644 index 58f3b81e5..000000000 --- a/chatgpt-regional-support-checker.user.js +++ /dev/null @@ -1,351 +0,0 @@ -// ==UserScript== -// @name Show Location on ChatGPT -// @name:zh-CN ChatGPT顶部显示当前用户IP -// @description:zh-CN 在ChatGPT官方网站的顶部显示当前用户IP所在的地区,如果是非ChatGPT支持的地区会红色标识提示,以免被封号。 -// @name:ar ChatGPTإظهار المستخدم الحالي في الأعلىIP -// @description:ar يخرجChatGPTيظهر الجزء العلوي من الموقع الرسمي المستخدم الحاليIP所يخرج的地区,إذا كان على حق أو خطأChatGPTسيتم تمييز المناطق المدعومة باللون الأحمر.,لتجنب الحظر。 -// @name:bg ChatGPTПоказване на текущия потребител в горната частIP -// @description:bg съществуватChatGPTГорната част на официалния уебсайт показва текущия потребителIP所съществуват的地区,дали е правилно или грешноChatGPTПоддържаните области ще бъдат маркирани в червено.,За да избегнете забрана。 -// @name:cs ChatGPTZobrazit aktuálního uživatele nahořeIP -// @description:cs existovatChatGPTV horní části oficiálního webu je zobrazen aktuální uživatelIP所existovat的地区,jestli správně nebo špatněChatGPTPodporované oblasti budou označeny červeně.,Aby nedošlo k zákazu。 -// @name:da ChatGPTVis den aktuelle bruger øverstIP -// @description:da eksistereChatGPTToppen af ​​den officielle hjemmeside viser den aktuelle brugerIP所eksistere的地区,hvis rigtigt eller forkertChatGPTUnderstøttede områder vil være markeret med rødt.,For at undgå at blive forbudt。 -// @name:de ChatGPTAktuellen Benutzer oben anzeigenIP -// @description:de existierenChatGPTOben auf der offiziellen Website wird der aktuelle Benutzer angezeigtIP所existieren的地区,ob richtig oder falschChatGPTUnterstützte Bereiche werden rot markiert.,Um einem Verbot zu entgehen。 -// @name:el ChatGPTΕμφάνιση του τρέχοντος χρήστη στην κορυφήIP -// @description:el υπάρχωChatGPTΣτην κορυφή του επίσημου ιστότοπου εμφανίζεται ο τρέχων χρήστηςIP所υπάρχω的地区,αν είναι σωστό ή λάθοςChatGPTΟι υποστηριζόμενες περιοχές θα επισημαίνονται με κόκκινο χρώμα.,Για να αποφύγετε την απαγόρευση。 -// @name:en ChatGPTShow current user at topIP -// @description:en existChatGPTThe top of the official website shows the current userIP所exist的地区,if right or wrongChatGPTSupported areas will be marked in red.,To avoid being banned。 -// @name:eo ChatGPTMontru nunan uzanton supreIP -// @description:eo ekzistiChatGPTLa supro de la oficiala retejo montras la nunan uzantonIP所ekzisti的地区,se prave aŭ malĝustaChatGPTSubtenataj areoj estos markitaj ruĝe.,Por eviti esti malpermesita。 -// @name:es ChatGPTMostrar usuario actual en la parte superiorIP -// @description:es existirChatGPTLa parte superior del sitio web oficial muestra el usuario actual.IP所existir的地区,si es correcto o incorrectoChatGPTLas áreas admitidas estarán marcadas en rojo.,Para evitar ser prohibido。 -// @name:fi ChatGPTNäytä nykyinen käyttäjä yläreunassaIP -// @description:fi olemassaChatGPTVirallisen verkkosivuston yläosassa näkyy nykyinen käyttäjäIP所olemassa的地区,jos oikein tai väärinChatGPTTuetut alueet on merkitty punaisella.,Välttääkseen kiellon。 -// @name:fr ChatGPTAfficher l’utilisateur actuel en hautIP -// @description:fr existerChatGPTLe haut du site officiel montre l’utilisateur actuelIP所exister的地区,si c’est vrai ou fauxChatGPTLes zones prises en charge seront marquées en rouge.,Pour éviter d’être banni。 -// @name:he ChatGPTהצג את המשתמש הנוכחי למעלהIP -// @description:he לְהִתְקַיֵםChatGPTהחלק העליון של האתר הרשמי מציג את המשתמש הנוכחיIP所לְהִתְקַיֵם的地区,אם נכון או לא נכוןChatGPTהאזורים הנתמכים יסומנו באדום.,כדי לא להיות אסור。 -// @name:hr ChatGPTPrikaži trenutnog korisnika na vrhuIP -// @description:hr postojatiChatGPTVrh službene web stranice prikazuje trenutnog korisnikaIP所postojati的地区,ako je ispravno ili krivoChatGPTPodržana područja bit će označena crvenom bojom.,Da izbjegnemo zabranu。 -// @name:hu ChatGPTAz aktuális felhasználó megjelenítése felülIP -// @description:hu létezikChatGPTA hivatalos webhely tetején az aktuális felhasználó láthatóIP所létezik的地区,ha helyes vagy rosszChatGPTA támogatott területek piros színnel lesznek jelölve.,Hogy ne tiltsák el。 -// @name:id ChatGPTTampilkan pengguna saat ini di atasIP -// @description:id adaChatGPTBagian atas situs web resmi menunjukkan pengguna saat iniIP所ada的地区,jika benar atau salahChatGPTArea yang didukung akan ditandai dengan warna merah.,Agar tidak dilarang。 -// @name:it ChatGPTMostra l’utente corrente in altoIP -// @description:it esistereChatGPTLa parte superiore del sito Web ufficiale mostra l’utente correnteIP所esistere的地区,se giusto o sbagliatoChatGPTLe aree supportate saranno contrassegnate in rosso.,Per evitare di essere bannati。 -// @name:ja ChatGPT現在のユーザーを一番上に表示IP -// @description:ja 存在するChatGPT公式サイトのトップには現在のユーザーが表示されますIP所存在する的地区,正しいか間違っているかChatGPTサポートされている領域は赤色でマークされます。,出禁にならないようにするには。 -// @name:ka ChatGPTამჟამინდელი მომხმარებლის ჩვენება ზედაIP -// @description:ka არსებობსChatGPTოფიციალური ვებსაიტის ზედა ნაწილში ნაჩვენებია მიმდინარე მომხმარებელიIP所არსებობს的地区,სწორია თუ არასწორიChatGPTმხარდაჭერილი ადგილები წითლად იქნება მონიშნული.,აკრძალვის თავიდან ასაცილებლად。 -// @name:ko ChatGPT현재 사용자를 맨 위에 표시IP -// @description:ko 존재하다ChatGPT공식 홈페이지 상단에는 현재 사용자가 표시됩니다.IP所존재하다的地区,옳든 그르든ChatGPT지원되는 지역은 빨간색으로 표시됩니다.,금지당하지 않으려면。 -// @name:nl ChatGPTToon huidige gebruiker bovenaanIP -// @description:nl bestaanChatGPTBovenaan de officiële website wordt de huidige gebruiker weergegevenIP所bestaan的地区,als het goed of fout isChatGPTOndersteunde gebieden worden rood gemarkeerd.,Om te voorkomen dat het verboden wordt。 -// @name:nb ChatGPTVis gjeldende bruker øverstIP -// @description:nb eksistereChatGPTToppen av det offisielle nettstedet viser gjeldende brukerIP所eksistere的地区,om rett eller galtChatGPTStøttede områder vil være merket med rødt.,For å unngå å bli utestengt。 -// @name:pl ChatGPTPokaż bieżącego użytkownika na górzeIP -// @description:pl istniećChatGPTNa górze oficjalnej strony internetowej widoczny jest bieżący użytkownikIP所istnieć的地区,jeśli masz rację, czy nieChatGPTObsługiwane obszary zostaną zaznaczone na czerwono.,Aby uniknąć zakazu。 -// @name:pt-BR ChatGPTMostrar usuário atual no topoIP -// @description:pt-BR existirChatGPTA parte superior do site oficial mostra o usuário atualIP所existir的地区,se certo ou erradoChatGPTAs áreas suportadas serão marcadas em vermelho.,Para evitar ser banido。 -// @name:ro ChatGPTAfișați utilizatorul actual în partea de susIP -// @description:ro existaChatGPTPartea de sus a site-ului oficial arată utilizatorul actualIP所exista的地区,daca este corect sau gresitChatGPTZonele acceptate vor fi marcate cu roșu.,Pentru a evita interzicerea。 -// @name:ru ChatGPTПоказывать текущего пользователя вверхуIP -// @description:ru существоватьChatGPTВ верхней части официального сайта отображается текущий пользователь.IP所существовать的地区,если правильно или неправильноChatGPTПоддерживаемые области будут отмечены красным.,Чтобы не быть забаненным。 -// @name:sk ChatGPTZobraziť aktuálneho používateľa navrchuIP -// @description:sk existujúChatGPTV hornej časti oficiálnej webovej stránky sa zobrazuje aktuálny používateľIP所existujú的地区,či správne alebo nesprávneChatGPTPodporované oblasti budú označené červenou farbou.,Aby nebol zakázaný。 -// @name:sr ChatGPTПрикажи тренутног корисника на врхуIP -// @description:sr постојеChatGPTНа врху званичне веб странице приказан је тренутни корисникIP所постоје的地区,ако је исправно или погрешноChatGPTПодржане области ће бити означене црвеном бојом.,Да не буде забрањено。 -// @name:sv ChatGPTVisa aktuell användare överstIP -// @description:sv existeraChatGPTÖverst på den officiella webbplatsen visas den aktuella användarenIP所existera的地区,om rätt eller felChatGPTOmråden som stöds kommer att markeras med rött.,För att slippa bli förbjudna。 -// @name:th ChatGPTแสดงผู้ใช้ปัจจุบันที่ด้านบนIP -// @description:th มีอยู่ChatGPTด้านบนของเว็บไซต์อย่างเป็นทางการจะแสดงผู้ใช้ปัจจุบันIP所มีอยู่的地区,ถ้าถูกหรือผิดChatGPTพื้นที่ที่รองรับจะถูกทำเครื่องหมายด้วยสีแดง,เพื่อหลีกเลี่ยงการถูกห้าม。 -// @name:tr ChatGPTGeçerli kullanıcıyı en üstte gösterIP -// @description:tr var olmakChatGPTResmi web sitesinin üst kısmı mevcut kullanıcıyı gösterirIP所var olmak的地区,eğer doğruysa veya yanlışsaChatGPTDesteklenen alanlar kırmızı renkle işaretlenecektir.,Yasaklanmamak için。 -// @name:ug ChatGPTئۈستىدىكى ئىشلەتكۈچىنى كۆرسەتIP -// @description:ug مەۋجۇتChatGPTئورگان تور بېتىنىڭ ئۈستى تەرىپىدە نۆۋەتتىكى ئىشلەتكۈچى كۆرسىتىلدىIP所مەۋجۇت的地区,ئەگەر توغرا ياكى خاتا بولساChatGPTقوللايدىغان رايونلار قىزىل رەڭدە بولىدۇ.,چەكلىنىشتىن ساقلىنىش。 -// @name:uk ChatGPTПоказати поточного користувача вгоріIP -// @description:uk існуютьChatGPTУ верхній частині офіційного сайту показано поточний користувачIP所існують的地区,правильно чи ніChatGPTПідтримувані області будуть позначені червоним кольором.,Щоб уникнути бану。 -// @name:vi ChatGPTHiển thị người dùng hiện tại ở trên cùngIP -// @description:vi hiện hữuChatGPTPhần đầu của trang web chính thức hiển thị người dùng hiện tạiIP所hiện hữu的地区,nếu đúng hay saiChatGPTCác khu vực được hỗ trợ sẽ được đánh dấu màu đỏ.,Để tránh bị cấm。 -// @name:zh-TW ChatGPT頂部顯示目前用戶IP -// @description:zh-TW 在ChatGPT官方網站的頂部顯示當前用戶IP所在的地區,如果是非ChatGPT支援的地區會紅色標示提示,以免被封號。 -// @name:zh-HK ChatGPT頂部顯示目前用戶IP -// @description:zh-HK 在ChatGPT官方網站的頂部顯示當前用戶IP所在的地區,如果是非ChatGPT支援的地區會紅色標示提示,以免被封號。 -// @name:fr-CA ChatGPTAfficher l’utilisateur actuel en hautIP -// @description:fr-CA existerChatGPTLe haut du site officiel montre l’utilisateur actuelIP所exister的地区,si c’est vrai ou fauxChatGPTLes zones prises en charge seront marquées en rouge.,Pour éviter d’être banni。 -// @description Display the current user's IP location at the top of the ChatGPT official website. If it is a non-supported region by ChatGPT, it will be highlighted in red to prevent account suspension. -// @namespace http://tampermonkey.net/ -// @version 0.5 -// @author Daotin -// @match https://chatgpt.com/* -// @icon data:image/png;base64,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 -// @iconbak https://www.google.com/s2/favicons?sz=64&domain=chat.openai.com -// @grant none -// @license MIT -// @grant GM_xmlhttpRequest -// @downloadURL https://update.greasyfork.org/scripts/464744/Show%20Location%20on%20ChatGPT.user.js -// @updateURL https://update.greasyfork.org/scripts/464744/Show%20Location%20on%20ChatGPT.meta.js -// ==/UserScript== - -(function () { - 'use strict' - - // Define the list of regions to check against - const regions = [ - "Albania", - "Algeria", - "Andorra", - "Angola", - "Antigua and Barbuda", - "Argentina", - "Armenia", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bangladesh", - "Barbados", - "Belgium", - "Belize", - "Benin", - "Bhutan", - "Bolivia", - "Bosnia and Herzegovina", - "Botswana", - "Brazil", - "Brunei", - "Bulgaria", - "Burkina Faso", - "Cabo Verde", - "Canada", - "Chile", - "Colombia", - "Comoros", - "Congo (Congo-Brazzaville)", - "Costa Rica", - "Côte d'Ivoire", - "Croatia", - "Cyprus", - "Czechia (Czech Republic)", - "Denmark", - "Djibouti", - "Dominica", - "Dominican Republic", - "Ecuador", - "El Salvador", - "Estonia", - "Fiji", - "Finland", - "France", - "Gabon", - "Gambia", - "Georgia", - "Germany", - "Ghana", - "Greece", - "Grenada", - "Guatemala", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Holy See (Vatican City)", - "Honduras", - "Hungary", - "Iceland", - "India", - "Indonesia", - "Iraq", - "Ireland", - "Israel", - "Italy", - "Jamaica", - "Japan", - "Jordan", - "Kazakhstan", - "Kenya", - "Kiribati", - "Kuwait", - "Kyrgyzstan", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Liechtenstein", - "Lithuania", - "Luxembourg", - "Madagascar", - "Malawi", - "Malaysia", - "Maldives", - "Mali", - "Malta", - "Marshall Islands", - "Mauritania", - "Mauritius", - "Mexico", - "Micronesia", - "Moldova", - "Monaco", - "Mongolia", - "Montenegro", - "Morocco", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Netherlands", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "North Macedonia", - "Norway", - "Oman", - "Pakistan", - "Palau", - "Palestine", - "Panama", - "Papua New Guinea", - "Paraguay", - "Peru", - "Philippines", - "Poland", - "Portugal", - "Qatar", - "Romania", - "Rwanda", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Slovakia", - "Slovenia", - "Solomon Islands", - "South Africa", - "South Korea", - "Spain", - "Sri Lanka", - "Suriname", - "Sweden", - "Switzerland", - "Taiwan", - "Tanzania", - "Thailand", - "Timor-Leste (East Timor)", - "Togo", - "Tonga", - "Trinidad and Tobago", - "Tunisia", - "Turkey", - "Tuvalu", - "Uganda", - "Ukraine (with certain exceptions)", - "United Arab Emirates", - "United Kingdom", - "United States of America", - "Uruguay", - "Vanuatu", - "Zambia", - "Socialist Republic of Vietnam" - ] - - - GM_xmlhttpRequest({ - method: "GET", - url: "https://chatgpt.com//cdn-cgi/trace", - onload: function (response) { - const data = response.responseText - const locationRegex = /loc=([a-zA-Z]+)/ - const countryCode = data.match(locationRegex)[1] - const ipRegex = /ip=([0-9\.]+)/ - const ipAddress = data.match(ipRegex)[1] - - GM_xmlhttpRequest({ - method: "GET", - url: `https://restcountries.com/v3.1/alpha/${countryCode}`, - onload: function (response) { - if (response.status >= 200 && response.status < 300) { - const data = JSON.parse(response.responseText) - const countryName = data[0]?.name?.official || data[0]?.name?.common - - const isInRegion = regions.some(region => countryName.includes(region)) - - createMessage('location', `Your location: ${countryName} (${ipAddress}) ${isInRegion ? '✅' : '⛔'}`, isInRegion) - } else { - createMessage('error', `Error: Network response was not ok`, false) - } - }, - onerror: function () { - createMessage('error', 'Error: Failed to fetch country data', false) - } - }) - }, - onerror: function () { - createMessage('error', 'Error: Failed to fetch IP and location data', false) - } - }) - - - function createMessage(type, text, isInRegion) { - const backgroundColor = type === 'error' ? '#ef4146b3' : (isInRegion ? '#10a37fb3' : '#ef4146b3') - const messageHTML = ` -
    - ${text} -
    ×
    -
    - ` - - const messageDiv = document.createElement('div') - messageDiv.innerHTML = messageHTML - document.body.appendChild(messageDiv) - - // Add event listener to the close button - messageDiv.querySelector('div').addEventListener('click', () => { - messageDiv.remove() - }) - setTimeout(() => { - messageDiv.remove() - }, 5000) - } -})() diff --git a/clipboard-manager.user.js b/clipboard-manager.user.js deleted file mode 100644 index 5464d0a20..000000000 --- a/clipboard-manager.user.js +++ /dev/null @@ -1,316 +0,0 @@ -// ==UserScript== -// @name:zh-CN 网页写入剪辑版授权管理器 -// @description:zh-CN 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 -// @name Web page writing clip version authorization manager -// @description Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. -// @name:ar صفحة الويب كتابة مدير ترخيص إصدار المقطع -// @description:ar إدارة سلوك الكتابة لصفحات الويب في الحافظة لمنع النسخ التلقائي غير المصرح به وتعطيل التحميل المسبق لمحتوى الصوت والفيديو والتشغيل التلقائي. -// @name:bg Мениджър за оторизиране на версия на клип за писане на уеб страница -// @description:bg Управлявайте поведението на запис на уеб страници в клипборда, за да предотвратите неоторизирано автоматично копиране и да деактивирате предварителното зареждане на аудио и видео съдържание и автоматичното възпроизвеждане. -// @name:cs Správce autorizace verze klipu pro psaní webové stránky -// @description:cs Spravujte chování při zápisu webových stránek do schránky, abyste zabránili neoprávněnému automatickému kopírování a deaktivovali předběžné načítání zvukového a obrazového obsahu a automatické přehrávání. -// @name:da Websideskrivende klipversionsautorisationsmanager -// @description:da Administrer skriveadfærden for websider til udklipsholderen for at forhindre uautoriseret automatisk kopiering og deaktiver forudindlæsning af lyd- og videoindhold og automatisk afspilning. -// @name:de Autorisierungsmanager für Webseiten-Schreibclip-Versionen -// @description:de Verwalten Sie das Schreibverhalten von Webseiten in die Zwischenablage, um unbefugtes automatisches Kopieren zu verhindern und das Vorladen von Audio- und Videoinhalten sowie die automatische Wiedergabe zu deaktivieren. -// @name:el Διαχείριση εξουσιοδότησης έκδοσης κλιπ συγγραφής ιστοσελίδας -// @description:el Διαχειριστείτε τη συμπεριφορά γραφής των ιστοσελίδων στο πρόχειρο για να αποτρέψετε μη εξουσιοδοτημένη αυτόματη αντιγραφή και να απενεργοποιήσετε την προφόρτωση περιεχομένου ήχου και βίντεο και την αυτόματη αναπαραγωγή. -// @name:en Web page writing clip version authorization manager -// @description:en Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. -// @name:eo Retpaĝo skribanta klipo versio rajtigo administranto -// @description:eo Administru la skriban konduton de retpaĝoj al la tondujo por malhelpi neaŭtorizitan aŭtomatan kopiadon kaj malŝalti aŭd- kaj videenhavan antaŭŝarĝon kaj aŭtomatan reproduktadon. -// @name:es Administrador de autorización de versión de clip de escritura de página web -// @description:es Administre el comportamiento de escritura de páginas web en el portapapeles para evitar copias automáticas no autorizadas y deshabilite la precarga y reproducción automática de contenido de audio y video. -// @name:fi Web-sivun kirjoitusleikkeen valtuutushallinta -// @description:fi Hallitse web-sivujen kirjoituskäyttäytymistä leikepöydälle estääksesi luvattoman automaattisen kopioinnin ja poista käytöstä ääni- ja videosisällön esilataus ja automaattinen toisto. -// @name:fr Gestionnaire d’autorisation de version de clip d’écriture de page Web -// @description:fr Gérez le comportement d’écriture des pages Web dans le presse-papiers pour empêcher la copie automatique non autorisée et désactiver le préchargement et la lecture automatique du contenu audio et vidéo. -// @name:he מנהל הרשאות גרסאות כתיבת דף אינטרנט -// @description:he נהל את התנהגות הכתיבה של דפי אינטרנט ללוח כדי למנוע העתקה אוטומטית בלתי מורשית ולהשבית טעינה מראש של תוכן אודיו ווידאו והשמעה אוטומטית. -// @name:hr Upravitelj autorizacije verzije isječka za pisanje web stranice -// @description:hr Upravljajte ponašanjem pisanja web stranica u međuspremnik kako biste spriječili neovlašteno automatsko kopiranje i onemogućili prethodno učitavanje audio i video sadržaja i automatsku reprodukciju. -// @name:hu Weboldal írási klip verzió engedélyezési kezelője -// @description:hu Kezelje a weboldalak vágólapra írási viselkedését, hogy megakadályozza a jogosulatlan automatikus másolást, valamint letiltja az audio- és videotartalom előtöltését és az automatikus lejátszást. -// @name:id Manajer otorisasi versi klip penulisan halaman web -// @description:id Kelola perilaku penulisan halaman web ke clipboard untuk mencegah penyalinan otomatis tanpa izin dan menonaktifkan pramuat konten audio dan video serta pemutaran otomatis. -// @name:it Gestore delle autorizzazioni della versione del clip di scrittura della pagina Web -// @description:it Gestisci il comportamento di scrittura delle pagine web negli appunti per impedire la copia automatica non autorizzata e disabilitare il precaricamento e la riproduzione automatica dei contenuti audio e video. -// @name:ja Web ページ書き込みクリップ バージョン認証マネージャー -// @description:ja Web ページのクリップボードへの書き込み動作を管理して、不正な自動コピーを防止し、オーディオおよびビデオ コンテンツのプリロードと自動再生を無効にします。 -// @name:ka ვებ გვერდის ჩაწერის კლიპის ვერსიის ავტორიზაციის მენეჯერი -// @description:ka მართეთ ვებ გვერდების ჩაწერის ქცევა ბუფერში, რათა თავიდან აიცილოთ არაავტორიზებული ავტომატური კოპირება და გამორთოთ აუდიო და ვიდეო კონტენტის წინასწარ ჩატვირთვა და ავტომატური დაკვრა. -// @name:ko 웹 페이지 작성 클립 버전 권한 관리자 -// @description:ko 웹페이지의 클립보드 쓰기 동작을 관리하여 무단 자동 복사를 방지하고 오디오 및 비디오 콘텐츠 사전 로드 및 자동 재생을 비활성화합니다. -// @name:nl Autorisatiemanager voor het schrijven van clips voor webpagina’s -// @description:nl Beheer het schrijfgedrag van webpagina’s naar het klembord om ongeoorloofd automatisch kopiëren te voorkomen en om het vooraf laden en automatisch afspelen van audio- en video-inhoud uit te schakelen. -// @name:nb Nettsideskriving klipp versjon autorisasjon manager -// @description:nb Administrer skriveoppførselen til nettsider til utklippstavlen for å forhindre uautorisert automatisk kopiering og deaktiver forhåndsinnlasting av lyd- og videoinnhold og automatisk avspilling. -// @name:pl Menedżer autoryzacji wersji klipu do pisania stron internetowych -// @description:pl Zarządzaj zachowaniem stron internetowych podczas zapisywania w schowku, aby zapobiec nieautoryzowanemu automatycznemu kopiowaniu oraz wyłączyć wstępne ładowanie i automatyczne odtwarzanie treści audio i wideo. -// @name:pt-BR Gerenciador de autorização de versão de clipe de gravação de página da Web -// @description:pt-BR Gerencie o comportamento de gravação de páginas da web na área de transferência para evitar cópias automáticas não autorizadas e desativar o pré-carregamento e a reprodução automática de conteúdo de áudio e vídeo. -// @name:ro Manager de autorizare a versiunii clipului de scriere a paginii web -// @description:ro Gestionați comportamentul de scriere a paginilor web în clipboard pentru a preveni copierea automată neautorizată și pentru a dezactiva preîncărcarea conținutului audio și video și redarea automată. -// @name:ru Менеджер авторизации версий клипов для написания веб-страниц -// @description:ru Управляйте процессом записи веб-страниц в буфер обмена, чтобы предотвратить несанкционированное автоматическое копирование и отключить предварительную загрузку и автоматическое воспроизведение аудио- и видеоконтента. -// @name:sk Manažér autorizácie verzie klipu na písanie webovej stránky -// @description:sk Spravujte správanie pri zápise webových stránok do schránky, aby ste zabránili neoprávnenému automatickému kopírovaniu a zakázali predbežné načítanie zvukového a video obsahu a automatické prehrávanie. -// @name:sr Менаџер ауторизације верзије клипа за писање веб странице -// @description:sr Управљајте понашањем писања веб страница у клипборд да бисте спречили неовлашћено аутоматско копирање и онемогућили претходно учитавање аудио и видео садржаја и аутоматску репродукцију. -// @name:sv Webbsida skriver klipp version auktoriseringshanterare -// @description:sv Hantera skrivbeteendet för webbsidor till urklipp för att förhindra obehörig automatisk kopiering och inaktivera förladdning av ljud- och videoinnehåll och automatisk uppspelning. -// @name:th ผู้จัดการการอนุญาตเวอร์ชันการเขียนคลิปหน้าเว็บ -// @description:th จัดการลักษณะการเขียนของหน้าเว็บไปยังคลิปบอร์ดเพื่อป้องกันการคัดลอกอัตโนมัติโดยไม่ได้รับอนุญาต และปิดใช้งานการโหลดเนื้อหาเสียงและวิดีโอล่วงหน้าและการเล่นอัตโนมัติ -// @name:tr Web sayfası yazma klibi sürüm yetkilendirme yöneticisi -// @description:tr Yetkisiz otomatik kopyalamayı önlemek ve ses ve video içeriğinin önceden yüklenmesini ve otomatik oynatmayı devre dışı bırakmak için web sayfalarının panoya yazma davranışını yönetin. -// @name:ug تور بەت يېزىش قىستۇرما نەشرىگە ھوقۇق باشقۇرغۇچى -// @description:ug تور بەتلەرنىڭ يېزىش ھەرىكىتىنى چاپلاش تاختىسىغا باشقۇرۇپ ، رۇخسەتسىز ئاپتوماتىك كۆچۈرۈلۈشنىڭ ئالدىنى ئالىدۇ ۋە ئاۋاز ۋە سىن مەزمۇنىنى ئالدىن قاچىلاش ۋە ئاپتوماتىك قويۇشنى چەكلەيدۇ. -// @name:uk Менеджер авторизації версії кліпу для написання веб-сторінки -// @description:uk Керуйте поведінкою запису веб-сторінок у буфер обміну, щоб запобігти неавторизованому автоматичному копіюванню та вимкнути попереднє завантаження аудіо- та відеовмісту та автоматичне відтворення. -// @name:vi Trình quản lý ủy quyền phiên bản clip viết trang web -// @description:vi Quản lý hành vi ghi của các trang web vào bảng nhớ tạm để ngăn chặn việc sao chép tự động trái phép, đồng thời tắt tính năng tải trước nội dung âm thanh và video cũng như tự động phát lại. -// @name:zh-SG 网页写入剪辑版授权管理器 -// @description:zh-SG 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 -// @name:zh 网页写入剪辑版授权管理器 -// @description:zh 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 -// @name:zh-TW 網頁寫入剪輯版授權管理員 -// @description:zh-TW 管理網頁對剪貼簿的寫入行為防止未經授權的自動複製和停用音視頻內容預載及自動播放。 -// @name:zh-HK 網頁寫入剪輯版授權管理員 -// @description:zh-HK 管理網頁對剪貼簿的寫入行為防止未經授權的自動複製和停用音視頻內容預載及自動播放。 -// @name:fr-CA Gestionnaire d’autorisation de version de clip d’écriture de page Web -// @description:fr-CA Gérez le comportement d’écriture des pages Web dans le presse-papiers pour empêcher la copie automatique non autorisée et désactiver le préchargement et la lecture automatique du contenu audio et vidéo. -// @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 Sky,仰望星空 -// @version 1.2.3.1 -// @include * -// @run-at document-body -// @license MIT -// @grant GM_setClipboard -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7d13nFT1vf/x92xjC22XpSy9N0Es9CIICIIgIkW8oMYCCqhgjIjlp8ZE0JhrDHZM4rXk2qKxEASlSVFAekeaAkpfYGEL2+b3xzpexGXLzDlzzpzv6/l47CO2+X4/GnVenjPnOz4B9qss6TJJ3SW1lNRcUk1JiZLiHZwLkSlP0iFJX0t6Q9KsMO4dJ+kmSSMltZVUQ5IvjPtHogOSNkh6V9JbKvr/D4CHVZA0StJ/VPQPvJ8ffmz6WaCioLTbRZJ2OPDn56WfrZLalPcvPIDIkCBpsqT9cv5fNvyY87NTUqrs017SaRf8eXrhJ0NSj/L95QfgdoMk7Zbz/4Lhx8wfu24FJEra64I/Py/9nBIRAHhCoqTX5Py/VPjhx443lftc8OflxR8iwGFRTg+AiNdA0kpJv3F4DkCSro+QNSFVlDRbRIBjCACE4gJJy376X8AN2lu8Xoykdhavif9DBDgoxukBELGaSJonqZbTgwABcRWTm/zXe+n3W7XeiX1bkz66vTX/oWSvQAQMlLTE4VmMQgAgGKmSPhdv/nCZyrWbpsinJy1br04z+XxR8vsLrVoSxSMCHEDZorx8kv4uqbHTgwDnSm3R0dL1oqJjlNLkIkvXxHlVlDRH0uVOD2IKAgDlNUnS1U4PARSnUc9R1q/Zi88AhlGipE/EZwLCggBAedSR9LjTQwDFqddpsGpe0N3ydVsOmqCkGvUtXxfnxQcDw4QAQHlMl1TJ6SGAc1Wu3VTdf/uaLWvHVEhU74c/VGxCRVvWR7GIgDDgSyxQVk0kbRMfHIXL1L64ry67/38VX6W6rfuk716vRdNGKuOHb23dB79wWnww0DYEAMrqeUkTnR4CiIqJVUJyLdVo1VVN+t6ouh0Ghm3vwvw87Zr/hvYsfk/H92xQ9olDkt8ftv0NRQTYhABAWVSQ9KOklFAXqtrgAjXte5PqXNpfSTXqKy6paujTAXDMO6NqKOfkEbu3IQJswOVclMUAhfjmHx2XoE7j/6pm/W6RLyraorEAGIJzAmxAAKAsrgjlxXFJVdRv2hdKbd7BqnkAmIcIsBhPAaAsegX9Sp9PPae+zZs/ACvwdICFCACUpoKkFsG+uNFl16lO+wEWjgPAcJwYaBECAKVpJinom/ZtR0yxcBQAkMSJgZYgAFCaesG+MKlGfaU0udjKWQAggNsBISIAUJrKwb4wuUEbK+cAgHNxOyAEBABKkxjsC+0+mQ0AxO2AoBEAKE3Qf4/4onnKFEBYcCUgCAQAAMAZFVOtXI0rAeVEAAAAHBEz/j/ypTS0ckmuBJQDAQAAcIQvpb6iJ823OgISJc0SEVAqAgAA4BhfSgMiwCEEAADAUUSAMwgAAIDjiIDwIwAAAK5ABIQXAQAAcA0iIHzsPKnFJ6mqih7LiLVxH9gr6Ad187IydOrgbitngQtFx8YrMSVN8vmcHgUe4UtpoOi75qpgRl/5j++zatnAOQEDJS2xatFIZtU/sfGSuqqorjqo6Otj64srDIARouPiVevCXmoxYJzqdx3q9DgIo3dG1VDOySNBvTZ2+gGp4vmPDPcf3WV1BEjSaREBkkIPgE6SbpM0QlKV0McBEOnqXNpfPae+rbiKyU6PgjCwMwAkIsBOwf4Xek9JCyUtV1EA8OYPQJL0w+q5mv27Hso+fsjpUeABvtQmir57nnzJQX8zeXH4KmGVPwDSJL0taZGkXlYPA8AbTny/WXOn9iYCYAkiwB7lCYC+ktZKGmXTLAA85MTeLZozpaey0w84PQo8wJfaRNGTF/HdARYqawA8LOlzSTVtnAWAx5zcv11zH+jLlQBYIvB0gMVXAoz9FsHSAsAnaYakP8i6JwYAGOTE3i3cDoBluB1gndIC4E+S7grHIAC8i9sBsBK3A6xRUgDcLel34RoEgLdxOwBW4nZA6M4XAB0lPR3OQQB4H1cCYCWuBISmuABIUNGjfnFhngWAAbgSACtxJSB4xQXAQ5Iah3sQAObgSgCsxJWA4JwbAHXFfX8AYcCVAFiJKwHld24A3CepghODADAPVwJgJa4ElM/Zz/ZXlnRARcVjiaioKFWrXlPx8QlWLQkgzLKzs3T08EFb96hav7X6P7lACcmcNRZp7P4yoGDwBUJlE3PWL4+QBW/+CYlJGvWbO3TlkOFq0+5SRcfElP4iAK61YM4nmjDmGlv3CBwWRATACoHDgiyOgMBhQZ6JgLNvAVwf6mI9+lypL1bt0P2PP612l3bizR9AmXFiIKzEiYGlCwRAvKRuoSx0zXU36uX//VSpNWqFPhUAIxEBsBIRULJAAHRWUQQEpV37zvrDX2YqOjramqkAGIsIgJWIgPMLBEDbYBfw+Xx68I/PKDaOc4MAWIOnA2Alng4oXiAAWgS7wCWduqld+84WjQMARTgnAFbinIBfCwRA7WAX6NXvKotGAYBf4nYArMTtgF8KBEDFYBdo1DToiwcAUCpuB8BK3A74P4EACPr5/+SUVItGAYDicTsAVuJ2QJFAAPhK/KNKWiDqfN8oDADW4UoArMSVgOK/DRAALFEjra5iY617QogrAbCS6VcCCAAAtmne5hJNe/Xfio2z7jvGuBIAK5l8JYAAAGCrLr0HatrMDy2NgJP7t2vO/ZcTAbCEL6WBoifNtzoCEiXNkosjgAAAYDsiAG5nYgQQAADCggiA25kWAQQAgLAhAuB2JkUAAQAgrIgAuJ0pEUAAAAg7IgBuZ0IEEAAAHEEEwO28HgEEAADHEAFwOy9HAAEAwFFEANzOqxFAAABwHBEAt/NiBBAAAFyBCIDbeS0CCAAArkEEwO28FAEEAABXIQLgdl6JAAIAgOsQAXA7L0QAAQDAlYgAuF2kRwABAMC1iAC4XSRHAAEAwNWIALhdpEYAAQDA9YgAuF0kRgABACAiEAFwu0iLAAIAQMQgAuB2kRQBBACAiEIEwO0iJQIIAAARhwiA20VCBBAAACISEQC3c3sEEAAAIhYRALdzcwQQAAAiGhEAt3NrBBAAACJel94D9fiL7yo2Ns6yNU/u3665D/RV9vFDlq3pRb7omKBf68/LtnASd/OlNFD0XXPlS65n5bKJkj6R1COYFxMAADyhR78hevyl9yyNgBN7t2ju1N5EQAliEyoG/+KTB60bJAL4Upso+u55VkdARUmzFUQEEAAAPIMICL+4pKpBv9a/e5mFk0QGN0UAAQDAU4iA8KpUq3HQry1c856Fk0QOt0QAAQDAc4iA8KlSr2XQr/V//40KN82ycJrI4YYIIAAAeFKPfkM07dV/W/p0wIm9WzRnSk+eDjhLaouOIb2+4O075D++z6JpIosvtYmiJy+y+umAipLmqAxPBxAAADyLpwPsV7NND0WF8CSAMg6q4KWr5D+2x7qhIoiTTwcQAAA8jdsB9opNqKSabXuGtIb/wBblP91ZhUtelgryLJoscjh1OyCEbAOAyBCIgEfGj1ReXq4lawYioP+TC5SQXNOSNSNV07436sC6+aEtknlMBe/dqYLP/qCotoPkq91WqlRT8vmsGTICRPW4QwWzHpEKC6xaMhABAyUtOfd3EgAAjEAE2KdBt2Fa+co9OnMqPfTFTh1S4Vd/D30dBJw3ArgFAMAY3A6wR0x8kloNudvpMXB+xd4OIAAAGIUIsEfrIXerQuVqTo+B86so6WNJzQK/gQAAYBwiwHpxFZN16c1POj0GSpYs6W+BXyEAABiJCLBes/63qFa7kL+mHva6TD/dCiAAABiLCLCWzxelnlP+afQHIiPE1RIBAMBwRIC1ElLSdPnDHyg6LsHpUXB+LSUCAACIAIvVaN1NvR58V1ExsU6PguKlSAQAAEjiuwOsVq/TYF3xh88Um1DJ6VFwHgQAAPyE7w6wVtpFfdT/yfmqWKOB06OgGAQAAJyF2wHWSm3eQYOfX6MG3Yc5PQrOQQAAwDmIAGtVqJSiyx/6l/o89qkqpTVxehz8hAAAgGIQAdar12mQhs7cqu73/o+q1Gvl9DjGIwAA4DyIAOtFxcSqad+bNHTmFl31l6/V6uo7VblOs9JfCMvxbYAAUAK+RdA+1Vt2VvWWnSVJmUf3K33nGp3cv12nD+5RXs5pFeTmODxhyfL8UkaeM3sXnD6mrM0LQlqDAACAUgQeEXxw3LXKyz1jyZqBRwSvfGqhElLSLFkzkiWl1lVSal3Vc3qQcsjIlzad8juyd/a3X4UcANwCAIAy6NJ7oKbN/NDScwJO7t+uOfdfbuQ5AXAeAQAAZUQEwEsIAAAoByIAXkEAAEA5EQHwAgIAAIJABCDSEQAAECQiAJGMAACAEBABiFQEAACEiAhAJCIAAMACRAAiDQEAoEShnIOfnXnawkncr0vvgXr8xXct/e6Ak/u3a+4DfY397gDYhwAAUKLEpIpBv/bIoR8snCQy8AVCiBQEAIASVamaHPRr9+3+VkcP/WjhNJGBCEAkIAAAlKhuw8aKigruXxV+v19ffPS/Fk8UGYgAuB0BAKBE8fEJqlOvYdCvf+ulp3Q644R1A0UQIgBuRgAAKFW79p2Dfu3J9KN6dOIoFRYUWDhR5Ah8lbCVTwcEvkqYpwMQCgIAQKk697g8pNev+HKuHpl4nXKyMi2aKLLwdADciAAAUKpe/a5SdExMSGssmv2Bbh54ib787EMVFhZaNFnk4HYA3Ca0f6IBGCG1Ri1179VPX86bHdI6+3Z/q4duH6bkajXUsWd/1WnQWMmpNRUdHW3RpO7XqdeVWvrFJ5atF4iA/k8uUEJyTcvWhfcRAADK5LrfjAs5AAKOHzusuR++aclaIAIQHG4BACiTy/sPVvPWbZ0eA+cRiICck0ecHgURggAAUCY+n0+THnjc6TFQghN7t2jB40NVmJ/r9CiIAAQAgDLrM2CIevUb5PQYKMHhLcu09dMXnB4DEYAAAFAuj/7peVVJTnF6DJRgy4fPSH6/02PA5QgAAOWSVre+pj/3D/l8PqdHwXlkHt2v9D3rnR4DLkcAACi33lderXsefsLpMVCCjB93Oj0CXI4AABCUcZOm6uYJv3V6DJxHXlaG0yPA5QgAAEG7//E/695Hpjs9BoAgEAAAQjL27vv11IuvKyExyelRAJQDAQAgZENG3qB/zVupthd3cHoUAGVEAACwRJPmrfTu3K/16NMvKKVadafHAVAKAgCAZaKionT9zeO1YN0ePfDHZ1S3QSOnRwJwHgQAAMvFJyTqpjsm64tVO/XWrC81ZuxdatqitdNjATgL3wYIwDY+n0/tO/dQ+849JEnHjx3Vzu2btWfndp1IP6ZTGRk6fSpDBQUFDk96fvmFRT9OWLfiS+3dtd2ZzeF5BACAsEmulqoOXXuqQ9eeTo9SZqdzfcrJd2bvJ6fcRgDANtwCAADAQAQAAAAGIgAAADAQAQAAgIEIAAAADEQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGIgAAADAQAQAAAAGIgAAADAQAQAAgIEIAAAADEQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGIgAAADAQAQAAAAGIgAAADAQAQAAgIEIAAAADEQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGCjG6QEAANb79rNX5S/IV92Og5RYrbbT48CFCAAA8KAj25bryLbl8vmi1KD7MF1y0x9VuU5zp8eCi3ALAAA8zO8v1HdL3tdHt1+g1f+YqoLcbKdHgksQAABggMKCfG18/yl9dHsb/bh2ntPjwAUIAAAwyKmDu/X5Q/205M836kzGMafHgYMIAAAwjd+vXfPf1Ed3tNF3S953eho4hAAAAENlHz+oRdNGav5jg5V5dL/T4yDMCAAAMNy+FbP08R1ttOWjv8rvL3R6HIQJAQAAUG7mSa18ZbLmTOmlk/u3Oz0OwoAAAAD87NCmJfpk4sVa99ZjKszPc3oc2IgAAAD8QkFuttb98/eaNamDjn77jdPjwCYEAACgWOm712v2b7tqxcuTlJ+T6fQ4sBgBAAA4r8KCfG39eIY+Hn8hBwh5DAEAACgVBwh5DwEAACibsw8QWvovp6dBiAgAAEC5ZB8/qEVPjOAAoQhHAAAAgsIBQpGNAAAAD3rooo7qV6e+7ftwgFDkIgAAwIMaVKqkOQOG6t0+A5Uan2D7fhwgFHkIAADwsBGNmmnTsDG6oWlL2/f6xQFCO1bZvh9CQwAAgMfVSEjU6736a1b/IapfsZLt+6XvXq/Z93ThACGXIwAAwBAD6zXU5uE36P527RXl89m6FwcIuR8BAAAGSYqJ1fQO3bR40Ai1rppi+34cIOReBAAAGKhrzTStvXa0pnfoprioaHs34wAhVyIAAMBQsVFRur9de60aer061ahl+34cIOQuBAAAGK5NcjUtGzxSL3fvo4qxsbbvxwFC7kAAAAAU5fNpXMs22nDtGA4QMgQBAAD4WcNKlTlAyBAEAADgVzhAyPsIAABAsThAyNsIAABAiThAyJsIAABAqc4+QKgVBwh5AgEAACizrjXTtI4DhDwhxukBAESGQwd+0JfzZmvv7l06cuiAjh45JH+h95/hzi+UCv3O7P3dji3ObFyKwAFCA+o11Lgl87XyyEFb9wscINSg+zB1Hv+cElLSbN3PFAQAgBLN/+xjzXz2SW1Ys1J+v0PvhHClC1NStezqkZqxeZ0eWfW1Mm1+jO/7pR/owNr56jD2z2rW7xbJ5s8jeB23AAAUa9/3uzV60GWaeMNQrV+9gjd/FCva59M9bS7WhmFjdEVYDhA6oWXP3qY5D/RRxo87bd/PywgAAL+yZsUyjerfVauXL3V6FESIRpUqa24YDxA6uH6hPh5/IQcIhYAAAPALm9ev1i3D++vY0cNOj4IIxAFCkYMAAPCzgz/u1+3XD1ZOdpbToyCCBQ4Q+rjfYNVNqmj7foEDhFb/Y6oKcrNt388rCAAAP5v+8G919LC9n+iGOQbXb6ytI24M2wFCG99/Sh/d3oYDhMqIAAAgSdqwZqU+//QDp8eARXxyxyfkAwcILbpquFpWTbZ9v8ABQl/9dZxyM0/Yvl8kIwAASJLeevV5PunvIdXi450e4Re616qt9deOCdsBQt/OeVX/HtuKA4RKQAAAUH5enhZ98R+nx4CFmlex/7+2yytwgNDKa0apY/Vatu8XOEBo4RPDlZ1+wPb9Ig0BAECb169WxonjTo8BizSvkqzWYTivP1iBA4T+u/NlSoqJtX2/75d+oH+Pa60dc/8ucZXrZwQAAP2w73unR4CFHrq4o9MjlCpwgNDGYWPUL4wHCH02padO7t9u+36RgAAAwCf/PeTahk01JgzP4FulYaXKmjNgqF7r2U8pFez/3MKhTUv0ycSLtelfT6uwIN/2/dyMAACgrMzTTo8AC4xs3Exv9Orvks//l89NzVpp8/AbdF3j5rbvVZCbrVV/n6L/TO6k9F1rbd/PrQgAAIhgPkkdqtfU+32u0tu9ByoxJnK/461mQqLe7j0gbAcIHdu5RrMmdTT2AKHI/TsFgCtc36SFbm7e2ukxjBQfHaOmVaqqVkKi06NYanD9xuqZVlcPrFymV7ZtVKGNH9wLHCD0/VcfquvdM1Xrwl627eU2BACAkDSqVFl9w/AhLpilcmycXuh2uUY3bamxS+Zp64l0W/fL+GGH5kztrSa9x6jjuL+oQuVqtu7nBtwCAAC4VteaaVp37eiwHSC0a/6b+uiONkYcIEQAAABcLXCA0DfXjFKnGuE7QGj+Y4OVeXS/7fs5hQAAAESEtimpWjZ4pF7u3kcVY+0/QGjfiln6+I422vLRX+X3F9q+X7gRAACAiBHl82lcyzbacG24DhA6qZWvTNacKb08d4AQAQAAiDiBA4Te7TNQqfEJtu8XOEBo3VuPqTA/z/b9woEAAABErBGNmmnTsDG6IQynHxbkZmvdP3+vWZM66OiOVbbvZzcCAAAQ0WokJOr1Xv01q/8Q1a9Yyfb90nev1+x7umj9zEkqPJNp+352IQAAAJ4wsF5DbR5+g+5v115RPnsPRC4syNeuT2fo+/vbKWvTfFv3sgsBAADwjKSYWE3v0E2LB41QqzB8JXLe4d3aP72fDr8xWf78XNv3sxIBAADwnHAfIHRizgz98OSVKsyJnC/WIgAAAJ4UOEBo5TWj1LG6/QcIZW1ZpAPP/ZcUIWcGEAAAAE+7MCVVy64eqf/ufJmSYuw9QChz7Sylfzzd1j2sQgAAADwv2ufTPW0u1oZhY3SFzQcIHfv3E8o7vNvWPaxAAAAAjNGoUmXNtfkAIX9ejtJn/dmWta1EAAAAjDOiUTNtHDZG1zVubsv6p5a+JX9uti1rW4UAAAAYqWZCot7uPUAf9xusukkVLV27MOe0srYstHRNqxEAAACjDa7fWFtH3Gj5AUI5u919XDABAAAwXuAAoUVXDVfLqsmWrJl3+DtL1rELAQAAwE+616qtNUNHa0iDxiGvVZidYcFE9olxegAAANwiKz9ff1i7Qp/u3RPyWlHxSRZMZB8CAAAASbP27tGEZQu0P9Oa43xjqqZZso5dCAAAgNEOZ2dp8vIv9c6uby1dt0L9Cy1dz2oEAADAWO/v2aGJyxbqaI7Fz+xHRSux7RXWrmkxAgAAYJw9pzI0ful8ff7DXlvWT7qwv6IrV7dlbasQAAAAYxT4/ZqxeZ0eWfW1MvPzbNsnZfB9tq1tFQIAAGCEjelHNXbJfK08ctDWfSp1GaWEVj1t3cMKBAAAwNPyCgv1zMY1enT1cuUWFti6V2z1hqpx83O27mEVAgAA4FlLD/6ocUvnaduJ47bvFZNSV3WmzlF0xWq272UFAgAA4DkZebl68JtlennrRhX6/bbvF9+4vdImvafY6g1t38sqBAAAwFOsPtCnJL7oGCUPuk/Vhj0qX0yc7ftZiQAAAHjC4ews3bdiid7cuS0s+1Vp1E5Vbn1V8Y3bh2U/qxEAAICIZ9uBPsWIjktQ2xFT1HD4Q9qSHblvo5E7OQDAeN+dytD4ZQs0d//3YdmvZpse6jrpVVWp20IZ+ZJk/+cL7EIAAAAiTqHfr79t36zfrVis03n2HegTEJdUVe1vfUrNrxwr+Xy27xcOBAAAIKJsOn5MY5fM04rD9h7oE1Cv0yB1uetlJVarE5b9woUAAABEhHAe6CNJCcm11GnCc2rYfbjtezmBAAAAuN5Xhw5o3JJ52nIi3f7NfD416T1GHW9/VhUqpdi/n0MIAACAa2Xm5+mPa1fq6Q2rw3KgT6W0Jup69ytKu6iP7Xs5jQAAALjS7H3facKyBdp7+pTte0VFx6jFoAm69DfTFBOfZPt+bkAAAAjJtHXfaNq6b5wew0hJMbFqVqWqrqrXSBMvaKdaCYlOj2SJw9lZmrz8S72z69uw7Fet2aXqNvlvSml8UVj2cwsCAAAiVGZ+ntYdO6J1x47o2U1r9WyXnrq1xQVOjxWS13ds1e+WL9axMzm27xVTIVEX3fB7tb5msqKizXs7NO/PGMCvxMZF1hnm+LXM/DyNXTJPJ3LP6N62lzg9TrntOZWh8Uvn6/Mf9oZlv7R2vdV10kxVSmsSlv3ciAAAoNQatZweARaZunKputWsrc4R8v9pgd+vGZvX6ZFVXyszPwwH+lRMVoexf1azK272zIE+wSIAAKhGrdpOjwCLFPj9enjVV5o38FqnRynVxvSjGrtkvlYeCc+BPg27D1enCc8pITky4shuBAAAtbmovWLj4pSXm+v0KLDAogP7dSArU2mJ7vw0Owf6uAMBAECVKldRx269tGzh506PAgsU+v1ae+yIKwOAA33cgwAAIEkaOupGAsBDDmVnOT3CL2Tk5erBb5bp5a0bw3KgT+U6zdR10quq1ban7XtFqiinBwDgDldde70uaHep02PAIgX+QqdH+Nnsfd/pwg/e0otbNtj+5h8VHaNWQ+7W1c+v5c2/FFwBACBJ8vl8euCJZ3TTNX1UkJ/v9DjwAA70cTeuAAD4WfvOPfTgH59xegx4wPt7dqjNB2+F5c0/Oi5BF41+VFc98zVv/uXAFQAAvzD6tjt1PP2YXnj6cfnDcK8W3sKBPpGDAADwK3dOeVRNW7TWQ5NuU2YYvogFkY8DfSIPtwAAFOvKISM0b/Uujb37fsXFVXB6HLjYpuPH1P3T93Tv8sVhefOv12mQhry0Qc363cKbfwi4AgDgvJKrpereR6br5om/1cI5n2rx/Dnas3O7jh46qPRjR5weDw47U1CgJ9at1FPrVymv0P6nDhKr1VbniS+ofpdrbN/LBIEAOBPsAhXi4y0aBYBbpVSrrmGjb9Gw0bc4PUrYnc71KcehhyKenHKbZr3zd2c2L8XSgz9q3NJ52nbiuP2b+XxqfuVYtb/1T4pLqmL/foYIBMCPwS5QM62ORaMAANyOA328IxAAiySNLu+Lm7ZorWrVa1o6EADAnWbv+04Tli3Q3jB8MDQqOkYtBk3Qpb+Zpph49x1p7AWBAPhA0p8kJZfnxSZeDgQA0xzOztKkr7/Uu7s50MdLAgFwXNL/k/R8WV/YtOUFGn3bRFuGAgC4w+s7tup3yxfr2Jkc2/eKjkvQxTf8Xq2H3qOoaD6jbrez/wq/IKmlpDtLe1FanXp68a2PeDQIADyKA32879zEukvSJklPSKpW3Av6DrxGj/35RaXWqGX3bACAMHPkQRx2ZQAACphJREFUQJ/bnuaZfgcUd43lFUnvSBoiqWf1WmltL+3UvUPTFq3Ud+BQtWzTLrwTAgDCYmP6UY1dMl8rjxwMy34Nug9T5wnPKyGZ/6B0wvluspyU9IakNxZv/rGfz++fG8aZAABhlFdYqGc2rtGjq5crt7DA9v0Skmup04Tn1LD7cNv3wvnxKQsAMNhXhw5o7JJ52noi3f7NfD416T1GHW9/VhUqpdi/H0pEAACAgTLz8/THtSv19IbVYTnQp1Ktxuo6aabSLupj+14oGwIAAAzDgT6QCAAAMMbh7Czdt2KJ3ty5LSz7pTRup66T/6bUZu3Dsh/KhwAAAAO8v2eHJi5bqKM52bbvFR2XoLYjpujCUQ8pKibW9v0QHAIAADzsu1MZuiOMB/rUbNNDXSe9qip1W4RlPwSPAAAAD/L7pZnbNul3KxbrdF4YDvRJqqL2t/5Jza8cy4E+EYIAAAAPum/FEmXk5YZlrwbdh6nz+OeUkJIWlv1gDQIAADwoHG/+idVqq/PEF1S/yzW27wXrEQAAgPLhQB9PIAAAAGVWKa2Jut79Cgf6eAABAAAoFQf6eA8BAAAoEQf6eBMBAAAoFgf6eBsBAAD4FQ708T4CAADws7ikqmp/61Mc6GMAAgAAIEmq12mQOt/5kpJS6zo9CsKAAAAAwyUk11KnCc+pYffhTo+CMIoq5fc3mvHEw613bN2krMzTYRkIABAmPp+aDxinoa9u483fQMUFQCVJj0n6XtLul5554i+De1yozs2qa/zoIdq49puwDggAsF7lOs105VML1fXuVxSXVMXpceCAcwOgjaT1kh6VVP/s35Gbe0YL536qkf0664WnH5ff7w/XjAAAi0RFx6jtyKka8uJ61Wrb0+lx4KCzPwPQQNJ8STVKeoHf79dzTz2mqKgojb/3YVuHAwBYhwN9cLazrwD8Q6W8+Z/tuace05aNa62fCABgqaTUuupy50saNGMVb/74WeAKQDdJvcvzwsLCQr38zDTNeO1966cCAIQkNqGial/ST/U6X61GPUcpOraC0yPBZQIBENSXOS+e95nOnMlRhQrxFo4EAAhVx9ufVbP+tzo9BlwscAugVTAvzsnO0oH9ey0cBwAAhEMgAKoGu8CJ9GMWjQIAAMIlEABBH/jM44AAAESe0k4CBAAAHkQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGIgAAADAQAQAAAAGIgAAADAQAQAAgIEIAAAADEQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGIgAAADAQAQAAAAGIgAAADAQAQAAgIEIAAAADEQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGIgAAADAQAQAAAAGIgAAADAQAQAAgIEIAAAADEQAAABgIAIAAAADEQAAABiIAAAAwEAEAAAABiIAAAAwEAEAAICBCAAAAAxEAAAAYCACAAAAAxEAAAAYiAAAAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGIgAAADAQAQAAAAGIgAAADAQAQAAgIEIAAAAguF3cu/CkF4tEQAAAAQl38EAKDh5KJSXZ0oEAAAAQclzMAByD3wbystPSQQAAABBySl0rgBOr5kVyst/lAgAAACCcirfmX1zdi5Xzs7loSyxTSIAAAAot3y/MwHgz8vR4dfukvwhXX3YKBEAAACU27G88D8E4C/I18GZtylnz+pQlsmStFKSYiyZCgAAgxzICe/bf376Dzr48s3K2jQv1KUWSzojEQAAAJTLkVwpq8D+ffwFecrZ9Y1Or/iXTiyYKf+ZLCuWfSfwCwQAAHjQ6tce0IZ3pjk9huf4JeUW2n/535+brfyTB0O913+u05I+CPwKAQAAHpRz8ohyTh5xegy4y8sqigBJfAgQAAATZEt65uzfQAAAAOB90yUdOPs3EAAAAHjbt5L+dO5vJAAAAPCuM5L+66f//QUCAAAA75okqdiTgwgAAAC86QlJr5zvdxIAAAB4zzOS/l9JfwABAACAdxRKuk/SvSrlvCIOAgIAwBuOSLpB0tyy/MFcAQAAILL5Jb0uqY3K+OYvEQAAAESyLyR1l/QbSYfL80JuAQAAEFnSJb0n6e+SVgW7CAEAAIB7FUj6XtJ2SSslLZC0XFJuqAsTAADgTVMlve/0EAharoq+ue+EXRsQAADgTUcl7XZ6CLgXHwIEAMBABAAAAAYiAAAAMBABAACAgQgAAAAMRAAAAGAgAgAAAAMRAAAAGCgQACV+Z3BJCgoLLBoFANzHH/S/HUNXkJ8fyssLrZoD3hQIgMxgFzh2+JBFowCA+zj4/q9jhw+E8vLTVs0BbwoEwKlgF9ixbbNFowCA+zh1BcDv9+u7HVtCWSLDqlngTYEA2BfsAvNnf2zRKADgPgUOBcD2jat1+MD+UJYI+t/rMEMgALYHu8DWTeu0dMFci8YBAPcoKJQKHQqAN1+YHsrLCyTtsmgUeFQgANaFssgTD07WqYyTFowDAO6R69DH6JZ+8YkWz/l3KEtskXTGonHgUYEAWKUQPgewZ+d2Tb71OmVnBf1ZQgBwnZx8X9j33LxmuR6fNEb+0D58sNCqeeBdgQDIV4h/wyxb+LmuH9BdWzeFdDEBAFwht6DoFkC4FOTn68PXX9Bd112urNNB//dYwOdWzARvOztvR0p6N9QFo6Ki1GfgNRowZIQuvKSjaqTVVlxchVCXBYCw8Us6meNTvs0BcOrkcR3Y/52+Wfy5Zr/3P/p+1zYrlj0iqY6kPCsWg3edHQDxkn6QlOLQLACA0M2QNMnpIeB+0Wf9cr6kREm9nBkFABCiPEmjJZ1wehC437nfBTBDEh/nB4DI9Iak75weApEh+pxfz/7p50oHZgEABC9D0jBxBDDKqLhvA3xB0ppwDwIACMlUSSF9eQDMcr6HXJtKWi2pchhnAQAEZ5akq+Xsdxchwpx7CyAgXdIOScN1/kgAADhvu6RBKrp9C5TZ+QJAkrZKOqyiv7EAAO7zo6Tekg46PQgiT0kBIBUdEZwhqZ+4EgAAbrJX0hWSdjo9CCJTaQEgSctV9DfYAEmx9o4DACiDdZL6SNrj9CCIXMU9BVCcf0pqL2mzjbMAAEr3pqRuKjq5FQhaWa4ABByR9JqKTgzsIinGlokAAMXZqaJT/p4W5/zDAuUJAKnozX+RpLclVZR0QRBrAADKbq+khyTdpqJP/AOWCPWDfXUl3fDTT6vQxwEASMqVNEdFl/s/+enXAUtZ+cn+hip6HKWDpBaSGkmq8tNPWT9rAAAmyZF0SkWPXH+rosevl/z0k+ngXDDA/wd7dVX9zQlmsQAAAABJRU5ErkJggg== -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== -//在其他地方下载的脚本,作者不知道是谁很不错,防范牛皮癣 。用Chatgpt修改了下,让脚本在PC端浏览时可以使用快捷键复制 -!function () { - const userLang = - (navigator.languages && navigator.languages[0]) || - navigator.language || - "en" - const translations = { - en: { - ask: "Is it allowed for the webpage to copy the following content?", - cancel: "The webpage's clipboard writing has been blocked", - save: "The webpage has been allowed to write to the clipboard", - }, - "zh-CN,zh,zh-SG": { - ask: "允许网页复制以下内容吗?", - cancel: "已阻止网页写入剪贴板", - save: "已允许网页写入剪贴板", - }, - "zh-TW,zh-HK,zh-MO": { - ask: "允許網頁複製以下內容嗎?", - cancel: "已阻止網頁寫入剪貼板", - save: "已允許網頁寫入剪貼板", - }, - vi: { - ask: "Có cho phép trang web sao chép nội dung sau không?", - cancel: "Đã chặn trang web ghi vào clipboard", - save: "Trang web đã được phép ghi vào clipboard", - }, - ja: { - ask: "ウェブページが以下の内容をコピーすることを許可しますか?", - cancel: "ウェブページによるクリップボードへの書き込みがブロックされました", - save: "ウェブページがクリップボードへの書き込みを許可されました", - }, - ko: { - ask: "웹페이지가 다음 내용을 복사하는 것을 허용하시겠습니까?", - cancel: "웹페이지의 클립보드 쓰기가 차단되었습니다", - save: "웹페이지가 클립보드에 쓰는 것을 허용했습니다", - }, - } - - const getTranslations = (lang) => { - for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { - return translations[key] - } - } - return translations["en"] - } - const translate = new Proxy( - function (key) { - const lang = userLang - const strings = getTranslations(lang) - return strings[key] || translations["en"][key] - }, - { - get(target, prop) { - const lang = userLang - const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, - } - ) - // 定义唯一键,用于防止重复执行 - const key = encodeURIComponent('剪贴板保护&禁用预载:执行判断') - // 如果已经执行过,直接返回 - if (window[key]) { return } - try { - // 标记已经执行过 - window[key] = true - // 初始化变量 - let red = true - let green = false - let orange = false - // 获取页面中的所有视频元素 - var videoTags = document.getElementsByTagName("video") - // 创建开关按钮元素 - const sw = document.createElement("div") - // 设置按钮样式 - sw.style = 'position:fixed!important;bottom:30%;right:10px;z-index:2147483647;width:18px;height:18px;opacity:0.4;border-radius:9px;background:red;visibility:hidden' - // 将按钮添加到页面中 - document.body.appendChild(sw) - // 对所有视频元素进行处理,禁用预加载和自动播放 - for (var i = 0; i < videoTags.length; i++) { - videoTags[i].setAttribute("preload", "metadata") - videoTags[i].removeAttribute("autoplay") - }; - // 获取页面中的所有音频元素 - var audioTags = document.getElementsByTagName("audio") - // 对所有音频元素进行处理,禁用预加载和自动播放 - for (var i = 0; i < audioTags.length; i++) { - audioTags[i].setAttribute("preload", "metadata") - audioTags[i].removeAttribute("autoplay") - }; - window.navigator.clipboard.writeText = function (text) { - pc(null, text, true) - } - // 显示提示消息的函数 - function Toast(msg, duration, backgroundColor, textColor) { - duration = isNaN(duration) ? 3000 : duration - backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.7)' - textColor = textColor || 'rgb(255, 255, 255)' - var m = document.createElement('div') - m.innerHTML = msg - m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: " + textColor + ";line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 95%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: " + backgroundColor + ";font-size: 16px;" - document.body.appendChild(m) - setTimeout(function () { - var d = 0.5 - m.style.transition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in' - m.style.opacity = '0' - setTimeout(function () { - document.body.removeChild(m) - }, d * 1000) - }, duration) - } - - // 处理复制事件的函数 - function pc(e, selection = window.getSelection().toString(), C = false) { - if (red) { - var confirmed = window.confirm(translate.ask + '\n' + selection) - if (confirmed) { - if (C) { - GM_setClipboard(selection) - } - Toast(translate.save, 500, 'rgba(0, 255, 0, 0.7)', 'rgb(255, 255, 255)') - } else { - if (e) { - e.preventDefault() - e.stopPropagation() - } - sw.style.visibility = "visible" - Toast(translate.cancel, 500, 'rgba(255, 0, 0, 0.7)', 'rgb(255, 255, 255)') - } - } else {//NOTE - 此处不为red时且来源于为 window.navigator.clipboard.writeText ,需要手动复制到剪辑版. - if (C) { - GM_setClipboard(selection) - } - } - setTimeout(function () { - sw.style.visibility = "hidden" - }, 4000) - if (C) { - return Promise.reject('.') - } - - } - /* document.addEventListener('mouseup', (event) => { - - if (event.button === 2) { - handleSelectedText() - } - }) - document.addEventListener('touchend', (event) => { - handleSelectedText() - }) - function handleSelectedText() { - let selectedText = window.getSelection().toString().trim() - if (selectedText) { - if (red) { - red = false - orange = true - setTimeout(() => { - red = true - orange = false - }, 5000) - } - } - } */ - // 添加复制事件监听器 - document.addEventListener('copy', (e) => pc(e), { 'passive': false, 'capture': true }) - // 遍历所有iframe元素,为其内容添加复制事件监听器 - Array.from(document.getElementsByTagName('iframe')).forEach((i) => i.contentDocument.addEventListener('copy', (e) => pc(e), { 'passive': false, 'capture': true })) - // 点击开关按钮的事件处理 - sw.addEventListener('click', function (e) { - if (!orange) { - sw.style.background = red ? 'green' : 'red' - red = !red - green = !green - } else { - sw.style.background = 'red' - red = !red - orange = !orange - } - }, { 'passive': true }) - // 右键菜单事件处理 - document.addEventListener('contextmenu', function (e) { - if (!green) { - sw.style.visibility = "visible" - sw.style.background = 'orange' - red = false - orange = true - setTimeout(function () { sw.style.visibility = "hidden" }, 4000) - } - }, { 'passive': true }) - // 复制完成后的事件处理 - document.addEventListener('copy', function (e) { - if (orange) { - sw.style.background = 'red' - red = true - orange = false - sw.style.visibility = "hidden" - } - }, { 'passive': true }) - // 添加键盘事件监听器,支持快捷键复制 - document.addEventListener('keydown', function (e) { - if (e.ctrlKey && e.key === 'c') { - sw.style.visibility = "visible" - if (red) { - sw.style.background = 'orange' - red = false - orange = true - } - } - }, { 'passive': true }) - // 鼠标按下事件处理 - document.addEventListener('mousedown', function (e) { - if (orange) { - sw.style.background = 'red' - red = true - orange = false - } - }, { 'passive': true }) - } catch (err) { - console.log('剪贴板保护&禁用预载:', err) - } -}() diff --git a/Script details/clipboard-manager/Change history/README.md b/clipboard-manager/Change history/README.md similarity index 100% rename from Script details/clipboard-manager/Change history/README.md rename to clipboard-manager/Change history/README.md diff --git a/clipboard-manager/README.md b/clipboard-manager/README.md new file mode 100644 index 000000000..80ac8ce22 --- /dev/null +++ b/clipboard-manager/README.md @@ -0,0 +1,227 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    网页写入剪辑版授权管理器

    +

    「 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ 网页写入剪辑版授权管理器 更新日志

    +

    📅 2024-09-28 08:21- Ver 1.2.3.1

    +

    修复: •复制函数 pc 不为 red 时且来源于为 window.navigator.clipboard.writeText ,需要手动复制到剪辑版.@90 +修复: •逻辑错误 ↠ 按下快捷键复制后只有指示器为 red 时候重置,为 green 不重置@161

    +
    +

    📅 2024-09-27 11:55- Ver 1.2.3.0

    +

    新增: •监听clipboard.writeText事件

    +
    + +
    + + + +![1.png](https://s2.loli.net/2024/08/05/ItB4r1G9SULPqaH.png) + +在其他地方下载的脚本,作者不知道是谁很不错,防范牛皮癣。用 ChatGPT 修改了下,让脚本在 PC 端浏览时可以使用快捷键复制,专防网页后台复制各种口令。该脚本与复制限制解除类脚本可能不兼容! +脚本生效时,会在网页右下角显示半透明小圆点,不同颜色对应不同状态,说明如下: + +- **红色** : 拦截所有复制行为,并弹窗通知是否授权。 +- **绿色** : 放行所有复制行为,等于脚本不运行。 +- **橙色** : 临时解除拦截,该状态仅出现在手动复制时,用户完成复制后自动变为红色,恢复拦截。 +- **红点默认不显示**,在检测到剪贴板写入行为后会显示 4s。这个时间你可以点击切换状态,选择是否放行这个网页的剪贴板写入行为。 + +## 作者 + +- **姓名**:人民的勤务员 +- **邮箱**:toniaiwanowskiskr47@gmail.com +- **GitHub**:[ChinaGodMan/UserScripts](https://github.com/ChinaGodMan/UserScripts) + +## 许可证 + +本项目采用 MIT 许可证。 + +## 问题反馈 + +如有任何问题,请通过 [GitHub Issues](https://github.com/ChinaGodMan/UserScripts/issues) 提交反馈。 + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/clipboard-manager/README_en.md b/clipboard-manager/README_en.md new file mode 100644 index 000000000..a96e8323b --- /dev/null +++ b/clipboard-manager/README_en.md @@ -0,0 +1,227 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    Web page writing clip version authorization manager

    +

    「 Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ Web page writing clip version authorization manager Change log

    +

    📅 2024-09-28 08:21- Ver 1.2.3.1

    +

    repair: •copy function pc Not for red Sometimes it comes from window.navigator.clipboard.writeText ,Need to manually copy to the edited version.@90 +repair: •logic error ↠ After pressing the shortcut key to copy, there is only an indicatorfor red time to reset,for green No reset@161

    +
    +

    📅 2024-09-27 11:55- Ver 1.2.3.0

    +

    New: •monitorclipboard.writeTextevent

    +
    + +
    + + + +![1.png](https://s2.loli.net/2024/08/05/ItB4r1G9SULPqaH.png) + +Scripts downloaded elsewhere,I don’t know who the author is. Very good.,Prevent psoriasis。use ChatGPT Modified,Let the script be in PC You can use shortcut keys to copy when browsing,Specially prevents various passwords from being copied in the background of web pages。This script may be incompatible with copy restriction lifting scripts! +When the script takes effect,A semi-transparent dot will be displayed in the lower right corner of the web page,Different colors correspond to different states,Instructions are as follows: + +- **red** : Block all copying behavior,And a pop-up window will notify you whether to authorize or not.。 +- **green** : Allow all copying,It’s equal to the script not running。 +- **orange color** : Temporarily unblock,This status only appears when copying manually,Automatically turns red after the user completes the copy,Restore interception。 +- **The red dot is not displayed by default**,Displayed after detecting clipboard writing behavior 4s。At this time you can click to switch status,Choose whether to allow clipboard writing behavior for this web page。 + +## author + +- **Name**:人民的勤务员 +- **Mail**:toniaiwanowskiskr47@gmail.com +- **GitHub**:[ChinaGodMan/UserScripts](https://github.com/ChinaGodMan/UserScripts) + +## license + +This project uses MIT license。 + +## Problem feedback + +If you have any questions,Please pass [GitHub Issues](https://github.com/ChinaGodMan/UserScripts/issues) Submit feedback。 + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/Script details/clipboard-manager/clipboard-manager.user.js b/clipboard-manager/clipboard-manager.user.js similarity index 92% rename from Script details/clipboard-manager/clipboard-manager.user.js rename to clipboard-manager/clipboard-manager.user.js index 5464d0a20..e92ff4c79 100644 --- a/Script details/clipboard-manager/clipboard-manager.user.js +++ b/clipboard-manager/clipboard-manager.user.js @@ -80,7 +80,7 @@ // @name:fr-CA Gestionnaire d’autorisation de version de clip d’écriture de page Web // @description:fr-CA Gérez le comportement d’écriture des pages Web dans le presse-papiers pour empêcher la copie automatique non autorisée et désactiver le préchargement et la lecture automatique du contenu audio et vidéo. // @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 Sky,仰望星空 +// @author 人民的勤务员 Sky,仰望星空 // @version 1.2.3.1 // @include * // @run-at document-body @@ -95,60 +95,60 @@ const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || - "en" + 'en' const translations = { en: { - ask: "Is it allowed for the webpage to copy the following content?", - cancel: "The webpage's clipboard writing has been blocked", - save: "The webpage has been allowed to write to the clipboard", + ask: 'Is it allowed for the webpage to copy the following content?', + cancel: 'The webpage\'s clipboard writing has been blocked', + save: 'The webpage has been allowed to write to the clipboard' }, - "zh-CN,zh,zh-SG": { - ask: "允许网页复制以下内容吗?", - cancel: "已阻止网页写入剪贴板", - save: "已允许网页写入剪贴板", + 'zh-CN,zh,zh-SG': { + ask: '允许网页复制以下内容吗?', + cancel: '已阻止网页写入剪贴板', + save: '已允许网页写入剪贴板' }, - "zh-TW,zh-HK,zh-MO": { - ask: "允許網頁複製以下內容嗎?", - cancel: "已阻止網頁寫入剪貼板", - save: "已允許網頁寫入剪貼板", + 'zh-TW,zh-HK,zh-MO': { + ask: '允許網頁複製以下內容嗎?', + cancel: '已阻止網頁寫入剪貼板', + save: '已允許網頁寫入剪貼板' }, vi: { - ask: "Có cho phép trang web sao chép nội dung sau không?", - cancel: "Đã chặn trang web ghi vào clipboard", - save: "Trang web đã được phép ghi vào clipboard", + ask: 'Có cho phép trang web sao chép nội dung sau không?', + cancel: 'Đã chặn trang web ghi vào clipboard', + save: 'Trang web đã được phép ghi vào clipboard' }, ja: { - ask: "ウェブページが以下の内容をコピーすることを許可しますか?", - cancel: "ウェブページによるクリップボードへの書き込みがブロックされました", - save: "ウェブページがクリップボードへの書き込みを許可されました", + ask: 'ウェブページが以下の内容をコピーすることを許可しますか?', + cancel: 'ウェブページによるクリップボードへの書き込みがブロックされました', + save: 'ウェブページがクリップボードへの書き込みを許可されました' }, ko: { - ask: "웹페이지가 다음 내용을 복사하는 것을 허용하시겠습니까?", - cancel: "웹페이지의 클립보드 쓰기가 차단되었습니다", - save: "웹페이지가 클립보드에 쓰는 것을 허용했습니다", - }, + ask: '웹페이지가 다음 내용을 복사하는 것을 허용하시겠습니까?', + cancel: '웹페이지의 클립보드 쓰기가 차단되었습니다', + save: '웹페이지가 클립보드에 쓰는 것을 허용했습니다' + } } const getTranslations = (lang) => { for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { + if (key === lang || key.split(',').includes(lang)) { return translations[key] } } - return translations["en"] + return translations['en'] } const translate = new Proxy( function (key) { const lang = userLang const strings = getTranslations(lang) - return strings[key] || translations["en"][key] + return strings[key] || translations['en'][key] }, { get(target, prop) { const lang = userLang const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, + return strings[prop] || translations['en'][prop] + } } ) // 定义唯一键,用于防止重复执行 @@ -163,24 +163,24 @@ let green = false let orange = false // 获取页面中的所有视频元素 - var videoTags = document.getElementsByTagName("video") + var videoTags = document.getElementsByTagName('video') // 创建开关按钮元素 - const sw = document.createElement("div") + const sw = document.createElement('div') // 设置按钮样式 sw.style = 'position:fixed!important;bottom:30%;right:10px;z-index:2147483647;width:18px;height:18px;opacity:0.4;border-radius:9px;background:red;visibility:hidden' // 将按钮添加到页面中 document.body.appendChild(sw) // 对所有视频元素进行处理,禁用预加载和自动播放 for (var i = 0; i < videoTags.length; i++) { - videoTags[i].setAttribute("preload", "metadata") - videoTags[i].removeAttribute("autoplay") + videoTags[i].setAttribute('preload', 'metadata') + videoTags[i].removeAttribute('autoplay') }; // 获取页面中的所有音频元素 - var audioTags = document.getElementsByTagName("audio") + var audioTags = document.getElementsByTagName('audio') // 对所有音频元素进行处理,禁用预加载和自动播放 - for (var i = 0; i < audioTags.length; i++) { - audioTags[i].setAttribute("preload", "metadata") - audioTags[i].removeAttribute("autoplay") + for (var video = 0; video < audioTags.length; video++) { + audioTags[video].setAttribute('preload', 'metadata') + audioTags[video].removeAttribute('autoplay') }; window.navigator.clipboard.writeText = function (text) { pc(null, text, true) @@ -192,7 +192,7 @@ textColor = textColor || 'rgb(255, 255, 255)' var m = document.createElement('div') m.innerHTML = msg - m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: " + textColor + ";line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 95%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: " + backgroundColor + ";font-size: 16px;" + m.style.cssText = 'max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: ' + textColor + ';line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 95%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: ' + backgroundColor + ';font-size: 16px;' document.body.appendChild(m) setTimeout(function () { var d = 0.5 @@ -218,7 +218,7 @@ e.preventDefault() e.stopPropagation() } - sw.style.visibility = "visible" + sw.style.visibility = 'visible' Toast(translate.cancel, 500, 'rgba(255, 0, 0, 0.7)', 'rgb(255, 255, 255)') } } else {//NOTE - 此处不为red时且来源于为 window.navigator.clipboard.writeText ,需要手动复制到剪辑版. @@ -227,7 +227,7 @@ } } setTimeout(function () { - sw.style.visibility = "hidden" + sw.style.visibility = 'hidden' }, 4000) if (C) { return Promise.reject('.') @@ -275,11 +275,11 @@ // 右键菜单事件处理 document.addEventListener('contextmenu', function (e) { if (!green) { - sw.style.visibility = "visible" + sw.style.visibility = 'visible' sw.style.background = 'orange' red = false orange = true - setTimeout(function () { sw.style.visibility = "hidden" }, 4000) + setTimeout(function () { sw.style.visibility = 'hidden' }, 4000) } }, { 'passive': true }) // 复制完成后的事件处理 @@ -288,13 +288,13 @@ sw.style.background = 'red' red = true orange = false - sw.style.visibility = "hidden" + sw.style.visibility = 'hidden' } }, { 'passive': true }) // 添加键盘事件监听器,支持快捷键复制 document.addEventListener('keydown', function (e) { if (e.ctrlKey && e.key === 'c') { - sw.style.visibility = "visible" + sw.style.visibility = 'visible' if (red) { sw.style.background = 'orange' red = false diff --git a/Script details/clipboard-manager/preview/1.png b/clipboard-manager/preview/1.png similarity index 100% rename from Script details/clipboard-manager/preview/1.png rename to clipboard-manager/preview/1.png diff --git a/colorful-table.user.js b/colorful-table.user.js deleted file mode 100644 index 5e9eaa090..000000000 --- a/colorful-table.user.js +++ /dev/null @@ -1,126 +0,0 @@ -// ==UserScript== -// @name:zh-CN 绚丽渐变美化网页表格 -// @description:zh-CN 自动为表格所有列应用颜色渐变来美化 -// @name Beautify web forms with gorgeous gradients -// @description Automatically apply color gradients to all columns of the table to beautify it -// @name:ar تجميل نماذج الويب بتدرجات رائعة -// @description:ar تطبيق التدرجات اللونية تلقائيًا على كافة أعمدة الجدول لتجميله -// @name:bg Разкрасете уеб формуляри с великолепни градиенти -// @description:bg Автоматично прилагайте цветови градиенти към всички колони на таблицата, за да я разкрасите -// @name:cs Zkrášlete webové formuláře nádhernými přechody -// @description:cs Automaticky aplikujte barevné přechody na všechny sloupce tabulky, abyste ji zkrášlili -// @name:da Forskønne webformularer med smukke gradienter -// @description:da Anvend automatisk farvegradienter til alle kolonner i tabellen for at forskønne den -// @name:de Verschönern Sie Webformulare mit wunderschönen Farbverläufen -// @description:de Wenden Sie automatisch Farbverläufe auf alle Spalten der Tabelle an, um diese zu verschönern -// @name:el Ομορφύνετε φόρμες ιστού με υπέροχες διαβαθμίσεις -// @description:el Εφαρμόστε αυτόματα διαβαθμίσεις χρώματος σε όλες τις στήλες του πίνακα για να τον ομορφύνετε -// @name:en Beautify web forms with gorgeous gradients -// @description:en Automatically apply color gradients to all columns of the table to beautify it -// @name:eo Beligu TTT-formojn per belegaj gradientoj -// @description:eo Aŭtomate apliku kolorgradientojn al ĉiuj kolumnoj de la tabelo por plibeligi ĝin -// @name:es Embellezca los formularios web con magníficos degradados -// @description:es Aplique automáticamente degradados de color a todas las columnas de la tabla para embellecerla -// @name:fi Kaunista verkkolomakkeita upeilla liukuväreillä -// @description:fi Käytä värigradientteja automaattisesti kaikkiin taulukon sarakkeisiin kaunistaaksesi sitä -// @name:fr Embellissez les formulaires Web avec de superbes dégradés -// @description:fr Appliquez automatiquement des dégradés de couleurs à toutes les colonnes du tableau pour l’embellir -// @name:he יפות טפסי אינטרנט עם מעברי צבע מדהימים -// @description:he החל באופן אוטומטי מעברי צבע על כל העמודות של הטבלה כדי לייפות אותה -// @name:hr Uljepšajte web obrasce prekrasnim gradijentima -// @description:hr Automatski primijenite prijelaze boja na sve stupce tablice kako biste je uljepšali -// @name:hu Szépítse a webes űrlapokat gyönyörű színátmenetekkel -// @description:hu Automatikusan alkalmazza a színátmeneteket a táblázat összes oszlopára a szebbé tétel érdekében -// @name:id Percantik formulir web dengan gradien menawan -// @description:id Terapkan gradien warna secara otomatis ke semua kolom tabel untuk mempercantiknya -// @name:it Abbellisci i moduli web con splendidi gradienti -// @description:it Applica automaticamente sfumature di colore a tutte le colonne della tabella per abbellirla -// @name:ja ゴージャスなグラデーションで Web フォームを美しくする -// @description:ja 表のすべての列に色のグラデーションを自動的に適用して、表を美しくします。 -// @name:ka გაალამაზეთ ვებ ფორმები მშვენიერი გრადიენტებით -// @description:ka ავტომატურად გამოიყენეთ ფერის გრადიენტები ცხრილის ყველა სვეტზე მის გასალამაზებლად -// @name:ko 화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요 -// @description:ko 테이블의 모든 열에 색상 그라디언트를 자동으로 적용하여 아름답게 만듭니다. -// @name:nl Verfraai webformulieren met prachtige verlopen -// @description:nl Pas automatisch kleurovergangen toe op alle kolommen van de tabel om deze te verfraaien -// @name:nb Forskjønn nettskjemaer med nydelige gradienter -// @description:nb Bruk fargegradienter automatisk på alle kolonnene i tabellen for å forskjønne den -// @name:pl Upiększ formularze internetowe wspaniałymi gradientami -// @description:pl Automatycznie zastosuj gradienty kolorów do wszystkich kolumn tabeli, aby ją upiększyć -// @name:pt-BR Embeleze formulários da web com lindos gradientes -// @description:pt-BR Aplique automaticamente gradientes de cores a todas as colunas da tabela para embelezá-la -// @name:ro Înfrumusețați formularele web cu degrade superbe -// @description:ro Aplicați automat degrade de culoare tuturor coloanelor tabelului pentru a-l înfrumuseța -// @name:ru Украсьте веб-формы великолепными градиентами -// @description:ru Автоматически применяйте цветовые градиенты ко всем столбцам таблицы, чтобы украсить ее. -// @name:sk Skrášlite webové formuláre nádhernými prechodmi -// @description:sk Automaticky aplikujte farebné prechody na všetky stĺpce tabuľky, aby ste ju skrášlili -// @name:sr Улепшајте веб форме прекрасним градијентима -// @description:sr Аутоматски примените градијенте боја на све колоне табеле да бисте је улепшали -// @name:sv Försköna webbformulär med underbara gradienter -// @description:sv Använd automatiskt färggradienter på alla kolumner i tabellen för att försköna den -// @name:th ตกแต่งเว็บฟอร์มด้วยการไล่ระดับสีที่งดงาม -// @description:th ใช้การไล่ระดับสีกับคอลัมน์ทั้งหมดของตารางโดยอัตโนมัติเพื่อตกแต่งให้สวยงาม -// @name:tr Web formlarını muhteşem degradelerle güzelleştirin -// @description:tr Tabloyu güzelleştirmek için tablonun tüm sütunlarına otomatik olarak renk geçişleri uygulayın -// @name:ug ئېسىل رېشاتكىلار بىلەن تور شەكىللىرىنى گۈزەللەشتۈرۈڭ -// @description:ug ئۇنى گۈزەللەشتۈرۈش ئۈچۈن جەدۋەلنىڭ بارلىق ئىستونلىرىغا ئاپتوماتىك گىرىم بويۇملىرىنى ئاپتوماتىك ئىشلىتىڭ -// @name:uk Прикрашайте веб-форми чудовими градієнтами -// @description:uk Автоматично застосовуйте градієнти кольорів до всіх стовпців таблиці, щоб прикрасити її -// @name:vi Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp -// @description:vi Tự động áp dụng độ chuyển màu cho tất cả các cột của bảng để làm đẹp nó -// @name:zh-TW 絢麗漸層美化網頁表格 -// @description:zh-TW 自動為表格所有欄位套用色彩漸層來美化 -// @name:zh-HK 絢麗漸層美化網頁表格 -// @description:zh-HK 自動為表格所有欄位套用色彩漸層來美化 -// @name:fr-CA Embellissez les formulaires Web avec de superbes dégradés -// @description:fr-CA Appliquez automatiquement des dégradés de couleurs à toutes les colonnes du tableau pour l’embellir -// @grant none -// @match *://*/* -// @author Yearly,人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDExIDExIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM0NEMiIGQ9Ik0wIDBoNHYzSDB6Ii8+PHBhdGggZmlsbD0iIzRDNCIgZD0iTTAgNGg0djNIMHoiLz48cGF0aCBmaWxsPSIjQzQ0IiBkPSJNMCA4aDR2M0gweiIvPjxwYXRoIGZpbGw9IiM0Q0MiIGQ9Ik01IDBoMTF2M0g1eiIvPjxwYXRoIGZpbGw9IiNDQzQiIGQ9Ik01IDRoMTF2M0g1eiIvPjxwYXRoIGZpbGw9IiNDNEMiIGQ9Ik01IDhoMTF2M0g1eiIvPjwvc3ZnPg== -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @version 1.0.0.9 -// @Created 2024-09-06 05:02:49 -// @modified 2024-09-06 05:02:49 -// ==/UserScript== -(function () { - 'use strict' - const POLL_INTERVAL = 1000 - const HUE_RANGE = 120 // Hue range for the gradient (green to red or red to green) - const SATURATION = '80%' - const LIGHTNESS = '88%' - function applyGradientToColumn(table, column) { - const rowCount = table.rows.length - Array.from(table.rows).forEach((row, index) => { - const cell = row.cells[column] - if (!cell) return - // Calculate a hue based on the row index (no need to rely on cell content) - const hue = (index / (rowCount - 1)) * HUE_RANGE - // Apply the gradient color to the cell - cell.style.backgroundColor = `hsl(${HUE_RANGE - hue}, ${SATURATION}, ${LIGHTNESS})` - }) - } - function initializeTable(table) { - if (table.hasAttribute('data-gradient-initialized')) return - table.setAttribute('data-gradient-initialized', 'true') - const columnCount = table.rows[0]?.cells.length || 0 - for (let col = 0; col < columnCount; col++) { - applyGradientToColumn(table, col) - } - } - function initializeTables() { - document.querySelectorAll('table:not([data-gradient-initialized])').forEach(initializeTable) - } - // Initial call and setup interval to handle dynamically loaded tables - initializeTables() - setInterval(initializeTables, POLL_INTERVAL) -})() \ No newline at end of file diff --git a/Script details/colorful-table/Change history/README.md b/colorful-table/Change history/README.md similarity index 100% rename from Script details/colorful-table/Change history/README.md rename to colorful-table/Change history/README.md diff --git a/colorful-table/README.md b/colorful-table/README.md new file mode 100644 index 000000000..8a961bdfa --- /dev/null +++ b/colorful-table/README.md @@ -0,0 +1,240 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    绚丽渐变美化网页表格

    +

    「 自动为表格所有列应用颜色渐变来美化 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ 绚丽渐变美化网页表格 更新日志

    +

    📅 2024/9/6 05:41 - Ver 1.0.0.0

    +

    修改: 修改为自动渐变色.....

    +
    + +
    + + + + + +# 绚丽渐变美化网页表格脚本 + +该脚本会自动为网页中的所有表格应用颜色渐变,无需用户手动点击或操作,基于表格列中的数值大小生成不同的背景色,从而增强表格的视觉效果。 + +#### 功能特点 + +1. **自动应用渐变色**:脚本会自动扫描页面中的表格,为每一列中的数据应用渐变色,无需用户手动触发。 +2. **数据驱动的渐变色**:根据每一列中数值的最小值和最大值,生成颜色渐变效果,数值越大或越小,背景颜色变化越明显。 +3. **持续检测**:脚本每秒检查一次页面,如果有新表格加载,自动为其应用颜色渐变。 +4. **渐变色配置**:渐变颜色基于HSL色彩模型,脚本中可调整色调范围(`HUE_RANGE`)、饱和度(`SATURATION`)、亮度(`LIGHTNESS`)等参数。 + +#### 主要参数 + +- **HUE_RANGE**: 设置渐变色的色调范围,默认值为120度,表示绿色到红色的渐变。 +- **SATURATION**: 控制颜色的饱和度,默认为80%,提供了明亮的颜色效果。 +- **LIGHTNESS**: 控制颜色的亮度,默认值为88%,使渐变色柔和且不刺眼。 + +#### 核心逻辑 + +1. **extractFirstFloat**: 从单元格文本中提取第一个浮点数,忽略非数字内容,确保只使用数值部分生成颜色渐变。 +2. **applyGradient**: 为每个表格列自动计算最大和最小值,然后根据单元列的数值,生成相应的渐变背景色。 +3. **initializeTables**: 定期检查页面中的表格,并自动为未初始化的表格应用渐变色。 + +#### 使用场景 + +该脚本适用于任何包含网页表格场景,能够自动为网页表格应用颜色渐变,帮助用户快速识别数据的差异,提升表格的可视化效果。 + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + +## 项目与反馈 + +- **原脚本:** [yearly](https://greasyfork.org/zh-CN/users/1312063)创建的[彩色表格 | 表格数据可视化](https://greasyfork.org/zh-CN/scripts/502933) +- **项目页面:** [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) +- **支持与问题反馈:** [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) + +![colorful-table-2.png](https://s2.loli.net/2024/09/06/CjBMp6ERigxsYAV.png) +![colorful-table.png](https://s2.loli.net/2024/09/06/IA7pxwj1ZC4c56a.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/colorful-table/README_en.md b/colorful-table/README_en.md new file mode 100644 index 000000000..fbd26f374 --- /dev/null +++ b/colorful-table/README_en.md @@ -0,0 +1,239 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    Beautify web forms with gorgeous gradients

    +

    「 Automatically apply color gradients to all columns of the table to beautify it 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ Beautify web forms with gorgeous gradients Change log

    +

    📅 2024/9/6 05:41 - Ver 1.0.0.0

    +

    Revise: Change to automatic gradient color.....

    +
    + +
    + + + + + +# Gorgeous Gradient Table Beautification Script + +This script automatically applies gradient colors to all tables on a webpage, based on the numerical values in each column. It enhances the visual appeal of the table without any manual clicks or operations by the user. + +#### Features + +1. **Automatic Gradient Application**: The script scans tables on the page and automatically applies gradient colors to each column based on the data, without requiring user intervention. +2. **Data-Driven Gradients**: Colors are generated based on the minimum and maximum values in each column, with greater color variation for larger or smaller values. +3. **Continuous Monitoring**: The script checks the page every second to automatically apply gradients to any new tables that are loaded. +4. **Gradient Color Configuration**: Colors are based on the HSL color model, with adjustable parameters for hue range (`HUE_RANGE`), saturation (`SATURATION`), and lightness (`LIGHTNESS`). + +#### Key Parameters + +- **HUE_RANGE**: Sets the hue range for the gradient color, with a default value of 120 degrees, representing a gradient from green to red. +- **SATURATION**: Controls the color saturation, with a default of 80% for a vibrant color effect. +- **LIGHTNESS**: Controls the color lightness, with a default of 88% to ensure a soft and non-straining color gradient. + +#### Core Logic + +1. **extractFirstFloat**: Extracts the first floating-point number from the cell's text, ignoring non-numeric content to ensure only numerical values are used for gradient calculation. +2. **applyGradient**: Automatically calculates the minimum and maximum values for each column and generates corresponding gradient background colors. +3. **initializeTables**: Periodically checks for tables on the page and applies gradient colors to any new or uninitialized tables. + +#### Use Cases + +This script is suitable for any webpage containing tables, automatically applying gradient colors to enhance data visualization and make it easier to distinguish data differences. + + + +## Project & Feedback + +- **Original Script:** [yearly](https://greasyfork.org/zh-CN/users/1312063)'s [Colorful Table | Table Data Visualization](https://greasyfork.org/zh-CN/scripts/502933) +- **Project Page:** [GitHub Repository](https://github.com/ChinaGodMan/UserScripts) +- **Support & Issue Reporting:** [Report an Issue](https://github.com/ChinaGodMan/UserScripts/issues) + +![colorful-table-2.png](https://s2.loli.net/2024/09/06/CjBMp6ERigxsYAV.png) +![colorful-table.png](https://s2.loli.net/2024/09/06/IA7pxwj1ZC4c56a.png) + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/Script details/colorful-table/colorful-table.user.js b/colorful-table/colorful-table.user.js similarity index 71% rename from Script details/colorful-table/colorful-table.user.js rename to colorful-table/colorful-table.user.js index 5e9eaa090..76ca143f6 100644 --- a/Script details/colorful-table/colorful-table.user.js +++ b/colorful-table/colorful-table.user.js @@ -1,96 +1,96 @@ // ==UserScript== -// @name:zh-CN 绚丽渐变美化网页表格 -// @description:zh-CN 自动为表格所有列应用颜色渐变来美化 -// @name Beautify web forms with gorgeous gradients -// @description Automatically apply color gradients to all columns of the table to beautify it -// @name:ar تجميل نماذج الويب بتدرجات رائعة -// @description:ar تطبيق التدرجات اللونية تلقائيًا على كافة أعمدة الجدول لتجميله -// @name:bg Разкрасете уеб формуляри с великолепни градиенти -// @description:bg Автоматично прилагайте цветови градиенти към всички колони на таблицата, за да я разкрасите -// @name:cs Zkrášlete webové formuláře nádhernými přechody -// @description:cs Automaticky aplikujte barevné přechody na všechny sloupce tabulky, abyste ji zkrášlili -// @name:da Forskønne webformularer med smukke gradienter -// @description:da Anvend automatisk farvegradienter til alle kolonner i tabellen for at forskønne den -// @name:de Verschönern Sie Webformulare mit wunderschönen Farbverläufen -// @description:de Wenden Sie automatisch Farbverläufe auf alle Spalten der Tabelle an, um diese zu verschönern -// @name:el Ομορφύνετε φόρμες ιστού με υπέροχες διαβαθμίσεις -// @description:el Εφαρμόστε αυτόματα διαβαθμίσεις χρώματος σε όλες τις στήλες του πίνακα για να τον ομορφύνετε -// @name:en Beautify web forms with gorgeous gradients -// @description:en Automatically apply color gradients to all columns of the table to beautify it -// @name:eo Beligu TTT-formojn per belegaj gradientoj -// @description:eo Aŭtomate apliku kolorgradientojn al ĉiuj kolumnoj de la tabelo por plibeligi ĝin -// @name:es Embellezca los formularios web con magníficos degradados -// @description:es Aplique automáticamente degradados de color a todas las columnas de la tabla para embellecerla -// @name:fi Kaunista verkkolomakkeita upeilla liukuväreillä -// @description:fi Käytä värigradientteja automaattisesti kaikkiin taulukon sarakkeisiin kaunistaaksesi sitä -// @name:fr Embellissez les formulaires Web avec de superbes dégradés -// @description:fr Appliquez automatiquement des dégradés de couleurs à toutes les colonnes du tableau pour l’embellir -// @name:he יפות טפסי אינטרנט עם מעברי צבע מדהימים -// @description:he החל באופן אוטומטי מעברי צבע על כל העמודות של הטבלה כדי לייפות אותה -// @name:hr Uljepšajte web obrasce prekrasnim gradijentima -// @description:hr Automatski primijenite prijelaze boja na sve stupce tablice kako biste je uljepšali -// @name:hu Szépítse a webes űrlapokat gyönyörű színátmenetekkel -// @description:hu Automatikusan alkalmazza a színátmeneteket a táblázat összes oszlopára a szebbé tétel érdekében -// @name:id Percantik formulir web dengan gradien menawan -// @description:id Terapkan gradien warna secara otomatis ke semua kolom tabel untuk mempercantiknya -// @name:it Abbellisci i moduli web con splendidi gradienti -// @description:it Applica automaticamente sfumature di colore a tutte le colonne della tabella per abbellirla -// @name:ja ゴージャスなグラデーションで Web フォームを美しくする -// @description:ja 表のすべての列に色のグラデーションを自動的に適用して、表を美しくします。 -// @name:ka გაალამაზეთ ვებ ფორმები მშვენიერი გრადიენტებით -// @description:ka ავტომატურად გამოიყენეთ ფერის გრადიენტები ცხრილის ყველა სვეტზე მის გასალამაზებლად -// @name:ko 화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요 -// @description:ko 테이블의 모든 열에 색상 그라디언트를 자동으로 적용하여 아름답게 만듭니다. -// @name:nl Verfraai webformulieren met prachtige verlopen -// @description:nl Pas automatisch kleurovergangen toe op alle kolommen van de tabel om deze te verfraaien -// @name:nb Forskjønn nettskjemaer med nydelige gradienter -// @description:nb Bruk fargegradienter automatisk på alle kolonnene i tabellen for å forskjønne den -// @name:pl Upiększ formularze internetowe wspaniałymi gradientami -// @description:pl Automatycznie zastosuj gradienty kolorów do wszystkich kolumn tabeli, aby ją upiększyć -// @name:pt-BR Embeleze formulários da web com lindos gradientes -// @description:pt-BR Aplique automaticamente gradientes de cores a todas as colunas da tabela para embelezá-la -// @name:ro Înfrumusețați formularele web cu degrade superbe -// @description:ro Aplicați automat degrade de culoare tuturor coloanelor tabelului pentru a-l înfrumuseța -// @name:ru Украсьте веб-формы великолепными градиентами -// @description:ru Автоматически применяйте цветовые градиенты ко всем столбцам таблицы, чтобы украсить ее. -// @name:sk Skrášlite webové formuláre nádhernými prechodmi -// @description:sk Automaticky aplikujte farebné prechody na všetky stĺpce tabuľky, aby ste ju skrášlili -// @name:sr Улепшајте веб форме прекрасним градијентима -// @description:sr Аутоматски примените градијенте боја на све колоне табеле да бисте је улепшали -// @name:sv Försköna webbformulär med underbara gradienter -// @description:sv Använd automatiskt färggradienter på alla kolumner i tabellen för att försköna den -// @name:th ตกแต่งเว็บฟอร์มด้วยการไล่ระดับสีที่งดงาม -// @description:th ใช้การไล่ระดับสีกับคอลัมน์ทั้งหมดของตารางโดยอัตโนมัติเพื่อตกแต่งให้สวยงาม -// @name:tr Web formlarını muhteşem degradelerle güzelleştirin -// @description:tr Tabloyu güzelleştirmek için tablonun tüm sütunlarına otomatik olarak renk geçişleri uygulayın -// @name:ug ئېسىل رېشاتكىلار بىلەن تور شەكىللىرىنى گۈزەللەشتۈرۈڭ -// @description:ug ئۇنى گۈزەللەشتۈرۈش ئۈچۈن جەدۋەلنىڭ بارلىق ئىستونلىرىغا ئاپتوماتىك گىرىم بويۇملىرىنى ئاپتوماتىك ئىشلىتىڭ -// @name:uk Прикрашайте веб-форми чудовими градієнтами -// @description:uk Автоматично застосовуйте градієнти кольорів до всіх стовпців таблиці, щоб прикрасити її -// @name:vi Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp -// @description:vi Tự động áp dụng độ chuyển màu cho tất cả các cột của bảng để làm đẹp nó -// @name:zh-TW 絢麗漸層美化網頁表格 -// @description:zh-TW 自動為表格所有欄位套用色彩漸層來美化 -// @name:zh-HK 絢麗漸層美化網頁表格 -// @description:zh-HK 自動為表格所有欄位套用色彩漸層來美化 -// @name:fr-CA Embellissez les formulaires Web avec de superbes dégradés -// @description:fr-CA Appliquez automatiquement des dégradés de couleurs à toutes les colonnes du tableau pour l’embellir -// @grant none -// @match *://*/* -// @author Yearly,人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDExIDExIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM0NEMiIGQ9Ik0wIDBoNHYzSDB6Ii8+PHBhdGggZmlsbD0iIzRDNCIgZD0iTTAgNGg0djNIMHoiLz48cGF0aCBmaWxsPSIjQzQ0IiBkPSJNMCA4aDR2M0gweiIvPjxwYXRoIGZpbGw9IiM0Q0MiIGQ9Ik01IDBoMTF2M0g1eiIvPjxwYXRoIGZpbGw9IiNDQzQiIGQ9Ik01IDRoMTF2M0g1eiIvPjxwYXRoIGZpbGw9IiNDNEMiIGQ9Ik01IDhoMTF2M0g1eiIvPjwvc3ZnPg== -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @version 1.0.0.9 -// @Created 2024-09-06 05:02:49 -// @modified 2024-09-06 05:02:49 +// @name:zh-CN 绚丽渐变美化网页表格 +// @description:zh-CN 自动为表格所有列应用颜色渐变来美化 +// @name Beautify web forms with gorgeous gradients +// @description Automatically apply color gradients to all columns of the table to beautify it +// @name:ar تجميل نماذج الويب بتدرجات رائعة +// @description:ar تطبيق التدرجات اللونية تلقائيًا على كافة أعمدة الجدول لتجميله +// @name:bg Разкрасете уеб формуляри с великолепни градиенти +// @description:bg Автоматично прилагайте цветови градиенти към всички колони на таблицата, за да я разкрасите +// @name:cs Zkrášlete webové formuláře nádhernými přechody +// @description:cs Automaticky aplikujte barevné přechody na všechny sloupce tabulky, abyste ji zkrášlili +// @name:da Forskønne webformularer med smukke gradienter +// @description:da Anvend automatisk farvegradienter til alle kolonner i tabellen for at forskønne den +// @name:de Verschönern Sie Webformulare mit wunderschönen Farbverläufen +// @description:de Wenden Sie automatisch Farbverläufe auf alle Spalten der Tabelle an, um diese zu verschönern +// @name:el Ομορφύνετε φόρμες ιστού με υπέροχες διαβαθμίσεις +// @description:el Εφαρμόστε αυτόματα διαβαθμίσεις χρώματος σε όλες τις στήλες του πίνακα για να τον ομορφύνετε +// @name:en Beautify web forms with gorgeous gradients +// @description:en Automatically apply color gradients to all columns of the table to beautify it +// @name:eo Beligu TTT-formojn per belegaj gradientoj +// @description:eo Aŭtomate apliku kolorgradientojn al ĉiuj kolumnoj de la tabelo por plibeligi ĝin +// @name:es Embellezca los formularios web con magníficos degradados +// @description:es Aplique automáticamente degradados de color a todas las columnas de la tabla para embellecerla +// @name:fi Kaunista verkkolomakkeita upeilla liukuväreillä +// @description:fi Käytä värigradientteja automaattisesti kaikkiin taulukon sarakkeisiin kaunistaaksesi sitä +// @name:fr Embellissez les formulaires Web avec de superbes dégradés +// @description:fr Appliquez automatiquement des dégradés de couleurs à toutes les colonnes du tableau pour l’embellir +// @name:he יפות טפסי אינטרנט עם מעברי צבע מדהימים +// @description:he החל באופן אוטומטי מעברי צבע על כל העמודות של הטבלה כדי לייפות אותה +// @name:hr Uljepšajte web obrasce prekrasnim gradijentima +// @description:hr Automatski primijenite prijelaze boja na sve stupce tablice kako biste je uljepšali +// @name:hu Szépítse a webes űrlapokat gyönyörű színátmenetekkel +// @description:hu Automatikusan alkalmazza a színátmeneteket a táblázat összes oszlopára a szebbé tétel érdekében +// @name:id Percantik formulir web dengan gradien menawan +// @description:id Terapkan gradien warna secara otomatis ke semua kolom tabel untuk mempercantiknya +// @name:it Abbellisci i moduli web con splendidi gradienti +// @description:it Applica automaticamente sfumature di colore a tutte le colonne della tabella per abbellirla +// @name:ja ゴージャスなグラデーションで Web フォームを美しくする +// @description:ja 表のすべての列に色のグラデーションを自動的に適用して、表を美しくします。 +// @name:ka გაალამაზეთ ვებ ფორმები მშვენიერი გრადიენტებით +// @description:ka ავტომატურად გამოიყენეთ ფერის გრადიენტები ცხრილის ყველა სვეტზე მის გასალამაზებლად +// @name:ko 화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요 +// @description:ko 테이블의 모든 열에 색상 그라디언트를 자동으로 적용하여 아름답게 만듭니다. +// @name:nl Verfraai webformulieren met prachtige verlopen +// @description:nl Pas automatisch kleurovergangen toe op alle kolommen van de tabel om deze te verfraaien +// @name:nb Forskjønn nettskjemaer med nydelige gradienter +// @description:nb Bruk fargegradienter automatisk på alle kolonnene i tabellen for å forskjønne den +// @name:pl Upiększ formularze internetowe wspaniałymi gradientami +// @description:pl Automatycznie zastosuj gradienty kolorów do wszystkich kolumn tabeli, aby ją upiększyć +// @name:pt-BR Embeleze formulários da web com lindos gradientes +// @description:pt-BR Aplique automaticamente gradientes de cores a todas as colunas da tabela para embelezá-la +// @name:ro Înfrumusețați formularele web cu degrade superbe +// @description:ro Aplicați automat degrade de culoare tuturor coloanelor tabelului pentru a-l înfrumuseța +// @name:ru Украсьте веб-формы великолепными градиентами +// @description:ru Автоматически применяйте цветовые градиенты ко всем столбцам таблицы, чтобы украсить ее. +// @name:sk Skrášlite webové formuláre nádhernými prechodmi +// @description:sk Automaticky aplikujte farebné prechody na všetky stĺpce tabuľky, aby ste ju skrášlili +// @name:sr Улепшајте веб форме прекрасним градијентима +// @description:sr Аутоматски примените градијенте боја на све колоне табеле да бисте је улепшали +// @name:sv Försköna webbformulär med underbara gradienter +// @description:sv Använd automatiskt färggradienter på alla kolumner i tabellen för att försköna den +// @name:th ตกแต่งเว็บฟอร์มด้วยการไล่ระดับสีที่งดงาม +// @description:th ใช้การไล่ระดับสีกับคอลัมน์ทั้งหมดของตารางโดยอัตโนมัติเพื่อตกแต่งให้สวยงาม +// @name:tr Web formlarını muhteşem degradelerle güzelleştirin +// @description:tr Tabloyu güzelleştirmek için tablonun tüm sütunlarına otomatik olarak renk geçişleri uygulayın +// @name:ug ئېسىل رېشاتكىلار بىلەن تور شەكىللىرىنى گۈزەللەشتۈرۈڭ +// @description:ug ئۇنى گۈزەللەشتۈرۈش ئۈچۈن جەدۋەلنىڭ بارلىق ئىستونلىرىغا ئاپتوماتىك گىرىم بويۇملىرىنى ئاپتوماتىك ئىشلىتىڭ +// @name:uk Прикрашайте веб-форми чудовими градієнтами +// @description:uk Автоматично застосовуйте градієнти кольорів до всіх стовпців таблиці, щоб прикрасити її +// @name:vi Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp +// @description:vi Tự động áp dụng độ chuyển màu cho tất cả các cột của bảng để làm đẹp nó +// @name:zh-TW 絢麗漸層美化網頁表格 +// @description:zh-TW 自動為表格所有欄位套用色彩漸層來美化 +// @name:zh-HK 絢麗漸層美化網頁表格 +// @description:zh-HK 自動為表格所有欄位套用色彩漸層來美化 +// @name:fr-CA Embellissez les formulaires Web avec de superbes dégradés +// @description:fr-CA Appliquez automatiquement des dégradés de couleurs à toutes les colonnes du tableau pour l’embellir +// @grant none +// @match *://*/* +// @author Yearly,人民的勤务员 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts +// @license MIT +// @icon data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDExIDExIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM0NEMiIGQ9Ik0wIDBoNHYzSDB6Ii8+PHBhdGggZmlsbD0iIzRDNCIgZD0iTTAgNGg0djNIMHoiLz48cGF0aCBmaWxsPSIjQzQ0IiBkPSJNMCA4aDR2M0gweiIvPjxwYXRoIGZpbGw9IiM0Q0MiIGQ9Ik01IDBoMTF2M0g1eiIvPjxwYXRoIGZpbGw9IiNDQzQiIGQ9Ik01IDRoMTF2M0g1eiIvPjxwYXRoIGZpbGw9IiNDNEMiIGQ9Ik01IDhoMTF2M0g1eiIvPjwvc3ZnPg== +// @compatible chrome +// @compatible firefox +// @compatible edge +// @compatible opera +// @compatible safari +// @version 1.0.0.9 +// @Created 2024-09-06 05:02:49 +// @modified 2024-09-06 05:02:49 // ==/UserScript== (function () { 'use strict' diff --git a/Script details/colorful-table/preview/colorful-table-2.png b/colorful-table/preview/colorful-table-2.png similarity index 100% rename from Script details/colorful-table/preview/colorful-table-2.png rename to colorful-table/preview/colorful-table-2.png diff --git a/Script details/colorful-table/preview/colorful-table.png b/colorful-table/preview/colorful-table.png similarity index 100% rename from Script details/colorful-table/preview/colorful-table.png rename to colorful-table/preview/colorful-table.png diff --git a/csdn-blocker.user.js b/csdn-blocker.user.js deleted file mode 100644 index 86f0eb6c0..000000000 --- a/csdn-blocker.user.js +++ /dev/null @@ -1,64 +0,0 @@ -// ==UserScript== -// @name 解除CSDN登录复制 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.0.0.23 -// @description 去你妈的CSDN登录复制,无需登录即可复制 -// @author 人民的勤务员 -// @match https://blog.csdn.net/* -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @grant none -// @license MIT -// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLDlIMTguNUwxMywzLjVWOU02LDJIMTRMMjAsOFYyMEEyLDIgMCAwLDEgMTgsMjJINkM0Ljg5LDIyIDQsMjEuMSA0LDIwVjRDNCwyLjg5IDQuODksMiA2LDJNMTAuNSwxMUM4LDExIDYsMTMgNiwxNS41QzYsMTggOCwyMCAxMC41LDIwQzEzLDIwIDE1LDE4IDE1LDE1LjVDMTUsMTMgMTMsMTEgMTAuNSwxMU0xMC41LDEyLjVBMywzIDAgMCwxIDEzLjUsMTUuNUMxMy41LDE2LjA2IDEzLjM1LDE2LjU4IDEzLjA4LDE3TDksMTIuOTJDOS40MiwxMi42NSA5Ljk0LDEyLjUgMTAuNSwxMi41TTcuNSwxNS41QzcuNSwxNC45NCA3LjY1LDE0LjQyIDcuOTIsMTRMMTIsMTguMDhDMTEuNTgsMTguMzUgMTEuMDYsMTguNSAxMC41LDE4LjVBMywzIDAgMCwxIDcuNSwxNS41WiIgZmlsbD0iI2NjMDAwMCIgLz48L3N2Zz4= - - -// ==/UserScript== -(function () { - 'use strict' - - function timeoutAfterLoad(callback, delay) { - setTimeout(callback, delay) - } - - timeoutAfterLoad(() => { - // 修改复制按钮 - document.querySelectorAll(".hljs-button").forEach((e) => { - e.setAttribute("data-title", "点击复制") - e.classList.remove("signin") - e.removeAttribute("onclick") - e.addEventListener("click", () => { - e.setAttribute("data-title", " ") - navigator.clipboard.writeText(e.parentNode.innerText) - e.setAttribute("data-title", "复制成功") - setTimeout(() => e.setAttribute("data-title", "点击复制"), 1200) - }) - }) - - // 复制功能 - document.querySelector(".blog-content-box").addEventListener( - "copy", - (e) => { - e.stopPropagation() - e.preventDefault() - - navigator.clipboard.writeText(window.getSelection().toString()) - }, - true, - ) - document.addEventListener( - "keydown", - (e) => { - if (e.ctrlKey && e.keyCode == 67) { // Ctrl+C - e.stopPropagation() - e.preventDefault() - - navigator.clipboard.writeText(window.getSelection().toString()) - } - }, - true, - ) - - document.oncopy = null - window.oncopy = null - }, 500) -})() diff --git a/csdn-blocker/README.md b/csdn-blocker/README.md new file mode 100644 index 000000000..5072c1681 --- /dev/null +++ b/csdn-blocker/README.md @@ -0,0 +1,197 @@ + + +
    +
    + + + + + 简体中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    解除CSDN登录复制

    +

    「 去你妈的CSDN登录复制,无需登录即可复制 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + +解除CSDN需要登录复制的限制 + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/csdn-blocker/csdn-blocker.user.js b/csdn-blocker/csdn-blocker.user.js new file mode 100644 index 000000000..d0e2eb9cd --- /dev/null +++ b/csdn-blocker/csdn-blocker.user.js @@ -0,0 +1,66 @@ +// ==UserScript== +// @name 解除CSDN登录复制 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @version 1.0.0.23 +// @name:zh-CN 解除CSDN登录复制 +// @description:zh-CN 去你妈的CSDN登录复制,无需登录即可复制 +// @description 去你妈的CSDN登录复制,无需登录即可复制 +// @author 人民的勤务员 +// @match https://blog.csdn.net/* +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts +// @grant none +// @license MIT +// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLDlIMTguNUwxMywzLjVWOU02LDJIMTRMMjAsOFYyMEEyLDIgMCAwLDEgMTgsMjJINkM0Ljg5LDIyIDQsMjEuMSA0LDIwVjRDNCwyLjg5IDQuODksMiA2LDJNMTAuNSwxMUM4LDExIDYsMTMgNiwxNS41QzYsMTggOCwyMCAxMC41LDIwQzEzLDIwIDE1LDE4IDE1LDE1LjVDMTUsMTMgMTMsMTEgMTAuNSwxMU0xMC41LDEyLjVBMywzIDAgMCwxIDEzLjUsMTUuNUMxMy41LDE2LjA2IDEzLjM1LDE2LjU4IDEzLjA4LDE3TDksMTIuOTJDOS40MiwxMi42NSA5Ljk0LDEyLjUgMTAuNSwxMi41TTcuNSwxNS41QzcuNSwxNC45NCA3LjY1LDE0LjQyIDcuOTIsMTRMMTIsMTguMDhDMTEuNTgsMTguMzUgMTEuMDYsMTguNSAxMC41LDE4LjVBMywzIDAgMCwxIDcuNSwxNS41WiIgZmlsbD0iI2NjMDAwMCIgLz48L3N2Zz4= + + +// ==/UserScript== +(function () { + 'use strict' + + function timeoutAfterLoad(callback, delay) { + setTimeout(callback, delay) + } + + timeoutAfterLoad(() => { + // 修改复制按钮 + document.querySelectorAll('.hljs-button').forEach((e) => { + e.setAttribute('data-title', '点击复制') + e.classList.remove('signin') + e.removeAttribute('onclick') + e.addEventListener('click', () => { + e.setAttribute('data-title', ' ') + navigator.clipboard.writeText(e.parentNode.innerText) + e.setAttribute('data-title', '复制成功') + setTimeout(() => e.setAttribute('data-title', '点击复制'), 1200) + }) + }) + + // 复制功能 + document.querySelector('.blog-content-box').addEventListener( + 'copy', + (e) => { + e.stopPropagation() + e.preventDefault() + + navigator.clipboard.writeText(window.getSelection().toString()) + }, + true + ) + document.addEventListener( + 'keydown', + (e) => { + if (e.ctrlKey && e.keyCode == 67) { // Ctrl+C + e.stopPropagation() + e.preventDefault() + + navigator.clipboard.writeText(window.getSelection().toString()) + } + }, + true + ) + + document.oncopy = null + window.oncopy = null + }, 500) +})() diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..d576d1f0d --- /dev/null +++ b/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,51 @@ +
    +
    + + + + +  简体中文 | + English +
    +
    + +# 行为准则 + +## 介绍 + +欢迎来到本仓库!为了确保一个友好、尊重和包容的开发环境,我们制定了以下行为准则。请每位贡献者遵循这些指导原则。 + +## 我们的期望 + +我们希望所有参与者在以下方面保持专业: + +1. **尊重与包容**:请尊重他人的意见和观点,欢迎不同的背景和经验。 +2. **积极交流**:鼓励开放和建设性的讨论,分享想法和建议。 +3. **诚实守信**:在代码贡献和交流中保持诚信,严禁抄袭和欺诈行为。 +4. **建设性反馈**:在提供反馈时,专注于问题本身,避免针对个人的攻击。 + +## 不可接受的行为 + +以下行为被视为不可接受: + +- 骚扰、威胁或攻击他人 +- 发表仇恨言论、歧视性言论或其他冒犯性内容 +- 散布虚假信息或不实指控 +- 破坏项目秩序,干扰他人参与 +- 进行性骚扰或其他不当行为 + +## 报告不当行为 + +如果您目睹或经历了任何不当行为,请立即向项目维护者报告。我们将认真对待所有报告,并采取适当措施。 + +## 处罚措施 + +违反本行为准则的参与者可能会受到以下处罚: + +- 口头或书面警告 +- 暂时性或永久性禁止参与项目 +- 其他适当的措施 + +## 结语 + +感谢您帮助我们创建一个友好和尊重的开发环境。让我们共同努力,使每位贡献者都能享受参与本项目的乐趣! diff --git a/docs/README.md b/docs/README.md index 1b7e4b117..a5975ce16 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,11 +7,11 @@ src="https://raw.githubusercontent.com/KudoAI/chatgpt.js/main/media/images/icons/earth-americas-icon32.svg"> 简体中文 | - 繁体中文| - English | - 日本语| - Tiếng Việt| - 대한민국 + 繁體中文| + English | + 日本語| + Tiếng Việt| + 대한민국
    @@ -39,1209 +39,1172 @@ **脚本来自互联网广大网友,本人仅是做了些许改动.感谢网友** **如有侵权,联系必删** -## [浏览脚本目录查看详细](/Script%20details) - ## 脚本列表 +💡 **Tip:** _要显示预览截图,请点击扩展名称下方的 ▸ 或描述。_ + -
    ChatGPT相关脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - ChatGPT代码字体缩小
    - - GitHub - - 详细 - -
    让 ChatGPT 代码字体变小 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-26 11:42:172024-10-07 07:21:500.1.1.02024-07-27 20:58:35
    - - ChatGPT 聊天复制代码按钮
    - - GitHub - - 详细 - -
    在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-22 07:35:202024-10-03 19:12:341.2.0.02024-09-22 07:06:07
    - - ChatGPT 字符计数器
    - - GitHub - - 详细 - -
    添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-01 09:51:012024-10-07 01:24:321.3.1.142024-09-01 09:45:50
    - - ChatGPT 折叠自己消息和最大宽度
    - - GitHub - - 详细 - -
    自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-24 11:33:582024-10-03 19:12:350.3.0.02024-08-24 11:09:34
    网页相关脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - 网页写入剪辑版授权管理器
    - - GitHub - - 详细 - -
    禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-09 10:17:552024-10-03 19:12:351.2.3.12024-07-27 20:54:00
    - - 解除CSDN登录复制限制
    - - GitHub - - 详细 - -
    去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-26 11:37:222024-10-03 19:12:361.0.0.232024-07-27 20:58:34
    - - 绚丽渐变美化网页表格
    - - GitHub - - 详细 - -
    自动为网页上的表格所有列应用颜色渐变美化. - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-06 06:08:082024-10-03 19:12:351.0.0.92024-09-06 05:02:49
    - - 网页高亮关键字+(推荐)
    - - GitHub - - 详细 - -
    对网页上的文字进行高亮显示 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-26 07:05:052024-10-03 19:12:431.1.2.722024-07-27 20:54:01
    - - 高亮网页文本_迷你版
    - - GitHub - - 详细 - -
    在网页上自定义关键词突出显示包括滚动时动态加载的内容 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-26 06:53:122024-10-03 19:12:431.0.5.262024-08-24 06:02:07
    - - 小窗口预览
    - - GitHub - - 详细 - -
    拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-24 06:51:352024-10-03 19:12:452.5.1.42024-08-23 07:20:13
    - - 去除链接下划线
    - - GitHub - - 详细 - -
    去除网页链接的下划线 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-23 11:35:072024-10-03 19:12:461.2.0.632024-07-27 20:54:00
    - - 上下滚动小按钮
    - - GitHub - - 详细 - -
    页面右侧添加上下滚动按钮 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-07 08:33:172024-10-03 19:12:471.0.0.262024-08-24 06:05:19
    - - 一键置顶和置底按钮
    - - GitHub - - 详细 - -
    修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-07-11 13:57:292024-10-03 19:12:471.2.0.722024-07-27 20:54:01
    GitHub相关脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - GitHub提交信息显示HTML
    - - GitHub - - 详细 - -
    该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-30 10:13:442024-10-03 19:12:361.0.0.192024-08-30 03:21:51
    - - GitHub 文件列表美化器
    - - GitHub - - 详细 - -
    GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-12 11:56:172024-10-03 19:12:364.1.0.32024-9-12 10:39:51
    - - Github 代码语言列表显示全部
    - - GitHub - - 详细 - -
    扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-24 05:30:012024-10-04 05:26:321.0.0.02024-09-24 04:33:03
    - - GitHub 自动确认设备授权
    - - GitHub - - 详细 - -
    在GitHub授权页面自动输入授权码与自动确认。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-18 09:12:312024-10-03 19:12:331.0.0.02024-09-18 08:50:32
    - - GitHub文件夹下载
    - - GitHub - - 详细 - -
    添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-28 04:27:352024-10-03 19:12:370.7.0.232024-08-29 06:11:34
    - - GitHub下载单文件和复制文件URL
    - - GitHub - - 详细 - -
    在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-28 05:20:142024-10-03 19:12:372.2.0.222024-08-29 06:11:33
    - - 🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠
    - - GitHub - - 详细 - -
    在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-01 03:43:192024-10-08 05:13:520.1.3.72024-08-01 00:53:59
    - - GitHub Sort by Date
    - - GitHub - - 详细 - -
    仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-26 12:30:532024-10-04 05:23:241.1.0.232024-08-06 01:28:58
    Google相关脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - Google 高级搜索
    - - GitHub - - 详细 - -
    这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-05 10:28:202024-10-03 19:12:380.1.9.452024-08-06 00:32:20
    - - Google 搜索屏蔽指定站点
    - - GitHub - - 详细 - -
    在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-07-11 14:21:022024-10-03 19:12:390.0.1.512024-07-27 20:54:01
    GreasyFork相关脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - GreasyFork适用于增强
    - - GitHub - - 详细 - -
    脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-08 05:36:472024-10-03 19:12:390.9.3.662024-07-27 20:54:00
    - - GrreasyFork 用户发布的脚本数据可视化
    - - GitHub - - 详细 - -
    使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-18 11:41:122024-10-03 19:12:411.1.1.12024-09-19 11:22:00
    - - GreaysFork 增强 WebHook同步设置
    - - GitHub - - 详细 - -
    这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-04 12:12:182024-10-03 19:12:431.1.1.12024-09-04 12:08:47
    - - GreasyFork Markdown toobar
    - - GitHub - - 详细 - -
    在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-26 02:12:292024-10-03 19:12:402.0.52024-08-06 00:32:53
    - - GreasyFork 显示脚本评分
    - - GitHub - - 详细 - -
    脚本列表添加评价分数 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-07-19 09:44:012024-10-03 19:12:401.3.3.632024-07-27 20:54:00
    - - GreasyFork 高级搜索
    - - GitHub - - 详细 - -
    使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-26 12:08:492024-10-03 19:12:400.6.5.232024-07-27 20:58:34
    - - GreasyFork 导航栏增强
    - - GitHub - - 详细 - -
    增强greasyfork导航栏,增加用户列表,用户控制台等 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-07-27 09:34:432024-10-03 19:12:410.3.1.572024-07-27 20:54:01
    - - Greasyfork糊裱匠
    - - GitHub - - 详细 - -
    增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-08 17:06:262024-10-03 19:12:412.2.0.922024-07-27 20:54:01
    - - Greasyfork 通知助手
    - - GitHub - - 详细 - -
    当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-02 12:36:002024-10-03 19:12:391.5.0.42024-09-02 12:34:55
    - - Script Finder油猴脚本查找器
    - - GitHub - - 详细 - -
    Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-26 06:43:472024-10-03 19:12:460.1.6.802024-07-27 20:54:01
    成人脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - MiSSAV自动登录
    - - GitHub - - 详细 - -
    检测 MisssAV 状态,并且在未登录时自动登录 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-27 04:15:172024-10-03 19:12:441.0.1.72024-08-27 02:45:07
    - - MissAV收藏管理器
    - - GitHub - - 详细 - -
    miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-06-12 10:58:392024-10-03 19:12:441.2.3.732024-07-27 20:54:01
    - - TissAV自动登录
    - - GitHub - - 详细 - -
    检测 TissAV 状态,并且在未登录时自动登录 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-03 08:50:592024-10-03 19:12:471.0.1.82024-09-03 08:52:46
    - - JableTV自动登录
    - - GitHub - - 详细 - -
    检测 JableTV 状态,并且在未登录时自动登录 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-09-04 13:43:002024-10-03 19:12:441.0.0.102024-09-04 13:44:42
    自动翻译 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
    - - 外语终结者
    - - GitHub - - 详细 - -
    识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-24 10:37:082024-10-03 19:12:451.4.0.02024-07-27 20:58:35
    - - 网页翻译——自动翻译为中文
    - - GitHub - - 详细 - -
    给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 - - size -
    安装 -
    -
    - - -
    安装 -
    -
    2024-08-26 11:37:232024-10-03 19:12:480.31.0.232024-07-27 20:58:34
    +

    ChatGPT相关脚本

    + + + ChatGPT代码字体缩小  + + +

    + +
    + 让 ChatGPT 代码框内字体变小 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + ChatGPT 聊天复制代码按钮  + + +

    + +
    + 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + ChatGPT 字符计数器  + + +

    + +
    + 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + ChatGPT 折叠自己消息和最大宽度  + + +

    + +
    + 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    网页相关脚本

    + + + 网页写入剪辑版授权管理器  + + +

    + +
    + 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 解除CSDN登录复制限制  + + +

    + +
    + 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 绚丽渐变美化网页表格  + + +

    + +
    + 自动为网页上的表格所有列应用颜色渐变美化. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 网页高亮关键字+(推荐)  + + +

    + +
    + 对网页上的文字进行高亮显示 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 高亮网页文本-迷你版  + + +

    + +
    + 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 小窗口预览  + + +

    + +
    + 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 去除链接下划线  + + +

    + +
    + 去除网页链接的下划线 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 上下滚动小按钮  + + +

    + +
    + 页面右侧添加上下滚动按钮 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 一键置顶和置底按钮  + + +

    + +
    + 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    GitHub相关脚本

    + + + GitHub提交信息显示HTML  + + +

    + +
    + 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GitHub 快速跳转助手  + + +

    + +
    + GitHub 快速跳转助手是一款专为帮助用户快速访问自己在 GitHub 上的仓库而设计。它可以大幅提高开发者在使用 GitHub 时的效率。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GitHub 文件列表美化器  + + +

    + +
    + GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + Github 代码语言列表显示全部  + + +

    + +
    + 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GitHub 自动确认设备授权  + + +

    + +
    + 在GitHub授权页面自动输入授权码与自动确认。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GitHub文件夹下载  + + +

    + +
    + 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GitHub下载单文件和复制文件URL  + + +

    + +
    + 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠  + + +

    + +
    + 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GitHub Sort by Date  + + +

    + +
    + 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    Google相关脚本

    + + + Google 高级搜索  + + +

    + +
    + 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + Google 搜索屏蔽指定站点  + + +

    + +
    + 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    GreasyFork相关脚本

    + + + GreasyFork适用于增强  + + +

    + +
    + 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GrreasyFork 用户发布的脚本数据可视化  + + +

    + +
    + 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GreaysFork 增强 WebHook同步设置  + + +

    + +
    + 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GreasyFork Markdown toobar  + + +

    + +
    + 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GreasyFork 显示脚本评分  + + +

    + +
    + 脚本列表添加评价分数 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GreasyFork 高级搜索  + + +

    + +
    + 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + GreasyFork 导航栏增强  + + +

    + +
    + 增强greasyfork导航栏,增加用户列表,用户控制台等 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + Greasyfork糊裱匠  + + +

    + +
    + 增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + Greasyfork 通知助手  + + +

    + +
    + 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + Script Finder油猴脚本查找器  + + +

    + +
    + Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    成人脚本

    + + + MiSSAV自动登录  + + +

    + +
    + 检测 MisssAV 状态,并且在未登录时自动登录 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + MissAV收藏管理器  + + +

    + +
    + miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + TissAV自动登录  + + +

    + +
    + 检测 TissAV 状态,并且在未登录时自动登录 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + JableTV自动登录  + + +

    + +
    + 检测 JableTV 状态,并且在未登录时自动登录 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    自动翻译

    + + + 外语终结者  + + +

    + +
    + 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    +

    + + + 网页翻译——自动翻译为中文  + + +

    + +
    + 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    + --- @@ -1252,6 +1215,7 @@ - 点击表格 **\[安装\]** 直接弹出脚本管理器安装界面。 - 如果 Github 访问速度太慢,可以选择点击 GreasyFork **\[安装\]** 后弹出扩展提示,再去点击 **\[安装\]** 即可。 +- [查看详细教程](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md) > [!IMPORTANT] > @@ -1259,56 +1223,59 @@ > - _请确保使用 **Tampermonkey 正式版** 扩展,其他的用户脚本管理器可能导致**无法正常使用**脚本。_ > - _如果要重装脚本,请记得在 Tampermonkey 扩展的**回收站中彻底删除**脚本后再去重新安装脚本。_ -> _**不会离线安装 .crx 扩展?[Chrome、Edge 重新开启隐藏的 [拖入安装 .crx 扩展] 功能!](https://zhuanlan.zhihu.com/p/276027099)**_--- +> _**不会离线安装 .crx 扩展?[Chrome、Edge 重新开启隐藏的 [拖入安装 .crx 扩展] 功能!](https://zhuanlan.zhihu.com/p/276027099)**_ --- ## 特别感谢开源 - > [!TIP] -> - XIU2 :+1: -> - 本仓库自述文件复制了[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)内容 `浏览器与脚本管理器` - > [!TIP] -> - Hmjz100 :+1: -> - 仓库内所有`README.md`文件徽章复制了[Hmjz100](https://github.com/hmjz100)的仓库[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)内的[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)文件的徽章风格 +> +> - XIU2 :+1: +> - 本仓库自述文件复制了[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)内容 `浏览器与脚本管理器` > [!TIP] -> - FengFeng :+1: -> - 仓库内所有`README.md`文件头部简介与历史安装表格复制了[FengFeng](https://github.com/BonjourFeng)的仓库[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)文件内容 -> - 本仓库的子仓库`UserScriptsHistory`自动更新安装历史表格图片代码也复制使用了[FengFeng](https://github.com/BonjourFeng)的仓库[Script-History](https://github.com/BonjourFeng/Script-History)内的代码[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) +> +> - Hmjz100 :+1: +> - 仓库内所有`README.md`文件徽章复制了[Hmjz100](https://github.com/hmjz100)的仓库[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)内的[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)文件的徽章风格 > [!TIP] -> - 沙漠之子 :+1: -> - 复制了 [沙漠之子](https://github.com/maboloshi)的仓库[github-chinese](https://github.com/maboloshi/github-chinese)内的代码
    -> - 本仓库内`writer.py` `update-contributors.yml` 复制使用了[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)里面的代码 -> - 本仓库自述文件复制了[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)内容 `如何安装/使用脚本?` - -> [!TIP] -> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 刘展鹏 :+1: -> - *本仓库的自动翻译与 Action 功能特别感谢美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)出色的想法与代码!* :trollface: -> - *本仓库命名风格受美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)启发* :trollface: -> - *本仓库内自述文件来自[Adam Lui 刘展鹏](https://github.com/adamlui)的自述风格* :trollface: -> - *脚本内的相互导流跳转来自[Adam Lui 刘展鹏](https://github.com/adamlui)的自述风格* :trollface: -> - *本仓库内所有`README.md`文件复制并使用了这个美国佬的仓库`README.md`文件排版,分隔符,代码,思路* :trollface: -> - *复制了美国佬[Adam Lui 刘展鹏](https://github.com/adamlui) Action 内代码* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *复制了 美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)Action 内代码* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *复制了美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)* [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)分隔符,等排版风格 :trollface: -> - *复制了 美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)Python 内代码* [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: - +> +> - FengFeng :+1: +> - 仓库内所有`README.md`文件头部简介与历史安装表格复制了[FengFeng](https://github.com/BonjourFeng)的仓库[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)文件内容 +> - 本仓库的子仓库`UserScriptsHistory`自动更新安装历史表格图片代码也复制使用了[FengFeng](https://github.com/BonjourFeng)的仓库[Script-History](https://github.com/BonjourFeng/Script-History)内的代码[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) +> [!TIP] +> +> - 沙漠之子 :+1: +> - 复制了 [沙漠之子](https://github.com/maboloshi)的仓库[github-chinese](https://github.com/maboloshi/github-chinese)内的代码
    +> - 本仓库内`writer.py` `update-contributors.yml` 复制使用了[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)里面的代码 +> - 本仓库自述文件复制了[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)内容 `如何安装/使用脚本?` +> [!TIP] +> +> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 刘展鹏 :+1: +> - _本仓库的自动翻译与 Action 功能特别感谢美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)出色的想法与代码!_ :trollface: +> - _本仓库命名风格受美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)启发_ :trollface: +> - _本仓库内自述文件来自[Adam Lui 刘展鹏](https://github.com/adamlui)的自述风格_ :trollface: +> - _脚本内的相互导流跳转来自[Adam Lui 刘展鹏](https://github.com/adamlui)的自述风格_ :trollface: +> - _本仓库内所有`README.md`文件复制并使用了这个美国佬的仓库`README.md`文件排版,分隔符,代码,思路_ :trollface: +> - _复制了美国佬[Adam Lui 刘展鹏](https://github.com/adamlui) Action 内代码_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _复制了 美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)Action 内代码_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _复制了美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)_ [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)分隔符,等排版风格 :trollface: +> - _复制了 美国佬[Adam Lui 刘展鹏](https://github.com/adamlui)Python 内代码_ [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: ## 贡献者 + 人民的勤务员 人民的勤务员的勤务员 + 贡献列表由: [contributors](https://github.com/jaywcjlove/github-action-contributors). 自动生成 小弟调调 - ## 🌐 浏览器与脚本管理器 | 推荐浏览器 | 安装管理器 | 安装浏览器 | @@ -1357,6 +1324,16 @@

    更多用户脚本 / 回到顶部↑

    -## License +## 开源许可协议 + +MIT许可证 + +### 星标历史 -The MIT License. + + + + + Star History Chart + + diff --git a/docs/README_en.md b/docs/README_en.md deleted file mode 100644 index dba16e780..000000000 --- a/docs/README_en.md +++ /dev/null @@ -1,1362 +0,0 @@ - -
    - - -**The script comes from the vast number of netizens on the Internet,I just made some changes.Thanks netizens** -**If there is any infringement,Contact must be deleted** - -## [Browse the script directory for details](/Script%20details) - -## script list - - -
    ChatGPTRelated scripts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - ChatGPTCode font size reduced
    - - GitHub - - detailed - -
    let ChatGPT Code font size becomes smaller - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-26 11:42:172024-10-07 07:21:500.1.1.02024-07-27 20:58:35
    - - ChatGPT Chat copy code button
    - - GitHub - - detailed - -
    exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-22 07:35:202024-10-03 19:12:341.2.0.02024-09-22 07:06:07
    - - ChatGPT character counter
    - - GitHub - - detailed - -
    添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-01 09:51:012024-10-07 01:24:321.3.1.142024-09-01 09:45:50
    - - ChatGPT Collapse self message and max width
    - - GitHub - - detailed - -
    Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-24 11:33:582024-10-03 19:12:350.3.0.02024-08-24 11:09:34
    Web related scripts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - Web page writing clip version authorization manager
    - - GitHub - - detailed - -
    Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-09 10:17:552024-10-03 19:12:351.2.3.12024-07-27 20:54:00
    - - LiftCSDNLogin copy restrictions
    - - GitHub - - detailed - -
    fuck you CSDN LoginCopy,Copy code box content without logging in - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-26 11:37:222024-10-03 19:12:361.0.0.232024-07-27 20:58:34
    - - Beautify web forms with gorgeous gradients
    - - GitHub - - detailed - -
    Automatically apply color gradient beautification to all columns of tables on web pages. - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-06 06:08:082024-10-03 19:12:351.0.0.92024-09-06 05:02:49
    - - Highlight keywords on web pages+(recommend)
    - - GitHub - - detailed - -
    Highlight text on web pages - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-26 07:05:052024-10-03 19:12:431.1.2.722024-07-27 20:54:01
    - - Highlight web text_mini version
    - - GitHub - - detailed - -
    Custom keyword highlighting on web pages including dynamically loaded content on scroll - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-26 06:53:122024-10-03 19:12:431.0.5.262024-08-24 06:02:07
    - - Small window preview
    - - GitHub - - detailed - -
    Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-24 06:51:352024-10-03 19:12:452.5.1.42024-08-23 07:20:13
    - - Remove link underline
    - - GitHub - - detailed - -
    Remove underline from web links - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-23 11:35:072024-10-03 19:12:461.2.0.632024-07-27 20:54:00
    - - Small scroll button up and down
    - - GitHub - - detailed - -
    Add up and down scroll buttons on the right side of the page - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-07 08:33:172024-10-03 19:12:471.0.0.262024-08-24 06:05:19
    - - One-touch top and bottom buttons
    - - GitHub - - detailed - -
    Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-07-11 13:57:292024-10-03 19:12:471.2.0.722024-07-27 20:54:01
    GitHubRelated scripts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - GitHubSubmit information displayHTML
    - - GitHub - - detailed - -
    This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-30 10:13:442024-10-03 19:12:361.0.0.192024-08-30 03:21:51
    - - GitHub File list beautifier
    - - GitHub - - detailed - -
    GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add color to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-12 11:56:172024-10-03 19:12:364.1.0.32024-9-12 10:39:51
    - - Github List of code languages ​​show all
    - - GitHub - - detailed - -
    Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-24 05:30:012024-10-04 05:26:321.0.0.02024-09-24 04:33:03
    - - GitHub Automatically confirm device authorization
    - - GitHub - - detailed - -
    existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-18 09:12:312024-10-03 19:12:331.0.0.02024-09-18 08:50:32
    - - GitHubFolder download
    - - GitHub - - detailed - -
    Add a download button,Allows easy downloading of specific GitHub folder。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-28 04:27:352024-10-03 19:12:370.7.0.232024-08-29 06:11:34
    - - GitHubDownload single files and copy filesURL
    - - GitHub - - detailed - -
    Add button at the end of each file line,to copy the original file URL and download files - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-28 05:20:142024-10-03 19:12:372.2.0.222024-08-29 06:11:33
    - - 🤠 Github Enhance assistant Warehouse display size Inactive development warning Quickly jump to the user’s other warehouses within the warehouse 🤠
    - - GitHub - - detailed - -
    existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,Quick jump within the warehouse. - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-01 03:43:192024-10-08 05:13:520.1.3.72024-08-01 00:53:59
    - - GitHub Sort by Date
    - - GitHub - - detailed - -
    Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-26 12:30:532024-10-04 05:23:241.1.0.232024-08-06 01:28:58
    GoogleRelated scripts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - Google Advanced search
    - - GitHub - - detailed - -
    This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-05 10:28:202024-10-03 19:12:380.1.9.452024-08-06 00:32:20
    - - Google Search and block specific sites
    - - GitHub - - detailed - -
    Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-07-11 14:21:022024-10-03 19:12:390.0.1.512024-07-27 20:54:01
    GreasyForkRelated scripts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - GreasyForksuitable for enhancement
    - - GitHub - - detailed - -
    The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-08 05:36:472024-10-03 19:12:390.9.3.662024-07-27 20:54:00
    - - GrreasyFork User-published script data visualization
    - - GitHub - - detailed - -
    useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-18 11:41:122024-10-03 19:12:411.1.1.12024-09-19 11:22:00
    - - GreaysFork Enhance WebHookSync settings
    - - GitHub - - detailed - -
    This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-04 12:12:182024-10-03 19:12:431.1.1.12024-09-04 12:08:47
    - - GreasyFork Markdown toobar
    - - GitHub - - detailed - -
    Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-26 02:12:292024-10-03 19:12:402.0.52024-08-06 00:32:53
    - - GreasyFork Show script ratings
    - - GitHub - - detailed - -
    Add evaluation scores to script list - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-07-19 09:44:012024-10-03 19:12:401.3.3.632024-07-27 20:54:00
    - - GreasyFork Advanced search
    - - GitHub - - detailed - -
    Search using Google GreasyFork and SleazyFork superior script - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-26 12:08:492024-10-03 19:12:400.6.5.232024-07-27 20:58:34
    - - GreasyFork Navigation bar enhancement
    - - GitHub - - detailed - -
    EnhancegreasyforkNavigation bar,Add user list,User console etc. - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-07-27 09:34:432024-10-03 19:12:410.3.1.572024-07-27 20:54:01
    - - GreasyforkGlue craftsman
    - - GitHub - - detailed - -
    Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-08 17:06:262024-10-03 19:12:412.2.0.922024-07-27 20:54:01
    - - Greasyfork Notification Assistant
    - - GitHub - - detailed - -
    When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-02 12:36:002024-10-03 19:12:391.5.0.42024-09-02 12:34:55
    - - Script FinderGrease Monkey Script Finder
    - - GitHub - - detailed - -
    Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-26 06:43:472024-10-03 19:12:460.1.6.802024-07-27 20:54:01
    adult script - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - MiSSAVAutomatic login
    - - GitHub - - detailed - -
    Detection MisssAV state,and automatically log in when not logged in - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-27 04:15:172024-10-03 19:12:441.0.1.72024-08-27 02:45:07
    - - MissAVCollection manager
    - - GitHub - - detailed - -
    missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-06-12 10:58:392024-10-03 19:12:441.2.3.732024-07-27 20:54:01
    - - TissAVAutomatic login
    - - GitHub - - detailed - -
    Detection TissAV state,and automatically log in when not logged in - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-03 08:50:592024-10-03 19:12:471.0.1.82024-09-03 08:52:46
    - - JableTVAutomatic login
    - - GitHub - - detailed - -
    Detection JableTV state,and automatically log in when not logged in - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-09-04 13:43:002024-10-03 19:12:441.0.0.102024-09-04 13:44:42
    automatic translation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Script nameScript descriptionGitHubGreasyforkRelease timeUpdate timelatest versionCreated for the first time
    - - foreign language terminator
    - - GitHub - - detailed - -
    Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-24 10:37:082024-10-03 19:12:451.4.0.02024-07-27 20:58:35
    - - web page translation——Automatically translated to Chinese
    - - GitHub - - detailed - -
    Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation - - size -
    Install -
    -
    - - -
    Install -
    -
    2024-08-26 11:37:232024-10-03 19:12:480.31.0.232024-07-27 20:58:34
    - - ---- - -## How to install/Use script? - -To use any script,First you need to install the browser **Tampermonkey Script Manager Extension([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** - -- Click on the form **\[Install\]** Directly pop up the script manager installation interface。 -- if Github Access speed is too slow,You can choose to click GreasyFork **\[Install\]** Extension prompt pops up after,Click again **\[Install\]** That’s it。 - -> [!IMPORTANT] -> -> - _Others based on **Chromium** Kernel browser(Such as domestic cover browser)Generally can be used Chrome Expand。_ -> - _Please make sure to use **Tampermonkey Official version** Expand,其他的用户Script管理器可能导致**Not working properly**脚本。_ -> - _If you want to reinstall the script,Please remember to Tampermonkey extended**Completely delete from recycle bin**Script and then reinstall the script。_ - -> _**No offline installation .crx Expand?[Chrome、Edge Reopen hidden [Drag and drop installation .crx Expand] Function!](https://zhuanlan.zhihu.com/p/276027099)**_--- - ---- - -## Special thanks to open source - - > [!TIP] -> - XIU2 :+1: -> - This repository readme file is copied[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)content `Browser and Script Manager` - -> [!TIP] -> - Hmjz100 :+1: -> - All in the warehouse`README.md`File badge copied[Hmjz100](https://github.com/hmjz100)warehouse[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)internal[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)Document badge style - -> [!TIP] -> - FengFeng :+1: -> - 仓库Inside所有`README.md`File header introduction and historical installation table copied[FengFeng](https://github.com/BonjourFeng)warehouse[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)File content -> - Sub-warehouses of this warehouse`UserScriptsHistory`The automatic update installation history table image code is also copied and used.[FengFeng](https://github.com/BonjourFeng)warehouse[Script-History](https://github.com/BonjourFeng/Script-History)code within[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) - -> [!TIP] -> - son of the desert :+1: -> - Copied [son of the desert](https://github.com/maboloshi)warehouse[github-chinese](https://github.com/maboloshi/github-chinese)code within
    -> - In this warehouse`writer.py` `update-contributors.yml` Copied using[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)code inside -> - This repository readme file is copied[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)content `How to install/Use script?` - -> [!TIP] -> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui Liu Zhanpeng :+1: -> - *Automatic translation of this repository and Action Special thanks to Yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Great ideas and code!* :trollface: -> - *The naming style of this warehouse is inspired by the Yankees[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Inspire* :trollface: -> - *The readme file in this repository comes from[Adam Lui Liu Zhanpeng](https://github.com/adamlui)self-report style* :trollface: -> - *The mutual redirection jump within the script comes from[Adam Lui Liu Zhanpeng](https://github.com/adamlui)self-report style* :trollface: -> - *All in this warehouse`README.md`File copied and used from this Yankee repository`README.md`Document layout,delimiter,code,Ideas* :trollface: -> - *copied yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui) Action internal code* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *Copied Yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Action internal code* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *copied yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)* [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)delimiter,Typesetting style :trollface: -> - *Copied Yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Python internal code* [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: - - - - -## Contributor - - -人民的勤务员 -people’s servants servants - - -List of contributions by: [contributors](https://github.com/jaywcjlove/github-action-contributors). Automatically generated Little brother tunes - - -## 🌐 Browser and Script Manager - -| Recommended browser | Installation manager | Install browser | -| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | -|
    Chrome or based on Chromium Kernel browser[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | -|
    Safari Browser(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] or ![][stayr] [Stay] |
    [![][safari]][safari_link] | -|
    Firefox or based on Gecko Kernel browser[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | -|
    Opera Browser[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | -|
    Via Browser(Android)[![][via]][via_link] |
    Built-in browser |
    [![][via]][via_link] | -|
    X Browser(Android) [![][x]][x_link] |
    Built-in browser |
    [![][x]][x_link] | -|
    KIWI Browser(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | -|
    Lemur Browser(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | -| | | | - -[Tampermonkey]: http://tampermonkey.net/ "tamper monkey" -[Violentmonkey]: https://violentmonkey.github.io/ "violent monkey" -[Macaque]: https://macaque.app/ "macaque" -[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png -[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" -[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png -[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png -[opera_link]: https://www.opera.com "operaBrowser" -[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png -[edge_link]: https://www.microsoft.com/edge "edge Browser" -[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png -[firefox_link]: https://www.firefox.com "FirefoxBrowser" -[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png -[chrome_link]: https://gooogleweb.com/index.html "ChromeBrowser" -[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png -[QQ_link]: https://browser.qq.com/ "QQBrowser" -[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png -[safari_link]: https://www.apple.com/vn/safari/ "SafariBrowser" -[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png -[via_link]: https://viayoo.com/ "VIABrowser" -[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png -[x_link]: https://www.xbext.com/ "XBrowser" -[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "violent monkey" -[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png -[cat_link]: https://docs.scriptcat.org/ "script cat" -[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "tamper monkey" -[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png -[le_link]: https://lemurbrowser.com/ "Lemur Browser" -[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg -[kiwi_link]: https://kiwibrowser.com/ "KIWIBrowser" - -

    More user scripts / -back to top↑

    - -## License - -The MIT License. diff --git a/docs/README_ja.md b/docs/README_ja.md deleted file mode 100644 index fef3f960c..000000000 --- a/docs/README_ja.md +++ /dev/null @@ -1,1362 +0,0 @@ - -
    - - -**この脚本はインターネット上の膨大な数のネチズンから提供されたものです,いくつか変更を加えただけです.ありがとうネチズン** -**違反があった場合,連絡先を削除する必要があります** - -## [詳細については、スクリプト ディレクトリを参照してください](/Script%20details) - -## スクリプトリスト - - -
    ChatGPT関連するスクリプト - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - ChatGPTコードのフォントサイズが小さくなりました
    - - GitHub - - 詳しい - -
    させて ChatGPT コードのフォントサイズが小さくなる - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-26 11:42:172024-10-07 07:21:500.1.1.02024-07-27 20:58:35
    - - ChatGPT チャットコードコピーボタン
    - - GitHub - - 詳しい - -
    存在する chatgpt.com 上部のコード ブロックの右下隅にアニメーションを追加します。“コードをコピーする”ボタン - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-22 07:35:202024-10-03 19:12:341.2.0.02024-09-22 07:06:07
    - - ChatGPT 文字カウンター
    - - GitHub - - 詳しい - -
    添加一キャラクター计数器到输入框,に限定される 32732 キャラクター。(ChatGPT 限界は 32732 个字符。) - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-01 09:51:012024-10-07 01:24:321.3.1.142024-09-01 09:45:50
    - - ChatGPT セルフメッセージと最大幅を折りたたむ
    - - GitHub - - 詳しい - -
    自分が送信した長いメッセージを自動的に折りたたむ,画面スペースを節約する。チャットウィンドウの最大幅を設定できます。,長いメッセージが指定された範囲を超えないようにする。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-24 11:33:582024-10-03 19:12:350.3.0.02024-08-24 11:09:34
    Web関連のスクリプト - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - Web ページ書き込みクリップ バージョン認証マネージャー
    - - GitHub - - 詳しい - -
    Web ページが編集されたバージョンを公開することを禁止する,緑はリリース用,レッドバン,オレンジ色の臨時ルート - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-09 10:17:552024-10-03 19:12:351.2.3.12024-07-27 20:54:00
    - - リフトCSDNログインコピーの制限
    - - GitHub - - 詳しい - -
    ファックユー CSDN ログインコピー,ログインせずにコードボックスの内容をコピーする - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-26 11:37:222024-10-03 19:12:361.0.0.232024-07-27 20:58:34
    - - ゴージャスなグラデーションで Web フォームを美しくする
    - - GitHub - - 詳しい - -
    Web ページ上の表のすべての列にカラー グラデーション美化を自動的に適用します。. - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-06 06:08:082024-10-03 19:12:351.0.0.92024-09-06 05:02:49
    - - Web ページ上のキーワードを強調表示する+(推薦する)
    - - GitHub - - 詳しい - -
    Web ページ上のテキストを強調表示する - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-26 07:05:052024-10-03 19:12:431.1.2.722024-07-27 20:54:01
    - - Web テキストを強調表示する_ミニバージョン
    - - GitHub - - 詳しい - -
    スクロール時に動的に読み込まれるコンテンツを含む、Web ページ上のカスタム キーワードの強調表示 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-26 06:53:122024-10-03 19:12:431.0.5.262024-08-24 06:02:07
    - - 小さなウィンドウでプレビュー
    - - GitHub - - 詳しい - -
    リンクをドラッグするとポップアップ ウィンドウでリンクが開きます,開く前にプレビューを提供します,使用 Edge 先読み技術。同時に、開いたときの小窓の後ろにアクリル効果を追加します。。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-24 06:51:352024-10-03 19:12:452.5.1.42024-08-23 07:20:13
    - - リンクの下線を削除する
    - - GitHub - - 詳しい - -
    Web リンクから下線を削除する - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-23 11:35:072024-10-03 19:12:461.2.0.632024-07-27 20:54:00
    - - 小さな上下スクロールボタン
    - - GitHub - - 詳しい - -
    ページの右側に上下のスクロール ボタンを追加します。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-07 08:33:172024-10-03 19:12:471.0.0.262024-08-24 06:05:19
    - - ワンタッチの上下ボタン
    - - GitHub - - 詳しい - -
    から変更されましたGreasyforkユーザースクリプト Web ページに上部と下部のボタンを追加する,長いページの上部または下部への素早い移動を容易にします。。 下にスクロールしたときにボタンの色の変更を追加しました,3数秒以内にスクロールがない場合は自動的に停止します - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-07-11 13:57:292024-10-03 19:12:471.2.0.722024-07-27 20:54:01
    GitHub関連するスクリプト - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - GitHub送信情報表示HTML
    - - GitHub - - 詳しい - -
    このスクリプトは、 GitHub 投稿情報は、 HTML ビュー,提出物の詳細をより明確に確認するには。情報リストを自動的に送信します、コミットヘッダーと最新のコミット情報が変換されます。 HTML 形式,より良い視覚効果とユーザーエクスペリエンスを提供する。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-30 10:13:442024-10-03 19:12:361.0.0.192024-08-30 03:21:51
    - - GitHub ファイルリスト整形ツール
    - - GitHub - - 詳しい - -
    GitHub File List Beautifier はユーザースクリプトです,強化するために使用される GitHub 倉庫内のファイルの表示効果。ファイルやフォルダーに色を追加できます,ファイルタイプのアイコンを小さな画像に置き換えます,コードベースの参照と管理が容易になります。。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-12 11:56:172024-10-03 19:12:364.1.0.32024-9-12 10:39:51
    - - Github コード言語のリストをすべて表示
    - - GitHub - - 詳しい - -
    拡大する Github リポジトリ上の言語のリスト,各言語を表示,小さな部品を隠すのではなく、 “他の” 下 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-24 05:30:012024-10-04 05:26:321.0.0.02024-09-24 04:33:03
    - - GitHub デバイスの認証を自動的に確認する
    - - GitHub - - 詳しい - -
    存在するGitHub認証ページでは、認証コードが自動的に入力され、自動的に確認されます。。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-18 09:12:312024-10-03 19:12:331.0.0.02024-09-18 08:50:32
    - - GitHubフォルダーのダウンロード
    - - GitHub - - 詳しい - -
    ダウンロードボタンを追加する,特定のファイルを簡単にダウンロードできます GitHub フォルダ。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-28 04:27:352024-10-03 19:12:370.7.0.232024-08-29 06:11:34
    - - GitHub単一ファイルのダウンロードとファイルのコピーURL
    - - GitHub - - 詳しい - -
    各ファイル行の末尾にある「追加」ボタン,元のファイルをコピーするには URL そしてファイルをダウンロードする - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-28 05:20:142024-10-03 19:12:372.2.0.222024-08-29 06:11:33
    - - 🤠 Github 強化アシスタント 倉庫のディスプレイサイズ 非アクティブな開発に関する警告 倉庫内のユーザーの他の倉庫に素早くジャンプします 🤠
    - - GitHub - - 詳しい - -
    存在するGithub倉庫の表示および検索時に倉庫のサイズを表示する ,非アクティブな開発に関する警告,倉庫内で素早くジャンプ. - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-01 03:43:192024-10-08 05:13:520.1.3.72024-08-01 00:53:59
    - - GitHub Sort by Date
    - - GitHub - - 詳しい - -
    倉庫リストファイルのソート方法を日付の降順に変更する,最新の更新ファイルを簡単に表示。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-26 12:30:532024-10-04 05:23:241.1.0.232024-08-06 01:28:58
    Google関連するスクリプト - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - Google 詳細検索
    - - GitHub - - 詳しい - -
    これは、 Google 詳細検索フォームのユーザー スクリプトを追加する。ページの上部に非表示可能な高度な検索フォームを追加します,より正確に情報を検索できるようになります。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-05 10:28:202024-10-03 19:12:380.1.9.452024-08-06 00:32:20
    - - Google 特定のサイトを検索してブロックする
    - - GitHub - - 詳しい - -
    検索エンジンの結果から特定のサイトをブロックする,ユーザーが不要な検索結果を除外できるように支援する。 カスタム入力ブロック サイト。形式-zhihu -baidu Google 検索コンテンツをブロックするために使用されます - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-07-11 14:21:022024-10-03 19:12:390.0.1.512024-07-27 20:54:01
    GreasyFork関連するスクリプト - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - GreasyFork強化に適した
    - - GitHub - - 詳しい - -
    スクリプトの詳細ページが追加され、クリックすると Web ページが開きます。,Webページをコピーする,タイヤ検索 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-08 05:36:472024-10-03 19:12:390.9.3.662024-07-27 20:54:00
    - - GrreasyFork ユーザーが公開したスクリプト データの視覚化
    - - GitHub - - 詳しい - -
    使用Chart.jsユーザースクリプトデータの取得と可視化,また、ユーザーの個人ホームページ上にグラフを生成し、以下の詳細なインストール状況を表示します。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-18 11:41:122024-10-03 19:12:411.1.1.12024-09-19 11:22:00
    - - GreaysFork 強化する WebHook同期設定
    - - GitHub - - 詳しい - -
    このスクリプトは、スクリプト同期情報を迅速に入力するのに役立ちます。,複数の国の言語コードをバッチで追加します,選択ボックスを 1 つずつクリックして対応する URL に移動するのではなく、。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-04 12:12:182024-10-03 19:12:431.1.1.12024-09-04 12:08:47
    - - GreasyFork Markdown toobar
    - - GitHub - - 詳しい - -
    フォーラムでデフォルトで使用されます Markdown 形式,フォーマットのヘルプリンクを追加し、 Markdown ツールバーの紹介 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-26 02:12:292024-10-03 19:12:402.0.52024-08-06 00:32:53
    - - GreasyFork 脚本の評価を表示する
    - - GitHub - - 詳しい - -
    評価スコアをスクリプトリストに追加 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-07-19 09:44:012024-10-03 19:12:401.3.3.632024-07-27 20:54:00
    - - GreasyFork 詳細検索
    - - GitHub - - 詳しい - -
    Googleを使って検索する GreasyFork そして SleazyFork 上的脚本 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-26 12:08:492024-10-03 19:12:400.6.5.232024-07-27 20:58:34
    - - GreasyFork ナビゲーションバーの強化
    - - GitHub - - 詳しい - -
    強化するgreasyforkナビゲーションバー,ユーザーリストを追加,ユーザーコンソールなど - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-07-27 09:34:432024-10-03 19:12:410.3.1.572024-07-27 20:54:01
    - - Greasyfork糊裱匠
    - - GitHub - - 詳しい - -
    強化するgreasyfork,コードをコピーする,スクリプトのダウンロード,秒単位の正確な時間,ホームページのクリーンアップ,ワンクリックレポートについて話し合う,スクリプトリストジャンプコード追加ダウンロード コードの表示とコード参照ファイルの表示を美しくする,スクリプトアイコンを表示,アダルト スクリプトやその他の操作にジャンプします - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-08 17:06:262024-10-03 19:12:412.2.0.922024-07-27 20:54:01
    - - Greasyfork 通知アシスタント
    - - GitHub - - 詳しい - -
    スクリプトまたは参加しているディスカッションに対して新しい返信があったとき,スクリプトは、Web ページ上のモーダル ウィンドウに最新のディスカッション コンテンツを表示します。。 - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-02 12:36:002024-10-03 19:12:391.5.0.42024-09-02 12:34:55
    - - Script Finderグリース モンキー スクリプト ファインダー
    - - GitHub - - 詳しい - -
    Script Finder ユーザースクリプトです(userscript),あらゆる Web サイト上のユーザースクリプトの検索と管理に役立ちます - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-26 06:43:472024-10-03 19:12:460.1.6.802024-07-27 20:54:01
    成人脚本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - MiSSAV自動ログイン
    - - GitHub - - 詳しい - -
    検出 MisssAV 州,ログインしていない場合は自動的にログインします - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-27 04:15:172024-10-03 19:12:441.0.1.72024-08-27 02:45:07
    - - MissAVコレクションマネージャー
    - - GitHub - - 詳しい - -
    missプレイリストのバックアップ,写真のダウンロードとビデオ情報の保存をサポート.ローカル Web ページをエクスポートする へのエクスポートをサポートwebdav - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-06-12 10:58:392024-10-03 19:12:441.2.3.732024-07-27 20:54:01
    - - TissAV自動ログイン
    - - GitHub - - 詳しい - -
    検出 TissAV 州,ログインしていない場合は自動的にログインします - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-03 08:50:592024-10-03 19:12:471.0.1.82024-09-03 08:52:46
    - - JableTV自動ログイン
    - - GitHub - - 詳しい - -
    検出 JableTV 州,ログインしていない場合は自動的にログインします - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-09-04 13:43:002024-10-03 19:12:441.0.0.102024-09-04 13:44:42
    自動翻訳 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    スクリプト名スクリプトの説明GitHubGreasyforkリリース時間更新時間最新バージョン初めて作成しました
    - - 外国語ターミネータ
    - - GitHub - - 詳しい - -
    中国語以外の文字を認識する,長さがそれより大きい場合 5 翻訳されたテキストには中国語が含まれていません,それを中国語に置き換えます,アクセスできる必要があるgoogleネットワーク - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-24 10:37:082024-10-03 19:12:451.4.0.02024-07-27 20:58:35
    - - ウェブページの翻訳——自動的に中国語に翻訳されます
    - - GitHub - - 詳しい - -
    中国語以外の各 Web ページの右下隅に記入してください(左下隅に調整可能)追加します google 翻訳アイコン,このバージョンは中国語翻訳版です,外国語のみを中国語に翻訳する,自動翻訳を追加する - - size -
    インストール -
    -
    - - -
    インストール -
    -
    2024-08-26 11:37:232024-10-03 19:12:480.31.0.232024-07-27 20:58:34
    - - ---- - -## インストール方法/スクリプトを使用する? - -任意のスクリプトを使用するには,まずブラウザをインストールする必要があります **Tampermonkey スクリプトマネージャー拡張機能([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** - -- フォームをクリックしてください **\[インストール\]** スクリプト マネージャーのインストール インターフェイスを直接ポップアップ表示します。。 -- もし Github アクセス速度が遅すぎる,クリックするか選択できます GreasyFork **\[インストール\]** 後に拡張機能プロンプトが表示されます,もう一度クリックしてください **\[インストール\]** それでおしまい。 - -> [!IMPORTANT] -> -> - _その他に基づく **Chromium** カーネルブラウザ(国内カバーブラウザなど)一般的に使用できます Chrome 拡大する。_ -> - _ぜひご利用ください **Tampermonkey 正式版** 拡大する,他のユーザー スクリプト マネージャーでは、次のような問題が発生する可能性があります。**正しく動作しない**脚本。_ -> - _スクリプトを再インストールしたい場合,覚えておいてください Tampermonkey 延長された**ごみ箱から完全に削除する**スクリプトを作成し、スクリプトを再インストールします。_ - -> _**オフラインインストールなし .crx 拡大する?[Chrome、Edge 非表示を再度開く [ドラッグアンドドロップでインストール .crx 拡大する] 関数!](https://zhuanlan.zhihu.com/p/276027099)**_--- - ---- - -## オープンソースに感謝します - - > [!TIP] -> - XIU2 :+1: -> - このリポジトリの Readme ファイルがコピーされます[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)コンテンツ `ブラウザとスクリプトマネージャー` - -> [!TIP] -> - Hmjz100 :+1: -> - 全部倉庫の中`README.md`ファイルバッジがコピーされました[Hmjz100](https://github.com/hmjz100)倉庫[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)内的[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)ドキュメントバッジのスタイル - -> [!TIP] -> - FengFeng :+1: -> - 仓库内部所有`README.md`ファイルヘッダーの紹介とインストール履歴テーブルがコピーされました[FengFeng](https://github.com/BonjourFeng)倉庫[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)ファイルの内容 -> - この倉庫のサブ倉庫`UserScriptsHistory`自動更新インストール履歴テーブルのイメージコードもコピーして使用します。[FengFeng](https://github.com/BonjourFeng)倉庫[Script-History](https://github.com/BonjourFeng/Script-History)内のコード[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) - -> [!TIP] -> - 砂漠の息子 :+1: -> - コピーされました [砂漠の息子](https://github.com/maboloshi)倉庫[github-chinese](https://github.com/maboloshi/github-chinese)内のコード
    -> - この倉庫には`writer.py` `update-contributors.yml` を使用してコピーされました[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)内部のコード -> - このリポジトリの Readme ファイルがコピーされます[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)コンテンツ `インストール方法/スクリプトを使用する?` - -> [!TIP] -> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 劉禅鵬 :+1: -> - *このリポジトリの自動翻訳と Action ヤンキーには本当に感謝しています[Adam Lui 劉禅鵬](https://github.com/adamlui)素晴らしいアイデアとコード!* :trollface: -> - *ヤンキースをイメージしたウェアハウスのネーミング[Adam Lui 劉禅鵬](https://github.com/adamlui)鼓舞する* :trollface: -> - *このリポジトリの Readme ファイルは次の場所にあります。[Adam Lui 劉禅鵬](https://github.com/adamlui)自己申告スタイル* :trollface: -> - *スクリプト内の相互リダイレクト ジャンプは次のものから来ています。[Adam Lui 劉禅鵬](https://github.com/adamlui)自己申告スタイル* :trollface: -> - *全てはこの倉庫にある`README.md`この Yankee リポジトリからコピーして使用されたファイル`README.md`ドキュメントのレイアウト,デリミタ,コード,アイデア* :trollface: -> - *コピーされたヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui) Action 内部コード* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *コピーされました ヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui)Action 内部コード* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *コピーされたヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui)* [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)デリミタ,写植スタイル :trollface: -> - *コピーされました ヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui)Python 内部コード* [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: - - - - -## 投稿者 - - -人民的勤务员 -人々の奉仕者 - - -投稿者リスト: [contributors](https://github.com/jaywcjlove/github-action-contributors). 自動生成 弟の曲 - - -## 🌐 ブラウザとスクリプトマネージャー - -| 推奨ブラウザ | インストールマネージャー | ブラウザをインストールする | -| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | -|
    Chrome または に基づく Chromium カーネルブラウザ[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | -|
    Safari ブラウザ(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] または ![][stayr] [Stay] |
    [![][safari]][safari_link] | -|
    Firefox または に基づく Gecko カーネルブラウザ[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | -|
    Opera ブラウザ[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | -|
    Via ブラウザ(Android)[![][via]][via_link] |
    内蔵ブラウザ |
    [![][via]][via_link] | -|
    X ブラウザ(Android) [![][x]][x_link] |
    内蔵ブラウザ |
    [![][x]][x_link] | -|
    KIWI ブラウザ(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | -|
    キツネザルブラウザ(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | -| | | | - -[Tampermonkey]: http://tampermonkey.net/ "タンパーモンキー" -[Violentmonkey]: https://violentmonkey.github.io/ "凶暴な猿" -[Macaque]: https://macaque.app/ "サル" -[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png -[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" -[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png -[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png -[opera_link]: https://www.opera.com "operaブラウザ" -[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png -[edge_link]: https://www.microsoft.com/edge "edge ブラウザ" -[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png -[firefox_link]: https://www.firefox.com "Firefoxブラウザ" -[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png -[chrome_link]: https://gooogleweb.com/index.html "Chromeブラウザ" -[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png -[QQ_link]: https://browser.qq.com/ "QQブラウザ" -[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png -[safari_link]: https://www.apple.com/vn/safari/ "Safariブラウザ" -[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png -[via_link]: https://viayoo.com/ "VIAブラウザ" -[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png -[x_link]: https://www.xbext.com/ "Xブラウザ" -[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "凶暴な猿" -[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png -[cat_link]: https://docs.scriptcat.org/ "脚本猫" -[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "タンパーモンキー" -[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png -[le_link]: https://lemurbrowser.com/ "キツネザルブラウザ" -[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg -[kiwi_link]: https://kiwibrowser.com/ "KIWIブラウザ" - -

    さらなるユーザースクリプト / -トップに戻る↑

    - -## License - -The MIT License. diff --git a/docs/README_ko.md b/docs/README_ko.md deleted file mode 100644 index 9ccfe7057..000000000 --- a/docs/README_ko.md +++ /dev/null @@ -1,1362 +0,0 @@ - -
    - - -**해당 대본은 인터넷상의 수많은 네티즌들로부터 나온 것이다.,방금 몇 가지 사항을 변경했습니다..네티즌 여러분 감사합니다** -**침해가 있는 경우,연락처를 삭제해야 합니다.** - -## [자세한 내용은 스크립트 디렉터리를 찾아보세요.](/Script%20details) - -## 스크립트 목록 - - -
    ChatGPT관련 스크립트 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - ChatGPT코드 글꼴 크기 감소
    - - GitHub - - 상세한 - -
    허락하다 ChatGPT 코드 글꼴 크기가 작아집니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-26 11:42:172024-10-07 07:21:500.1.1.02024-07-27 20:58:35
    - - ChatGPT 채팅 코드 복사 버튼
    - - GitHub - - 상세한 - -
    존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“코드 복사”단추 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-22 07:35:202024-10-03 19:12:341.2.0.02024-09-22 07:06:07
    - - ChatGPT 캐릭터 카운터
    - - GitHub - - 상세한 - -
    添加一캐릭터计数器到输入框,제한됨 32732 캐릭터。(ChatGPT 한도는 32732 个字符。) - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-01 09:51:012024-10-07 01:24:321.3.1.142024-09-01 09:45:50
    - - ChatGPT 자체 메시지 및 최대 너비 축소
    - - GitHub - - 상세한 - -
    내가 보낸 긴 메시지를 자동으로 접습니다.,화면 공간 절약。채팅 창의 최대 너비를 설정할 수 있습니다.,긴 메시지가 지정된 범위를 초과하지 않도록 유지。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-24 11:33:582024-10-03 19:12:350.3.0.02024-08-24 11:09:34
    웹 관련 스크립트 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - 웹 페이지 작성 클립 버전 권한 관리자
    - - GitHub - - 상세한 - -
    편집된 버전에서 웹페이지가 표시되는 것을 금지합니다.,출시용 녹색,빨간색 금지,주황색 임시 방향 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-09 10:17:552024-10-03 19:12:351.2.3.12024-07-27 20:54:00
    - - 승강기CSDN로그인 복사 제한
    - - GitHub - - 상세한 - -
    엿 먹어라 CSDN 로그인복사,로그인하지 않고 코드 상자 내용 복사 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-26 11:37:222024-10-03 19:12:361.0.0.232024-07-27 20:58:34
    - - 화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요
    - - GitHub - - 상세한 - -
    웹 페이지 테이블의 모든 열에 색상 그라데이션 미화를 자동으로 적용합니다.. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-06 06:08:082024-10-03 19:12:351.0.0.92024-09-06 05:02:49
    - - 웹페이지에서 키워드 강조표시+(추천하다)
    - - GitHub - - 상세한 - -
    웹페이지의 텍스트 강조표시 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-26 07:05:052024-10-03 19:12:431.1.2.722024-07-27 20:54:01
    - - 웹 텍스트 강조 표시_미니 버전
    - - GitHub - - 상세한 - -
    스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-26 06:53:122024-10-03 19:12:431.0.5.262024-08-24 06:02:07
    - - 작은 창 미리보기
    - - GitHub - - 상세한 - -
    링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-24 06:51:352024-10-03 19:12:452.5.1.42024-08-23 07:20:13
    - - 링크 밑줄 제거
    - - GitHub - - 상세한 - -
    웹 링크에서 밑줄 제거 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-23 11:35:072024-10-03 19:12:461.2.0.632024-07-27 20:54:00
    - - 위아래로 작은 스크롤 버튼
    - - GitHub - - 상세한 - -
    페이지 오른쪽에 상하 스크롤 버튼 추가 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-07 08:33:172024-10-03 19:12:471.0.0.262024-08-24 06:05:19
    - - 원터치 상하 버튼
    - - GitHub - - 상세한 - -
    다음에서 수정됨Greasyfork사용자 스크립트 웹 페이지에 상단 및 하단 버튼 추가,긴 페이지의 상단 또는 하단으로 빠르게 이동할 수 있습니다.。 아래로 스크롤할 때 버튼 색상 변경 추가,3몇 초 내에 스크롤이 없으면 자동으로 중지됩니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-07-11 13:57:292024-10-03 19:12:471.2.0.722024-07-27 20:54:01
    GitHub관련 스크립트 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - GitHub정보 표시 제출HTML
    - - GitHub - - 상세한 - -
    이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-30 10:13:442024-10-03 19:12:361.0.0.192024-08-30 03:21:51
    - - GitHub 파일 목록 미화자
    - - GitHub - - 상세한 - -
    GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。 - - size -
    설치 -
    -
    - - -
    설치하다 -
    -
    2024-09-12 11:56:172024-10-03 19:12:364.1.0.32024-9-12 10:39:51
    - - Github 코드 언어 목록 모두 표시
    - - GitHub - - 상세한 - -
    확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다 “다른” 아래에 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-24 05:30:012024-10-04 05:26:321.0.0.02024-09-24 04:33:03
    - - GitHub 장치 승인 자동 확인
    - - GitHub - - 상세한 - -
    존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-18 09:12:312024-10-03 19:12:331.0.0.02024-09-18 08:50:32
    - - GitHub폴더 다운로드
    - - GitHub - - 상세한 - -
    다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-28 04:27:352024-10-03 19:12:370.7.0.232024-08-29 06:11:34
    - - GitHub단일 파일 다운로드 및 파일 복사URL
    - - GitHub - - 상세한 - -
    각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-28 05:20:142024-10-03 19:12:372.2.0.222024-08-29 06:11:33
    - - 🤠 Github 어시스턴트 강화 창고 전시 크기 비활성 개발 경고 창고 내 사용자의 다른 창고로 빠르게 이동 🤠
    - - GitHub - - 상세한 - -
    존재하다Github창고 보기 및 검색 시 창고 크기 표시 ,비활성 개발 경고,창고 내 빠른 점프. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-01 03:43:192024-10-08 05:13:520.1.3.72024-08-01 00:53:59
    - - GitHub Sort by Date
    - - GitHub - - 상세한 - -
    창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-26 12:30:532024-10-04 05:23:241.1.0.232024-08-06 01:28:58
    Google관련 스크립트 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - Google 고급 검색
    - - GitHub - - 상세한 - -
    이것은 Google 고급 검색 양식에 대한 사용자 스크립트 추가。페이지 상단에 숨길 수 있는 고급 검색 양식을 추가합니다.,보다 정확하게 정보를 검색할 수 있습니다.。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-05 10:28:202024-10-03 19:12:380.1.9.452024-08-06 00:32:20
    - - Google 특정 사이트 검색 및 차단
    - - GitHub - - 상세한 - -
    검색 엔진 결과에서 특정 사이트 차단,사용자가 원치 않는 검색 결과를 필터링하도록 지원。 사용자 정의 입력 차단 사이트。체재-zhihu -baidu Google 검색 콘텐츠를 차단하는 데 사용됩니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-07-11 14:21:022024-10-03 19:12:390.0.1.512024-07-27 20:54:01
    GreasyFork관련 스크립트 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - GreasyFork향상에 적합
    - - GitHub - - 상세한 - -
    추가할 링크에 적합한 스크립트 세부정보 페이지가 추가됩니다.,웹페이지 복사,타이어 검색 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-08 05:36:472024-10-03 19:12:390.9.3.662024-07-27 20:54:00
    - - GrreasyFork 사용자 게시 스크립트 데이터 시각화
    - - GitHub - - 상세한 - -
    사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-18 11:41:122024-10-03 19:12:411.1.1.12024-09-19 11:22:00
    - - GreaysFork 향상시키다 WebHook동기화 설정
    - - GitHub - - 상세한 - -
    이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가하세요.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-04 12:12:182024-10-03 19:12:431.1.1.12024-09-04 12:08:47
    - - GreasyFork Markdown toobar
    - - GitHub - - 상세한 - -
    포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-26 02:12:292024-10-03 19:12:402.0.52024-08-06 00:32:53
    - - GreasyFork 스크립트 등급 표시
    - - GitHub - - 상세한 - -
    스크립트 목록에 평가 점수 추가 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-07-19 09:44:012024-10-03 19:12:401.3.3.632024-07-27 20:54:00
    - - GreasyFork 고급 검색
    - - GitHub - - 상세한 - -
    Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 상적 각본 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-26 12:08:492024-10-03 19:12:400.6.5.232024-07-27 20:58:34
    - - GreasyFork 탐색 표시줄 개선
    - - GitHub - - 상세한 - -
    향상시키다greasyfork네비게이션 바,사용자 목록 추가,사용자 콘솔 등 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-07-27 09:34:432024-10-03 19:12:410.3.1.572024-07-27 20:54:01
    - - Greasyfork糊裱匠
    - - GitHub - - 상세한 - -
    향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-08 17:06:262024-10-03 19:12:412.2.0.922024-07-27 20:54:01
    - - Greasyfork 알림 도우미
    - - GitHub - - 상세한 - -
    귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-02 12:36:002024-10-03 19:12:391.5.0.42024-09-02 12:34:55
    - - Script Finder그리스 원숭이 스크립트 찾기
    - - GitHub - - 상세한 - -
    Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-26 06:43:472024-10-03 19:12:460.1.6.802024-07-27 20:54:01
    성인 각본 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - MiSSAV자동 로그인
    - - GitHub - - 상세한 - -
    발각 MisssAV 상태,로그인하지 않으면 자동으로 로그인됩니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-27 04:15:172024-10-03 19:12:441.0.1.72024-08-27 02:45:07
    - - MissAV컬렉션 관리자
    - - GitHub - - 상세한 - -
    miss재생목록 백업,사진 다운로드 및 비디오 정보 저장 지원.로컬 웹페이지 내보내기 수출 지원webdav - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-06-12 10:58:392024-10-03 19:12:441.2.3.732024-07-27 20:54:01
    - - TissAV자동 로그인
    - - GitHub - - 상세한 - -
    발각 TissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-03 08:50:592024-10-03 19:12:471.0.1.82024-09-03 08:52:46
    - - JableTV자동 로그인
    - - GitHub - - 상세한 - -
    발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-09-04 13:43:002024-10-03 19:12:441.0.0.102024-09-04 13:44:42
    자동 번역 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    스크립트 이름스크립트 설명GitHubGreasyfork출시 시간업데이트 시간최신 버전처음으로 생성됨
    - - 외국어 터미네이터
    - - GitHub - - 상세한 - -
    중국어가 아닌 문자 인식,길이가 그 이상인 경우 5 그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그럼 중국어로 바꾸세요,접근 가능해야 함google회로망 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-24 10:37:082024-10-03 19:12:451.4.0.02024-07-27 20:58:35
    - - 웹페이지 번역——중국어로 자동 번역됨
    - - GitHub - - 상세한 - -
    중국어가 아닌 웹페이지의 오른쪽 하단에 표시(왼쪽 하단으로 조정 가능)추가하다 google 번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 - - size -
    설치하다 -
    -
    - - -
    설치하다 -
    -
    2024-08-26 11:37:232024-10-03 19:12:480.31.0.232024-07-27 20:58:34
    - - ---- - -## 설치 방법/스크립트 사용? - -스크립트를 사용하려면,먼저 브라우저를 설치해야 합니다 **Tampermonkey 스크립트 관리자 확장([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** - -- 양식을 클릭하세요 **\[설치하다\]** 스크립트 관리자 설치 인터페이스를 직접 팝업。 -- 만약에 Github 접속 속도가 너무 느림,클릭하여 선택할 수 있습니다. GreasyFork **\[설치하다\]** 다음 후에 확장 프롬프트가 나타납니다.,다시 클릭하세요 **\[설치하다\]** 그게 다야。 - -> [!IMPORTANT] -> -> - _기타 기반 **Chromium** 커널 브라우저(국내 커버 브라우저와 같은)일반적으로 사용할 수 있습니다 Chrome 확장하다。_ -> - _꼭 이용해주세요 **Tampermonkey 공식 버전** 확장하다,其他的用户각본管理器可能导致**제대로 작동하지 않음**脚本。_ -> - _스크립트를 다시 설치하고 싶다면,꼭 기억해주세요 Tampermonkey 펼친**휴지통에서 완전히 삭제**스크립트를 작성한 다음 스크립트를 다시 설치하십시오.。_ - -> _**오프라인 설치 없음 .crx 확장하다?[Chrome、Edge 숨겨진 다시 열기 [드래그 앤 드롭 설치 .crx 확장하다] 기능!](https://zhuanlan.zhihu.com/p/276027099)**_--- - ---- - -## 오픈소스 덕분에 특별히 감사드립니다 - - > [!TIP] -> - XIU2 :+1: -> - 이 저장소 추가 정보 파일이 복사되었습니다.[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)콘텐츠 `브라우저 및 스크립트 관리자` - -> [!TIP] -> - Hmjz100 :+1: -> - 창고에 다 있어요`README.md`파일 배지가 복사되었습니다.[Hmjz100](https://github.com/hmjz100)창고[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)내부[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)문서 배지 스타일 - -> [!TIP] -> - FengFeng :+1: -> - 仓库내부에所有`README.md`파일 헤더 소개 및 설치 내역 표 복사[FengFeng](https://github.com/BonjourFeng)창고[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)파일 내용 -> - 이 창고의 하위 창고`UserScriptsHistory`자동 업데이트 설치 기록 테이블 이미지 코드도 복사되어 사용됩니다.[FengFeng](https://github.com/BonjourFeng)창고[Script-History](https://github.com/BonjourFeng/Script-History)내의 코드[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) - -> [!TIP] -> - 사막의 아들 :+1: -> - 복사됨 [사막의 아들](https://github.com/maboloshi)창고[github-chinese](https://github.com/maboloshi/github-chinese)내의 코드
    -> - 이 창고에는`writer.py` `update-contributors.yml` 다음을 사용하여 복사됨[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)내부 코드 -> - 이 저장소 추가 정보 파일이 복사되었습니다.[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)콘텐츠 `설치 방법/스크립트 사용?` - -> [!TIP] -> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 리우잔펑 :+1: -> - *이 저장소의 자동 번역 및 Action Yankee에게 특별히 감사드립니다.[Adam Lui 리우잔펑](https://github.com/adamlui)훌륭한 아이디어와 코드!* :trollface: -> - *이 창고의 이름 스타일은 양키스에서 영감을 받았습니다.[Adam Lui 리우잔펑](https://github.com/adamlui)고무하다* :trollface: -> - *이 저장소의 추가 정보 파일은 다음에서 제공됩니다.[Adam Lui 리우잔펑](https://github.com/adamlui)자기보고 스타일* :trollface: -> - *스크립트 내의 상호 리디렉션 점프는 다음에서 비롯됩니다.[Adam Lui 리우잔펑](https://github.com/adamlui)자기보고 스타일* :trollface: -> - *이 창고에 있는 모든 것`README.md`이 Yankee 저장소에서 복사되어 사용되는 파일`README.md`문서 레이아웃,구분 기호,암호,아이디어* :trollface: -> - *복사된 양키[Adam Lui 리우잔펑](https://github.com/adamlui) Action 내부 코드* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *복사됨 양키[Adam Lui 리우잔펑](https://github.com/adamlui)Action 내부 코드* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *복사된 양키[Adam Lui 리우잔펑](https://github.com/adamlui)* [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)구분 기호,조판 스타일 :trollface: -> - *복사됨 양키[Adam Lui 리우잔펑](https://github.com/adamlui)Python 내부 코드* [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: - - - - -## 기부자 - - -人民的勤务员 -인민의 하인 - - -기여 목록: [contributors](https://github.com/jaywcjlove/github-action-contributors). 자동으로 생성됨 동생의 노래 - - -## 🌐 브라우저 및 스크립트 관리자 - -| 권장 브라우저 | 설치 관리자 | 브라우저 설치 | -| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | -|
    Chrome 또는 기반으로 Chromium 커널 브라우저[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | -|
    Safari 브라우저(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] 또는 ![][stayr] [Stay] |
    [![][safari]][safari_link] | -|
    Firefox 또는 기반으로 Gecko 커널 브라우저[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | -|
    Opera 브라우저[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | -|
    Via 브라우저(Android)[![][via]][via_link] |
    내장 브라우저 |
    [![][via]][via_link] | -|
    X 브라우저(Android) [![][x]][x_link] |
    내장 브라우저 |
    [![][x]][x_link] | -|
    KIWI 브라우저(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | -|
    여우원숭이 브라우저(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | -| | | | - -[Tampermonkey]: http://tampermonkey.net/ "원숭이를 조작하다" -[Violentmonkey]: https://violentmonkey.github.io/ "난폭한 원숭이" -[Macaque]: https://macaque.app/ "원숭이" -[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png -[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" -[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png -[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png -[opera_link]: https://www.opera.com "opera브라우저" -[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png -[edge_link]: https://www.microsoft.com/edge "edge 브라우저" -[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png -[firefox_link]: https://www.firefox.com "Firefox브라우저" -[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png -[chrome_link]: https://gooogleweb.com/index.html "Chrome브라우저" -[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png -[QQ_link]: https://browser.qq.com/ "QQ브라우저" -[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png -[safari_link]: https://www.apple.com/vn/safari/ "Safari브라우저" -[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png -[via_link]: https://viayoo.com/ "VIA브라우저" -[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png -[x_link]: https://www.xbext.com/ "X브라우저" -[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "난폭한 원숭이" -[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png -[cat_link]: https://docs.scriptcat.org/ "각본 고양이" -[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "원숭이를 조작하다" -[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png -[le_link]: https://lemurbrowser.com/ "여우원숭이 브라우저" -[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg -[kiwi_link]: https://kiwibrowser.com/ "KIWI브라우저" - -

    더 많은 사용자 스크립트 / -맨 위로 돌아가기↑

    - -## License - -The MIT License. diff --git a/docs/README_vi.md b/docs/README_vi.md deleted file mode 100644 index 0c10b7724..000000000 --- a/docs/README_vi.md +++ /dev/null @@ -1,1362 +0,0 @@ - -
    - - -**Kịch bản đến từ đông đảo cư dân mạng trên Internet,Tôi vừa thực hiện một số thay đổi.Cảm ơn cư dân mạng** -**Nếu có sự vi phạm,Liên hệ phải được xóa** - -## [Duyệt thư mục tập lệnh để biết chi tiết](/Script%20details) - -## danh sách kịch bản - - -
    ChatGPTTập lệnh liên quan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - ChatGPTKích thước phông chữ mã giảm
    - - GitHub - - chi tiết - -
    cho phép ChatGPT Kích thước phông chữ mã trở nên nhỏ hơn - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-26 11:42:172024-10-07 07:21:500.1.1.02024-07-27 20:58:35
    - - ChatGPT Nút sao chép mã trò chuyện
    - - GitHub - - chi tiết - -
    hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“Sao chép mã”cái nút - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-22 07:35:202024-10-03 19:12:341.2.0.02024-09-22 07:06:07
    - - ChatGPT bộ đếm ký tự
    - - GitHub - - chi tiết - -
    添加一nhân vật计数器到输入框,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 个字符。) - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-01 09:51:012024-10-07 01:24:321.3.1.142024-09-01 09:45:50
    - - ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa
    - - GitHub - - chi tiết - -
    Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-24 11:33:582024-10-03 19:12:350.3.0.02024-08-24 11:09:34
    Các tập lệnh liên quan đến web - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - Trình quản lý ủy quyền phiên bản clip viết trang web
    - - GitHub - - chi tiết - -
    Cấm các trang web ị trên các phiên bản đã chỉnh sửa,màu xanh lá cây để phát hành,lệnh cấm đỏ,hướng dẫn tạm thời màu cam - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-09 10:17:552024-10-03 19:12:351.2.3.12024-07-27 20:54:00
    - - Thang máyCSDNHạn chế sao chép đăng nhập
    - - GitHub - - chi tiết - -
    chết tiệt bạn CSDN Đăng nhậpSao chép,Sao chép nội dung hộp mã mà không cần đăng nhập - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-26 11:37:222024-10-03 19:12:361.0.0.232024-07-27 20:58:34
    - - Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp
    - - GitHub - - chi tiết - -
    Tự động áp dụng làm đẹp độ dốc màu cho tất cả các cột của bảng trên trang web. - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-06 06:08:082024-10-03 19:12:351.0.0.92024-09-06 05:02:49
    - - Đánh dấu từ khóa trên các trang web+(gợi ý)
    - - GitHub - - chi tiết - -
    Đánh dấu văn bản trên các trang web - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-26 07:05:052024-10-03 19:12:431.1.2.722024-07-27 20:54:01
    - - Làm nổi bật văn bản web_phiên bản nhỏ
    - - GitHub - - chi tiết - -
    Làm nổi bật từ khóa tùy chỉnh trên các trang web bao gồm nội dung được tải động khi cuộn - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-26 06:53:122024-10-03 19:12:431.0.5.262024-08-24 06:02:07
    - - Xem trước cửa sổ nhỏ
    - - GitHub - - chi tiết - -
    Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-24 06:51:352024-10-03 19:12:452.5.1.42024-08-23 07:20:13
    - - Xóa gạch chân liên kết
    - - GitHub - - chi tiết - -
    Xóa gạch chân khỏi liên kết web - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-23 11:35:072024-10-03 19:12:461.2.0.632024-07-27 20:54:00
    - - Nút cuộn nhỏ lên xuống
    - - GitHub - - chi tiết - -
    Thêm nút cuộn lên xuống ở bên phải trang - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-07 08:33:172024-10-03 19:12:471.0.0.262024-08-24 06:05:19
    - - Nút trên và dưới một chạm
    - - GitHub - - chi tiết - -
    Được sửa đổi từGreasyforktập lệnh người dùng Thêm nút trên và dưới vào trang web,Tạo điều kiện di chuyển nhanh lên đầu hoặc cuối trang dài。 Đã thêm thay đổi màu nút khi cuộn xuống,3Tự động dừng nếu không cuộn trong vài giây - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-07-11 13:57:292024-10-03 19:12:471.2.0.722024-07-27 20:54:01
    GitHubTập lệnh liên quan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - GitHubGửi hiển thị thông tinHTML
    - - GitHub - - chi tiết - -
    Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-30 10:13:442024-10-03 19:12:361.0.0.192024-08-30 03:21:51
    - - GitHub Trình làm đẹp danh sách tập tin
    - - GitHub - - chi tiết - -
    GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-12 11:56:172024-10-03 19:12:364.1.0.32024-9-12 10:39:51
    - - Github Danh sách ngôn ngữ mã hiển thị tất cả
    - - GitHub - - chi tiết - -
    Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong “khác” Xuống - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-24 05:30:012024-10-04 05:26:321.0.0.02024-09-24 04:33:03
    - - GitHub Tự động xác nhận ủy quyền thiết bị
    - - GitHub - - chi tiết - -
    hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-18 09:12:312024-10-03 19:12:331.0.0.02024-09-18 08:50:32
    - - GitHubTải xuống thư mục
    - - GitHub - - chi tiết - -
    Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub thư mục。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-28 04:27:352024-10-03 19:12:370.7.0.232024-08-29 06:11:34
    - - GitHubTải xuống các tập tin đơn lẻ và sao chép các tập tinURL
    - - GitHub - - chi tiết - -
    Nút thêm vào cuối mỗi dòng file,để sao chép tập tin gốc URL và tải về các tập tin - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-28 05:20:142024-10-03 19:12:372.2.0.222024-08-29 06:11:33
    - - 🤠 Github Tăng cường trợ lý Kích thước hiển thị kho Cảnh báo phát triển không hoạt động Nhanh chóng chuyển đến các kho khác của người dùng trong kho 🤠
    - - GitHub - - chi tiết - -
    hiện hữuGithubHiển thị kích thước kho khi xem và tìm kiếm kho ,Cảnh báo phát triển không hoạt động,Nhảy nhanh vào kho. - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-01 03:43:192024-10-08 05:13:520.1.3.72024-08-01 00:53:59
    - - GitHub Sort by Date
    - - GitHub - - chi tiết - -
    Thay đổi cách sắp xếp file danh sách kho theo thứ tự ngày giảm dần,Xem thuận tiện các tập tin cập nhật mới nhất。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-26 12:30:532024-10-04 05:23:241.1.0.232024-08-06 01:28:58
    GoogleTập lệnh liên quan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - Google Tìm kiếm nâng cao
    - - GitHub - - chi tiết - -
    Đây là một cho Google Thêm tập lệnh người dùng cho biểu mẫu tìm kiếm nâng cao。Nó thêm một biểu mẫu tìm kiếm nâng cao có thể ẩn ở đầu trang,Giúp bạn tìm kiếm thông tin chính xác hơn。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-05 10:28:202024-10-03 19:12:380.1.9.452024-08-06 00:32:20
    - - Google Tìm kiếm và chặn các trang web cụ thể
    - - GitHub - - chi tiết - -
    Chặn các trang web cụ thể khỏi kết quả của công cụ tìm kiếm,Giúp người dùng lọc ra các kết quả tìm kiếm không mong muốn。 Trang web chặn đầu vào tùy chỉnh。Định dạng-zhihu -baidu Được sử dụng để chặn nội dung tìm kiếm của Google - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-07-11 14:21:022024-10-03 19:12:390.0.1.512024-07-27 20:54:01
    GreasyForkTập lệnh liên quan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - GreasyForkthích hợp để nâng cao
    - - GitHub - - chi tiết - -
    Trang chi tiết tập lệnh được thêm vào. Nó phù hợp để thêm các liên kết.,Sao chép trang web,tìm kiếm lốp xe - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-08 05:36:472024-10-03 19:12:390.9.3.662024-07-27 20:54:00
    - - GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản
    - - GitHub - - chi tiết - -
    sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-18 11:41:122024-10-03 19:12:411.1.1.12024-09-19 11:22:00
    - - GreaysFork Nâng cao WebHookĐồng bộ hóa cài đặt
    - - GitHub - - chi tiết - -
    Tập lệnh này có thể giúp bạn nhập nhanh thông tin đồng bộ hóa tập lệnh,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi đến URL tương ứng。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-04 12:12:182024-10-03 19:12:431.1.1.12024-09-04 12:08:47
    - - GreasyFork Markdown toobar
    - - GitHub - - chi tiết - -
    Được sử dụng theo mặc định trong diễn đàn Markdown Định dạng,Thêm liên kết trợ giúp định dạng và Markdown Giới thiệu thanh công cụ - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-26 02:12:292024-10-03 19:12:402.0.52024-08-06 00:32:53
    - - GreasyFork Hiển thị xếp hạng kịch bản
    - - GitHub - - chi tiết - -
    Thêm điểm đánh giá vào danh sách tập lệnh - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-07-19 09:44:012024-10-03 19:12:401.3.3.632024-07-27 20:54:00
    - - GreasyFork Tìm kiếm nâng cao
    - - GitHub - - chi tiết - -
    Tìm kiếm bằng Google GreasyFork Và SleazyFork kịch bản cao cấp - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-26 12:08:492024-10-03 19:12:400.6.5.232024-07-27 20:58:34
    - - GreasyFork Cải tiến thanh điều hướng
    - - GitHub - - chi tiết - -
    Nâng caogreasyforkThanh điều hướng,Thêm danh sách người dùng,Bảng điều khiển người dùng, v.v. - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-07-27 09:34:432024-10-03 19:12:410.3.1.572024-07-27 20:54:01
    - - GreasyforkThợ keo
    - - GitHub - - chi tiết - -
    Nâng caogreasyfork,Sao chép mã,Tải xuống tập lệnh,Thời gian chính xác đến từng giây,Dọn dẹp trang chủ,Thảo luận về báo cáo bằng một cú nhấp chuột,Đã thêm mã nhảy danh sách tập lệnh tải xuống Làm đẹp mã xem và hiển thị các tệp tham chiếu mã,hiển thị biểu tượng tập lệnh,Chuyển đến tập lệnh dành cho người lớn và các thao tác khác - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-08 17:06:262024-10-03 19:12:412.2.0.922024-07-27 20:54:01
    - - Greasyfork Trợ lý thông báo
    - - GitHub - - chi tiết - -
    Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Kịch bản sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-02 12:36:002024-10-03 19:12:391.5.0.42024-09-02 12:34:55
    - - Script FinderCông cụ tìm tập lệnh Grease Monkey
    - - GitHub - - chi tiết - -
    Script Finder là một tập lệnh người dùng(userscript),Nó giúp bạn tìm và quản lý mô tả người dùng trên bất kỳ trang web nào - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-26 06:43:472024-10-03 19:12:460.1.6.802024-07-27 20:54:01
    kịch bản người lớn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - MiSSAVĐăng nhập tự động
    - - GitHub - - chi tiết - -
    Phát hiện MisssAV tình trạng,và tự động đăng nhập khi chưa đăng nhập - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-27 04:15:172024-10-03 19:12:441.0.1.72024-08-27 02:45:07
    - - MissAVNgười quản lý bộ sưu tập
    - - GitHub - - chi tiết - -
    missSao lưu danh sách phát,Hỗ trợ tải hình ảnh và lưu thông tin video.Xuất trang web địa phương Hỗ trợ xuất khẩu sangwebdav - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-06-12 10:58:392024-10-03 19:12:441.2.3.732024-07-27 20:54:01
    - - TissAVĐăng nhập tự động
    - - GitHub - - chi tiết - -
    Phát hiện TissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-03 08:50:592024-10-03 19:12:471.0.1.82024-09-03 08:52:46
    - - JableTVĐăng nhập tự động
    - - GitHub - - chi tiết - -
    Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-09-04 13:43:002024-10-03 19:12:441.0.0.102024-09-04 13:44:42
    dịch tự động - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Tên tập lệnhMô tả kịch bảnGitHubGreasyforkThời gian phát hànhThời gian cập nhậtphiên bản mới nhấtĐược tạo lần đầu tiên
    - - đầu cuối ngoại ngữ
    - - GitHub - - chi tiết - -
    Nhận biết các ký tự không phải tiếng Trung,Nếu chiều dài lớn hơn 5 Và văn bản dịch không chứa tiếng Trung Quốc,sau đó thay thế bằng tiếng Trung,Cần có thể truy cập đượcgooglemạng - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-24 10:37:082024-10-03 19:12:451.4.0.02024-07-27 20:58:35
    - - dịch trang web——Tự động dịch sang tiếng Trung
    - - GitHub - - chi tiết - -
    Cung cấp góc dưới bên phải của mỗi trang web không phải tiếng Trung Quốc(Có thể điều chỉnh ở góc dưới bên trái)thêm một google Biểu tượng dịch,Phiên bản này là phiên bản dịch tiếng Trung,Chỉ dịch tiếng nước ngoài sang tiếng Trung,Thêm bản dịch tự động - - size -
    Cài đặt -
    -
    - - -
    Cài đặt -
    -
    2024-08-26 11:37:232024-10-03 19:12:480.31.0.232024-07-27 20:58:34
    - - ---- - -## Cách cài đặt/Sử dụng tập lệnh? - -Để sử dụng bất kỳ tập lệnh nào,Đầu tiên bạn cần cài đặt trình duyệt **Tampermonkey Tiện ích mở rộng Trình quản lý tập lệnh([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** - -- Bấm vào biểu mẫu **\[Cài đặt\]** Trực tiếp bật lên giao diện cài đặt trình quản lý tập lệnh。 -- nếu như Github Tốc độ truy cập quá chậm,Bạn có thể chọn bấm GreasyFork **\[Cài đặt\]** Lời nhắc tiện ích mở rộng bật lên sau,Bấm lại **\[Cài đặt\]** Thế thôi。 - -> [!IMPORTANT] -> -> - _Những người khác dựa trên **Chromium** Trình duyệt hạt nhân(Chẳng hạn như trình duyệt bìa trong nước)Nói chung có thể được sử dụng Chrome Mở rộng。_ -> - _Hãy đảm bảo sử dụng **Tampermonkey Phiên bản chính thức** Mở rộng,其他的用户Kịch bản管理器可能导致**Không hoạt động đúng cách**脚本。_ -> - _Nếu bạn muốn cài đặt lại tập lệnh,Xin hãy nhớ Tampermonkey mở rộng**Xóa hoàn toàn khỏi thùng rác**Tập lệnh và sau đó cài đặt lại tập lệnh。_ - -> _**Không cài đặt ngoại tuyến .crx Mở rộng?[Chrome、Edge Mở lại ẩn [Cài đặt kéo và thả .crx Mở rộng] Chức năng!](https://zhuanlan.zhihu.com/p/276027099)**_--- - ---- - -## Đặc biệt cảm ơn nguồn mở - - > [!TIP] -> - XIU2 :+1: -> - Tệp readme kho lưu trữ này được sao chép[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)nội dung `Trình quản lý trình duyệt và tập lệnh` - -> [!TIP] -> - Hmjz100 :+1: -> - Tất cả đều có trong kho`README.md`Đã sao chép huy hiệu tệp[Hmjz100](https://github.com/hmjz100)kho[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)nội bộ[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)Kiểu huy hiệu tài liệu - -> [!TIP] -> - FengFeng :+1: -> - 仓库Bên trong所有`README.md`Đã sao chép phần giới thiệu tiêu đề tệp và bảng cài đặt lịch sử[FengFeng](https://github.com/BonjourFeng)kho[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)Nội dung tập tin -> - Kho phụ của kho này`UserScriptsHistory`Mã hình ảnh bảng lịch sử cài đặt cập nhật tự động cũng được sao chép và sử dụng.[FengFeng](https://github.com/BonjourFeng)kho[Script-History](https://github.com/BonjourFeng/Script-History)mã bên trong[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) - -> [!TIP] -> - đứa con của sa mạc :+1: -> - Đã sao chép [đứa con của sa mạc](https://github.com/maboloshi)kho[github-chinese](https://github.com/maboloshi/github-chinese)mã bên trong
    -> - Trong kho này`writer.py` `update-contributors.yml` Sao chép bằng cách sử dụng[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)mã bên trong -> - Tệp readme kho lưu trữ này được sao chép[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)nội dung `Cách cài đặt/Sử dụng tập lệnh?` - -> [!TIP] -> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui Lưu Triển Bằng :+1: -> - *Dịch tự động kho lưu trữ này và Action Cảm ơn đặc biệt đến Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Ý tưởng và mã tuyệt vời!* :trollface: -> - *Phong cách đặt tên của nhà kho này được lấy cảm hứng từ đội Yankees[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Truyền cảm hứng* :trollface: -> - *Tệp readme trong kho lưu trữ này đến từ[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)phong cách tự báo cáo* :trollface: -> - *Bước nhảy chuyển hướng lẫn nhau trong tập lệnh xuất phát từ[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)phong cách tự báo cáo* :trollface: -> - *Tất cả trong kho này`README.md`Tệp được sao chép và sử dụng từ kho lưu trữ Yankee này`README.md`Bố cục tài liệu,dấu phân cách,mã số,Ý tưởng* :trollface: -> - *sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui) Action mã nội bộ* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *Đã sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Action mã nội bộ* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)* [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)dấu phân cách,Kiểu sắp chữ :trollface: -> - *Đã sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Python mã nội bộ* [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: - - - - -## Người đóng góp - - -人民的勤务员 -công chức tôi tớ nhân dân - - -Danh sách đóng góp của: [contributors](https://github.com/jaywcjlove/github-action-contributors). Được tạo tự động Giai điệu của em trai - - -## 🌐 Trình quản lý trình duyệt và tập lệnh - -| Trình duyệt được đề xuất | Trình quản lý cài đặt | Cài đặt trình duyệt | -| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | -|
    Chrome hoặc dựa trên Chromium Trình duyệt hạt nhân[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | -|
    Safari Trình duyệt(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] hoặc ![][stayr] [Stay] |
    [![][safari]][safari_link] | -|
    Firefox hoặc dựa trên Gecko Trình duyệt hạt nhân[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | -|
    Opera Trình duyệt[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | -|
    Via Trình duyệt(Android)[![][via]][via_link] |
    Trình duyệt tích hợp |
    [![][via]][via_link] | -|
    X Trình duyệt(Android) [![][x]][x_link] |
    Trình duyệt tích hợp |
    [![][x]][x_link] | -|
    KIWI Trình duyệt(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | -|
    Trình duyệt vượn cáo(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | -| | | | - -[Tampermonkey]: http://tampermonkey.net/ "khỉ giả mạo" -[Violentmonkey]: https://violentmonkey.github.io/ "khỉ hung bạo" -[Macaque]: https://macaque.app/ "khỉ" -[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png -[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" -[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png -[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png -[opera_link]: https://www.opera.com "operaTrình duyệt" -[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png -[edge_link]: https://www.microsoft.com/edge "edge Trình duyệt" -[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png -[firefox_link]: https://www.firefox.com "FirefoxTrình duyệt" -[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png -[chrome_link]: https://gooogleweb.com/index.html "ChromeTrình duyệt" -[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png -[QQ_link]: https://browser.qq.com/ "QQTrình duyệt" -[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png -[safari_link]: https://www.apple.com/vn/safari/ "SafariTrình duyệt" -[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png -[via_link]: https://viayoo.com/ "VIATrình duyệt" -[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png -[x_link]: https://www.xbext.com/ "XTrình duyệt" -[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "khỉ hung bạo" -[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png -[cat_link]: https://docs.scriptcat.org/ "kịch bản mèo" -[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "khỉ giả mạo" -[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png -[le_link]: https://lemurbrowser.com/ "Trình duyệt vượn cáo" -[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg -[kiwi_link]: https://kiwibrowser.com/ "KIWITrình duyệt" - -

    Nhiều tập lệnh người dùng hơn / -trở lại đầu trang↑

    - -## License - -The MIT License. diff --git a/docs/README_zh-TW.md b/docs/README_zh-TW.md deleted file mode 100644 index 3122d9374..000000000 --- a/docs/README_zh-TW.md +++ /dev/null @@ -1,1362 +0,0 @@ - -
    - - -**劇本來自網路廣大網友,本人僅是做了些許改動.感謝網友** -**如有侵權,聯繫必刪** - -## [瀏覽腳本目錄查看詳細](/Script%20details) - -## 腳本列表 - - -
    ChatGPT相關腳本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - ChatGPT程式碼字體縮小
    - - GitHub - - 詳細 - -
    讓 ChatGPT 程式碼字體變小 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-26 11:42:172024-10-07 07:21:500.1.1.02024-07-27 20:58:35
    - - ChatGPT 聊天複製代碼按鈕
    - - GitHub - - 詳細 - -
    在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-22 07:35:202024-10-03 19:12:341.2.0.02024-09-22 07:06:07
    - - ChatGPT 字元計數器
    - - GitHub - - 詳細 - -
    添加一個字元计数器到输入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 个字符。) - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-01 09:51:012024-10-07 01:24:321.3.1.142024-09-01 09:45:50
    - - ChatGPT 折疊自己訊息和最大寬度
    - - GitHub - - 詳細 - -
    自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-24 11:33:582024-10-03 19:12:350.3.0.02024-08-24 11:09:34
    網頁相關腳本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - 網頁寫入剪輯版授權管理員
    - - GitHub - - 詳細 - -
    禁止網頁向剪輯版拉屎,綠色為放行,紅色禁止,橙色臨時方向 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-09 10:17:552024-10-03 19:12:351.2.3.12024-07-27 20:54:00
    - - 解除CSDN登入複製限制
    - - GitHub - - 詳細 - -
    去你媽的 CSDN 登入複製,無需登入即可複製程式碼框內容 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-26 11:37:222024-10-03 19:12:361.0.0.232024-07-27 20:58:34
    - - 絢麗漸層美化網頁表格
    - - GitHub - - 詳細 - -
    自動為網頁上的表格所有欄位套用顏色漸層美化. - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-06 06:08:082024-10-03 19:12:351.0.0.92024-09-06 05:02:49
    - - 網頁高亮關鍵字+(推薦)
    - - GitHub - - 詳細 - -
    對網頁上的文字進行高亮顯示 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-26 07:05:052024-10-03 19:12:431.1.2.722024-07-27 20:54:01
    - - 高亮網頁文本_迷你版
    - - GitHub - - 詳細 - -
    在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-26 06:53:122024-10-03 19:12:431.0.5.262024-08-24 06:02:07
    - - 小視窗預覽
    - - GitHub - - 詳細 - -
    拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-24 06:51:352024-10-03 19:12:452.5.1.42024-08-23 07:20:13
    - - 去除連結下劃線
    - - GitHub - - 詳細 - -
    去除網頁連結的下劃線 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-23 11:35:072024-10-03 19:12:461.2.0.632024-07-27 20:54:00
    - - 上下滾動小按鈕
    - - GitHub - - 詳細 - -
    頁面右側新增上下滾動按鈕 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-07 08:33:172024-10-03 19:12:471.0.0.262024-08-24 06:05:19
    - - 一鍵置頂和置底按鈕
    - - GitHub - - 詳細 - -
    修改自Greasyfork使用者腳本 為網頁新增置頂和置底按鈕,方便在長頁面中快速移動到頂部或底部。 增加向下滾動時按鈕變色,3秒內無滾動自動停止 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-07-11 13:57:292024-10-03 19:12:471.2.0.722024-07-27 20:54:01
    GitHub相關腳本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - GitHub提交資訊顯示HTML
    - - GitHub - - 詳細 - -
    該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-30 10:13:442024-10-03 19:12:361.0.0.192024-08-30 03:21:51
    - - GitHub 文件清單美化器
    - - GitHub - - 詳細 - -
    GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-12 11:56:172024-10-03 19:12:364.1.0.32024-9-12 10:39:51
    - - Github 代碼語言列表顯示全部
    - - GitHub - - 詳細 - -
    擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在 “其他” 下 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-24 05:30:012024-10-04 05:26:321.0.0.02024-09-24 04:33:03
    - - GitHub 自動確認設備授權
    - - GitHub - - 詳細 - -
    在GitHub授權頁面自動輸入授權碼與自動確認。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-18 09:12:312024-10-03 19:12:331.0.0.02024-09-18 08:50:32
    - - GitHub資料夾下載
    - - GitHub - - 詳細 - -
    新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-28 04:27:352024-10-03 19:12:370.7.0.232024-08-29 06:11:34
    - - GitHub下載單一文件和複製文件URL
    - - GitHub - - 詳細 - -
    在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-28 05:20:142024-10-03 19:12:372.2.0.222024-08-29 06:11:33
    - - 🤠 Github 增強助手 倉庫顯示大小 不活躍開發警告 倉庫內快速跳轉用戶其他倉庫 🤠
    - - GitHub - - 詳細 - -
    在Github查看倉庫和搜尋倉庫時顯示倉庫大小 ,不活躍開發警告,倉庫內快捷跳轉. - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-01 03:43:192024-10-08 05:13:520.1.3.72024-08-01 00:53:59
    - - GitHub Sort by Date
    - - GitHub - - 詳細 - -
    倉庫列表文件排序方式改為日期降序,方便查看最新更新的文件。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-26 12:30:532024-10-04 05:23:241.1.0.232024-08-06 01:28:58
    Google相關腳本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - Google 進階搜尋
    - - GitHub - - 詳細 - -
    這是一個為 Google 新增進階搜尋表單的使用者腳本。它能在頁面頂部添加一個可隱藏的高級搜尋表單,使您能夠更精確地搜尋訊息。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-05 10:28:202024-10-03 19:12:380.1.9.452024-08-06 00:32:20
    - - Google 搜尋屏蔽指定站點
    - - GitHub - - 詳細 - -
    在搜尋引擎結果中封鎖特定的站點,幫助用戶過濾掉不需要的搜尋結果。 自訂輸入屏蔽站點。格式-zhihu -baidu 用於封鎖谷歌搜尋內容 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-07-11 14:21:022024-10-03 19:12:390.0.1.512024-07-27 20:54:01
    GreasyFork相關腳本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - GreasyFork適用於增強
    - - GitHub - - 詳細 - -
    腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-08 05:36:472024-10-03 19:12:390.9.3.662024-07-27 20:54:00
    - - GrreasyFork 用戶發布的腳本資料視覺化
    - - GitHub - - 詳細 - -
    使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝狀況 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-18 11:41:122024-10-03 19:12:411.1.1.12024-09-19 11:22:00
    - - GreaysFork 增強 WebHook同步設定
    - - GitHub - - 詳細 - -
    這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-04 12:12:182024-10-03 19:12:431.1.1.12024-09-04 12:08:47
    - - GreasyFork Markdown toobar
    - - GitHub - - 詳細 - -
    在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-26 02:12:292024-10-03 19:12:402.0.52024-08-06 00:32:53
    - - GreasyFork 顯示腳本評分
    - - GitHub - - 詳細 - -
    腳本清單新增評價分數 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-07-19 09:44:012024-10-03 19:12:401.3.3.632024-07-27 20:54:00
    - - GreasyFork 進階搜尋
    - - GitHub - - 詳細 - -
    使用谷歌搜尋 GreasyFork 和 SleazyFork 上級腳本 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-26 12:08:492024-10-03 19:12:400.6.5.232024-07-27 20:58:34
    - - GreasyFork 導覽列增強
    - - GitHub - - 詳細 - -
    增強greasyfork導覽列,增加用戶列表,使用者控制台等 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-07-27 09:34:432024-10-03 19:12:410.3.1.572024-07-27 20:54:01
    - - Greasyfork膠水工匠
    - - GitHub - - 詳細 - -
    增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-08 17:06:262024-10-03 19:12:412.2.0.922024-07-27 20:54:01
    - - Greasyfork 通知助手
    - - GitHub - - 詳細 - -
    當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-02 12:36:002024-10-03 19:12:391.5.0.42024-09-02 12:34:55
    - - Script Finder油猴腳本查找器
    - - GitHub - - 詳細 - -
    Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-26 06:43:472024-10-03 19:12:460.1.6.802024-07-27 20:54:01
    成人劇本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - MiSSAV自動登入
    - - GitHub - - 詳細 - -
    偵測 MisssAV 狀態,並且在未登入時自動登入 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-27 04:15:172024-10-03 19:12:441.0.1.72024-08-27 02:45:07
    - - MissAV收藏管理器
    - - GitHub - - 詳細 - -
    miss單張備份,支援下載圖片保存影片訊息.導出本地網頁 支援導出到webdav - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-06-12 10:58:392024-10-03 19:12:441.2.3.732024-07-27 20:54:01
    - - TissAV自動登入
    - - GitHub - - 詳細 - -
    偵測 TissAV 狀態,並且在未登入時自動登入 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-03 08:50:592024-10-03 19:12:471.0.1.82024-09-03 08:52:46
    - - JableTV自動登入
    - - GitHub - - 詳細 - -
    偵測 JableTV 狀態,並且在未登入時自動登入 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-09-04 13:43:002024-10-03 19:12:441.0.0.102024-09-04 13:44:42
    自動翻譯 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    腳本名稱腳本說明GitHubGreasyfork發佈時間更新時間最新版本首次創建
    - - 外語終結者
    - - GitHub - - 詳細 - -
    識別非中文字符,如果長度大於 5 且翻譯文中不含中文,則替換為中文,需要可訪問google的網路 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-24 10:37:082024-10-03 19:12:451.4.0.02024-07-27 20:58:35
    - - 網頁翻譯——自動翻譯為中文
    - - GitHub - - 詳細 - -
    給每個非中文的網頁右下角(可以調整到左下角)添加一個 google 翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 - - size -
    安裝 -
    -
    - - -
    安裝 -
    -
    2024-08-26 11:37:232024-10-03 19:12:480.31.0.232024-07-27 20:58:34
    - - ---- - -## 如何安裝/使用腳本? - -要使用任何腳本,首先需要瀏覽器安裝 **Tampermonkey 腳本管理器擴充([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** - -- 點擊表格 **\[安裝\]** 直接彈出腳本管理器安裝介面。 -- 如果 Github 訪問速度太慢,可以選擇點擊 GreasyFork **\[安裝\]** 後彈出擴展提示,再去點擊 **\[安裝\]** 即可。 - -> [!IMPORTANT] -> -> - _其他基於 **Chromium** 內核的瀏覽器(如國內套皮瀏覽器)一般都可以使用 Chrome 擴充。_ -> - _請確保使用 **Tampermonkey 正式版** 擴充,其他的用户腳本管理器可能导致**無法正常使用**脚本。_ -> - _如果要重裝腳本,請記得在 Tampermonkey 擴充的**回收站中徹底刪除**腳本後再去重新安裝腳本。_ - -> _**不會離線安裝 .crx 擴充?[Chrome、Edge 重新開啟隱藏的 [拖入安裝 .crx 擴充] 功能!](https://zhuanlan.zhihu.com/p/276027099)**_--- - ---- - -## 特別感謝開源 - - > [!TIP] -> - XIU2 :+1: -> - 本倉庫自述文件複製了[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)內容 `瀏覽器與腳本管理器` - -> [!TIP] -> - Hmjz100 :+1: -> - 倉庫內所有`README.md`文件徽章複製了[Hmjz100](https://github.com/hmjz100)的倉庫[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)內部的[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)文件的徽章風格 - -> [!TIP] -> - FengFeng :+1: -> - 仓库內所有`README.md`文件頭部簡介與歷史安裝表格複製了[FengFeng](https://github.com/BonjourFeng)的倉庫[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)文件內容 -> - 本倉庫的子倉庫`UserScriptsHistory`自動更新安裝歷史表格圖片程式碼也複製使用了[FengFeng](https://github.com/BonjourFeng)的倉庫[Script-History](https://github.com/BonjourFeng/Script-History)內的程式碼[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) - -> [!TIP] -> - 沙漠之子 :+1: -> - 複製了 [沙漠之子](https://github.com/maboloshi)的倉庫[github-chinese](https://github.com/maboloshi/github-chinese)內的程式碼
    -> - 本倉庫內`writer.py` `update-contributors.yml` 複製使用了[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)裡面的程式碼 -> - 本倉庫自述文件複製了[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)內容 `如何安裝/使用腳本?` - -> [!TIP] -> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 劉展鵬 :+1: -> - *本倉庫的自動翻譯與 Action 功能特別感謝美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)出色的想法與代碼!* :trollface: -> - *本倉庫命名風格受美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)啟發* :trollface: -> - *本倉庫內自述文件來自[Adam Lui 劉展鵬](https://github.com/adamlui)的自述風格* :trollface: -> - *腳本內的相互導流跳轉來自[Adam Lui 劉展鵬](https://github.com/adamlui)的自述風格* :trollface: -> - *本倉庫內所有`README.md`文件複製並使用了這個美國佬的倉庫`README.md`文件排版,分隔符,程式碼,思路* :trollface: -> - *複製了美國佬[Adam Lui 劉展鵬](https://github.com/adamlui) Action 內程式碼* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *複製了 美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)Action 內程式碼* [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: -> - *複製了美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)* [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)分隔符,等排版風格 :trollface: -> - *複製了 美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)Python 內程式碼* [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: - - - - -## 貢獻者 - - -人民的勤务员 -人民的勤務員的勤務員 - - -貢獻列表由: [contributors](https://github.com/jaywcjlove/github-action-contributors). 自動生成 小弟調調 - - -## 🌐 瀏覽器與腳本管理器 - -| 推薦瀏覽器 | 安裝管理器 | 安裝瀏覽器 | -| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | -|
    Chrome 或 基於 Chromium 內核的瀏覽器[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | -|
    Safari 瀏覽器(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] 或 ![][stayr] [Stay] |
    [![][safari]][safari_link] | -|
    Firefox 或 基於 Gecko 內核的瀏覽器[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | -|
    Opera 瀏覽器[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | -|
    Via 瀏覽器(Android)[![][via]][via_link] |
    瀏覽器內自帶 |
    [![][via]][via_link] | -|
    X 瀏覽器(Android) [![][x]][x_link] |
    瀏覽器內自帶 |
    [![][x]][x_link] | -|
    KIWI 瀏覽器(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | -|
    狐猴瀏覽器(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | -| | | | - -[Tampermonkey]: http://tampermonkey.net/ "篡改猴" -[Violentmonkey]: https://violentmonkey.github.io/ "暴力猴" -[Macaque]: https://macaque.app/ "奇異果" -[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png -[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" -[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png -[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png -[opera_link]: https://www.opera.com "opera瀏覽器" -[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png -[edge_link]: https://www.microsoft.com/edge "edge 瀏覽器" -[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png -[firefox_link]: https://www.firefox.com "Firefox瀏覽器" -[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png -[chrome_link]: https://gooogleweb.com/index.html "Chrome瀏覽器" -[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png -[QQ_link]: https://browser.qq.com/ "QQ瀏覽器" -[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png -[safari_link]: https://www.apple.com/vn/safari/ "Safari瀏覽器" -[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png -[via_link]: https://viayoo.com/ "VIA瀏覽器" -[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png -[x_link]: https://www.xbext.com/ "X瀏覽器" -[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "暴力猴" -[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png -[cat_link]: https://docs.scriptcat.org/ "腳本貓" -[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "篡改猴" -[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png -[le_link]: https://lemurbrowser.com/ "狐猴瀏覽器" -[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg -[kiwi_link]: https://kiwibrowser.com/ "KIWI瀏覽器" - -

    更多用戶腳本 / -回到頂部↑

    - -## License - -The MIT License. diff --git a/docs/SECURITY.md b/docs/SECURITY.md new file mode 100644 index 000000000..93871d079 --- /dev/null +++ b/docs/SECURITY.md @@ -0,0 +1,18 @@ +
    +
    + + + + +  简体中文 | + English +
    +
    + +# 🛡️ 安全政策 + +
    + +如果您发现漏洞,请打开一个[安全建议草案](https://github.com/ChinaGodMan/UserScripts/security/advisories/new)。 + +也欢迎拉取请求,但出于安全原因,请发送电子邮件至 并在公开之前等待回复。 diff --git a/docs/ScriptsPath.json b/docs/ScriptsPath.json index 348e22704..c44d3b22c 100644 --- a/docs/ScriptsPath.json +++ b/docs/ScriptsPath.json @@ -1,515 +1,648 @@ { - "scripts": [ - { - "isUpdated": true, - "name": "ChatGPT代码字体缩小", - "description": "让 ChatGPT 代码字体变小", - "relatedscripts": "ChatGPT相关脚本", - "path": "chatgpt-code-styling.user.js", - "backuppath": "Script details/chatgpt-code-styling", - "version": "0.1.1.0", - "GreasyFork": "505209", - "created_at": "2024-08-26 11:42:17", - "code_updated_at": "2024-10-07 07:21:50", - "local_created_at": "2024-07-27 20:58:35" - }, - { - "isUpdated": true, - "name": "ChatGPT 聊天复制代码按钮", - "description": "在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮", - "relatedscripts": "ChatGPT相关脚本", - "path": "chatgpt-copy-code-button.user.js", - "backuppath": "Script details/chatgpt-copy-code-button", - "version": "1.2.0.0", - "GreasyFork": "509598", - "created_at": "2024-09-22 07:35:20", - "code_updated_at": "2024-10-03 19:12:34", - "local_created_at": "2024-09-22 07:06:07" - }, - { - "isUpdated": true, - "name": "ChatGPT 字符计数器", - "description": "添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。)", - "relatedscripts": "ChatGPT相关脚本", - "path": "chatgpt-counter.user.js", - "backuppath": "Script details/chatgpt-counter", - "version": "1.3.1.14", - "GreasyFork": "506166", - "created_at": "2024-09-01 09:51:01", - "code_updated_at": "2024-10-07 01:24:32", - "local_created_at": "2024-09-01 09:45:50" - }, - { - "isUpdated": true, - "name": "ChatGPT 折叠自己消息和最大宽度", - "description": "自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。", - "relatedscripts": "ChatGPT相关脚本", - "path": "chatgpt-plus.user.js", - "backuppath": "Script details/chatgpt-plus", - "version": "0.3.0.0", - "GreasyFork": "504901", - "created_at": "2024-08-24 11:33:58", - "code_updated_at": "2024-10-03 19:12:35", - "local_created_at": "2024-08-24 11:09:34" - }, - { - "isUpdated": true, - "name": "网页写入剪辑版授权管理器", - "description": "禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向", - "relatedscripts": "网页相关脚本", - "path": "clipboard-manager.user.js", - "backuppath": "Script details/clipboard-manager", - "version": "1.2.3.1", - "GreasyFork": "497403", - "created_at": "2024-06-09 10:17:55", - "code_updated_at": "2024-10-03 19:12:35", - "local_created_at": "2024-07-27 20:54:00" - }, - { - "isUpdated": true, - "name": "解除CSDN登录复制限制", - "description": "去你妈的 CSDN 登录复制,无需登录即可复制代码框内容", - "relatedscripts": "网页相关脚本", - "path": "csdn-blocker.user.js", - "backuppath": "Script details/csdn-blocker", - "version": "1.0.0.23", - "GreasyFork": "505207", - "created_at": "2024-08-26 11:37:22", - "code_updated_at": "2024-10-03 19:12:36", - "local_created_at": "2024-07-27 20:58:34" - }, - { - "isUpdated": true, - "name": "绚丽渐变美化网页表格", - "description": "自动为网页上的表格所有列应用颜色渐变美化.", - "relatedscripts": "网页相关脚本", - "path": "colorful-table.user.js", - "backuppath": "Script details/colorful-table", - "version": "1.0.0.9", - "GreasyFork": "507036", - "created_at": "2024-09-06 06:08:08", - "code_updated_at": "2024-10-03 19:12:35", - "local_created_at": "2024-09-06 05:02:49" - }, - { - "isUpdated": true, - "name": "GitHub提交信息显示HTML", - "description": "该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。", - "relatedscripts": "GitHub相关脚本", - "path": "github-commit-viewer.user.js", - "backuppath": "Script details/github-commit-viewer", - "version": "1.0.0.19", - "GreasyFork": "505830", - "created_at": "2024-08-30 10:13:44", - "code_updated_at": "2024-10-03 19:12:36", - "local_created_at": "2024-08-30 03:21:51" - }, - { - "isUpdated": true, - "name": "GitHub 文件列表美化器", - "description": "GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。", - "relatedscripts": "GitHub相关脚本", - "path": "github-file-list-beautifier-plus.user.js", - "backuppath": "Script details/github-file-list-beautifier-plus", - "version": "4.1.0.3", - "GreasyFork": "508047", - "created_at": "2024-09-12 11:56:17", - "code_updated_at": "2024-10-03 19:12:36", - "local_created_at": "2024-9-12 10:39:51" - }, - { - "isUpdated": true, - "name": "Github 代码语言列表显示全部", - "description": "扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下", - "relatedscripts": "GitHub相关脚本", - "path": "github-linguist-expand.user.js", - "backuppath": "Script details/github-linguist-expand", - "version": "1.0.0.0", - "GreasyFork": "509889", - "created_at": "2024-09-24 05:30:01", - "code_updated_at": "2024-10-04 05:26:32", - "local_created_at": "2024-09-24 04:33:03" - }, - { - "isUpdated": true, - "name": "GitHub 自动确认设备授权", - "description": "在GitHub授权页面自动输入授权码与自动确认。", - "relatedscripts": "GitHub相关脚本", - "path": "github-device-authorization.user.js", - "backuppath": "Script details/github-device-authorization", - "version": "1.0.0.0", - "GreasyFork": "508956", - "created_at": "2024-09-18 09:12:31", - "code_updated_at": "2024-10-03 19:12:33", - "local_created_at": "2024-09-18 08:50:32" - }, - { - "isUpdated": true, - "name": "GitHub文件夹下载", - "description": "添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。", - "relatedscripts": "GitHub相关脚本", - "path": "github-folder-downloader.user.js", - "backuppath": "Script details/github-folder-downloader", - "version": "0.7.0.23", - "GreasyFork": "505496", - "created_at": "2024-08-28 04:27:35", - "code_updated_at": "2024-10-03 19:12:37", - "local_created_at": "2024-08-29 06:11:34" - }, - { - "isUpdated": true, - "name": "GitHub下载单文件和复制文件URL", - "description": "在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件", - "relatedscripts": "GitHub相关脚本", - "path": "github-raw-file-plus.user.js", - "backuppath": "Script details/github-raw-file-plus", - "version": "2.2.0.22", - "GreasyFork": "505501", - "created_at": "2024-08-28 05:20:14", - "code_updated_at": "2024-10-03 19:12:37", - "local_created_at": "2024-08-29 06:11:33" - }, - { - "isUpdated": true, - "name": "🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠", - "description": "在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转.", - "relatedscripts": "GitHub相关脚本", - "path": "github-repo-size-view.user.js", - "backuppath": "Script details/github-repo-size-view", - "version": "0.1.3.7", - "GreasyFork": "502291", - "created_at": "2024-08-01 03:43:19", - "code_updated_at": "2024-10-08 05:13:52", - "local_created_at": "2024-08-01 00:53:59" - }, - { - "isUpdated": true, - "name": "GitHub Sort by Date", - "description": "仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。", - "relatedscripts": "GitHub相关脚本", - "path": "github-sort-by-date.user.js", - "backuppath": "Script details/github-sort-by-date", - "version": "1.1.0.23", - "GreasyFork": "505218", - "created_at": "2024-08-26 12:30:53", - "code_updated_at": "2024-10-04 05:23:24", - "local_created_at": "2024-08-06 01:28:58" - }, - { - "isUpdated": true, - "name": "Google 高级搜索", - "description": "这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。", - "relatedscripts": "Google相关脚本", - "path": "google-advanced-search.user.js", - "backuppath": "Script details/google-advanced-search", - "version": "0.1.9.45", - "GreasyFork": "502652", - "created_at": "2024-08-05 10:28:20", - "code_updated_at": "2024-10-03 19:12:38", - "local_created_at": "2024-08-06 00:32:20" - }, - { - "isUpdated": true, - "name": "Google 搜索屏蔽指定站点", - "description": "在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容", - "relatedscripts": "Google相关脚本", - "path": "google-block-search-sites.user.js", - "backuppath": "Script details/google-block-search-sites", - "version": "0.0.1.51", - "GreasyFork": "500262", - "created_at": "2024-07-11 14:21:02", - "code_updated_at": "2024-10-03 19:12:39", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "name": "GreasyFork适用于增强", - "description": "脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-link.user.js", - "backuppath": "Script details/greasyfork-link", - "version": "0.9.3.66", - "GreasyFork": "497317", - "created_at": "2024-06-08 05:36:47", - "code_updated_at": "2024-10-03 19:12:39", - "local_created_at": "2024-07-27 20:54:00" - }, - { - "isUpdated": true, - "name": "GrreasyFork 用户发布的脚本数据可视化", - "description": "使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-user-scripts-data-visualization.user.js", - "backuppath": "Script details/greasyfork-user-scripts-data-visualization", - "version": "1.1.1.1", - "GreasyFork": "508968", - "created_at": "2024-09-18 11:41:12", - "code_updated_at": "2024-10-03 19:12:41", - "local_created_at": "2024-09-19 11:22:00" - }, - { - "isUpdated": true, - "name": "GreaysFork 增强 WebHook同步设置", - "description": "这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-webhook-sync-enhanced.user.js", - "backuppath": "Script details/greasyfork-webhook-sync-enhanced", - "version": "1.1.1.1", - "GreasyFork": "506717", - "created_at": "2024-09-04 12:12:18", - "code_updated_at": "2024-10-03 19:12:43", - "local_created_at": "2024-09-04 12:08:47" - }, - { - "isUpdated": true, - "name": "GreasyFork Markdown toobar", - "description": "在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-markdown-toolbar.user.js", - "backuppath": "Script details/greasyfork-markdown-toolbar", - "version": "2.0.5", - "GreasyFork": "505164", - "created_at": "2024-08-26 02:12:29", - "code_updated_at": "2024-10-03 19:12:40", - "local_created_at": "2024-08-06 00:32:53" - }, - { - "isUpdated": true, - "name": "GreasyFork 显示脚本评分", - "description": "脚本列表添加评价分数", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-ranks.user.js", - "backuppath": "Script details/greasyfork-ranks", - "version": "1.3.3.63", - "GreasyFork": "501119", - "created_at": "2024-07-19 09:44:01", - "code_updated_at": "2024-10-03 19:12:40", - "local_created_at": "2024-07-27 20:54:00" - }, - { - "isUpdated": true, - "name": "GreasyFork 高级搜索", - "description": "使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 ", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-search.user.js", - "backuppath": "Script details/greasyfork-search", - "version": "0.6.5.23", - "GreasyFork": "505215", - "created_at": "2024-08-26 12:08:49", - "code_updated_at": "2024-10-03 19:12:40", - "local_created_at": "2024-07-27 20:58:34" - }, - { - "isUpdated": true, - "name": "GreasyFork 导航栏增强", - "description": "增强greasyfork导航栏,增加用户列表,用户控制台等", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-user-control-panel-button.user.js", - "backuppath": "Script details/greasyfork-user-control-panel-button", - "version": "0.3.1.57", - "GreasyFork": "501880", - "created_at": "2024-07-27 09:34:43", - "code_updated_at": "2024-10-03 19:12:41", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "name": "Greasyfork糊裱匠", - "description": "增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-utility-toolkit.user.js", - "backuppath": "Script details/greasyfork-utility-toolkit", - "version": "2.2.0.92", - "GreasyFork": "497346", - "created_at": "2024-06-08 17:06:26", - "code_updated_at": "2024-10-03 19:12:41", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "name": "Greasyfork 通知助手", - "description": "当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。", - "relatedscripts": "GreasyFork相关脚本", - "path": "greasyfork-discussion-watcher.user.js", - "backuppath": "Script details/greasyfork-discussion-watcher", - "version": "1.5.0.4", - "GreasyFork": "506345", - "created_at": "2024-09-02 12:36:00", - "code_updated_at": "2024-10-03 19:12:39", - "local_created_at": "2024-09-02 12:34:55" - }, - { - "isUpdated": true, - "name": "网页高亮关键字+(推荐)", - "description": "对网页上的文字进行高亮显示", - "relatedscripts": "网页相关脚本", - "path": "highlight-keywords.user.js", - "backuppath": "Script details/highlight-keywords", - "version": "1.1.2.72", - "GreasyFork": "498906", - "created_at": "2024-06-26 07:05:05", - "code_updated_at": "2024-10-03 19:12:43", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "name": "高亮网页文本_迷你版", - "description": "在网页上自定义关键词突出显示包括滚动时动态加载的内容", - "relatedscripts": "网页相关脚本", - "path": "highlight-keywords-mini.user.js", - "backuppath": "Script details/highlight-keywords-mini", - "version": "1.0.5.26", - "GreasyFork": "498905", - "created_at": "2024-06-26 06:53:12", - "code_updated_at": "2024-10-03 19:12:43", - "local_created_at": "2024-08-24 06:02:07" - }, - { - "isUpdated": true, - "isSleazy": true, - "name": "MiSSAV自动登录", - "description": "检测 MisssAV 状态,并且在未登录时自动登录", - "relatedscripts": "成人脚本", - "path": "missav-auto-login-helper.user.js", - "backuppath": "Script details/missav-auto-login-helper", - "version": "1.0.1.7", - "GreasyFork": "505325", - "created_at": "2024-08-27 04:15:17", - "code_updated_at": "2024-10-03 19:12:44", - "local_created_at": "2024-08-27 02:45:07" - }, - { - "isUpdated": true, - "isSleazy": true, - "name": "MissAV收藏管理器", - "description": "miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav", - "relatedscripts": "成人脚本", - "path": "missav-explorer.user.js", - "backuppath": "Script details/missav-explorer", - "version": "1.2.3.73", - "GreasyFork": "497682", - "created_at": "2024-06-12 10:58:39", - "code_updated_at": "2024-10-03 19:12:44", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "isSleazy": true, - "name": "TissAV自动登录", - "description": "检测 TissAV 状态,并且在未登录时自动登录", - "relatedscripts": "成人脚本", - "path": "thisav-auto-login-helper.user.js", - "backuppath": "Script details/thisav-auto-login-helper", - "version": "1.0.1.8", - "GreasyFork": "506528", - "created_at": "2024-09-03 08:50:59", - "code_updated_at": "2024-10-03 19:12:47", - "local_created_at": "2024-09-03 08:52:46" - }, - { - "isUpdated": true, - "isSleazy": true, - "name": "JableTV自动登录", - "description": "检测 JableTV 状态,并且在未登录时自动登录", - "relatedscripts": "成人脚本", - "path": "jable-auto-login-helper.user.js", - "backuppath": "Script details/jable-auto-login-helper", - "version": "1.0.0.10", - "GreasyFork": "506730", - "created_at": "2024-09-04 13:43:00", - "code_updated_at": "2024-10-03 19:12:44", - "local_created_at": "2024-09-04 13:44:42" - }, - { - "isUpdated": true, - "name": "外语终结者", - "description": "识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络", - "relatedscripts": "自动翻译", - "path": "no-zh-terminator.user.js", - "backuppath": "Script details/no-zh-terminator", - "version": "1.4.0.0", - "GreasyFork": "504890", - "created_at": "2024-08-24 10:37:08", - "code_updated_at": "2024-10-03 19:12:45", - "local_created_at": "2024-07-27 20:58:35" - }, - { - "isUpdated": true, - "name": "小窗口预览", - "description": "拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。", - "relatedscripts": "网页相关脚本", - "path": "popup-window.user.js", - "backuppath": "Script details/popup-window", - "version": "2.5.1.4", - "GreasyFork": "504880", - "created_at": "2024-08-24 06:51:35", - "code_updated_at": "2024-10-03 19:12:45", - "local_created_at": "2024-08-23 07:20:13" - }, - { - "isUpdated": true, - "name": "去除链接下划线", - "description": "去除网页链接的下划线", - "relatedscripts": "网页相关脚本", - "path": "remove-link-underlines.user.js", - "backuppath": "Script details/remove-link-underlines", - "version": "1.2.0.63", - "GreasyFork": "498625", - "created_at": "2024-06-23 11:35:07", - "code_updated_at": "2024-10-03 19:12:46", - "local_created_at": "2024-07-27 20:54:00" - }, - { - "isUpdated": true, - "name": "Script Finder油猴脚本查找器", - "description": "Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本", - "relatedscripts": "GreasyFork相关脚本", - "path": "script-finder-plus.user.js", - "backuppath": "Script details/script-finder-plus", - "version": "0.1.6.80", - "GreasyFork": "498904", - "created_at": "2024-06-26 06:43:47", - "code_updated_at": "2024-10-03 19:12:46", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "name": "上下滚动小按钮", - "description": "页面右侧添加上下滚动按钮", - "relatedscripts": "网页相关脚本", - "path": "scroll-button.user.js", - "backuppath": "Script details/scroll-button", - "version": "1.0.0.26", - "GreasyFork": "497251", - "created_at": "2024-06-07 08:33:17", - "code_updated_at": "2024-10-03 19:12:47", - "local_created_at": "2024-08-24 06:05:19" - }, - { - "isUpdated": true, - "name": "一键置顶和置底按钮", - "description": "修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止", - "relatedscripts": "网页相关脚本", - "path": "scroll-to-top-button.user.js", - "backuppath": "Script details/scroll-to-top-button", - "version": "1.2.0.72", - "GreasyFork": "500255", - "created_at": "2024-07-11 13:57:29", - "code_updated_at": "2024-10-03 19:12:47", - "local_created_at": "2024-07-27 20:54:01" - }, - { - "isUpdated": true, - "name": "网页翻译——自动翻译为中文", - "description": "给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译", - "relatedscripts": "自动翻译", - "path": "translate-only-chinese.user.js", - "backuppath": "Script details/translate-only-chinese", - "version": "0.31.0.23", - "GreasyFork": "505208", - "created_at": "2024-08-26 11:37:23", - "code_updated_at": "2024-10-03 19:12:48", - "local_created_at": "2024-07-27 20:58:34" - } - ] -} \ No newline at end of file + "scripts": [ + { + "isUpdated": true, + "name": "ChatGPT代码字体缩小", + "description": "让 ChatGPT 代码框内字体变小", + "relatedscripts": "ChatGPT相关脚本", + "path": "chatgpt-code-styling.user.js", + "backuppath": "chatgpt-code-styling", + "version": "0.1.1.0", + "GreasyFork": "505209", + "created_at": "2024-08-26 11:42:17", + "code_updated_at": "2024-10-20 10:48:34", + "local_created_at": "2024-07-27 20:58:35", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/chatgpt-code-styling.png" + }, + { + "isUpdated": true, + "name": "ChatGPT 聊天复制代码按钮", + "description": "在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮", + "relatedscripts": "ChatGPT相关脚本", + "path": "chatgpt-copy-code-button.user.js", + "backuppath": "chatgpt-copy-code-button", + "version": "1.2.0.0", + "GreasyFork": "509598", + "created_at": "2024-09-22 07:35:20", + "code_updated_at": "2024-10-19 05:36:23", + "local_created_at": "2024-09-22 07:06:07", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/22/VexqWUEA6GYPQjN.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/chatgpt-copy-code-button.png" + }, + { + "isUpdated": true, + "name": "ChatGPT 字符计数器", + "description": "添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。)", + "relatedscripts": "ChatGPT相关脚本", + "path": "chatgpt-counter.user.js", + "backuppath": "chatgpt-counter", + "version": "1.3.1.14", + "GreasyFork": "506166", + "created_at": "2024-09-01 09:51:01", + "code_updated_at": "2024-10-19 05:36:24", + "local_created_at": "2024-09-01 09:45:50", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/01/uJZIDbie6fdmOQH.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/chatgpt-counter.png" + }, + { + "isUpdated": true, + "name": "ChatGPT 折叠自己消息和最大宽度", + "description": "自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。", + "relatedscripts": "ChatGPT相关脚本", + "path": "chatgpt-plus.user.js", + "backuppath": "chatgpt-plus", + "version": "0.3.0.0", + "GreasyFork": "504901", + "created_at": "2024-08-24 11:33:58", + "code_updated_at": "2024-10-19 05:36:24", + "local_created_at": "2024-08-24 11:09:34", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/24/BEyFS87bgMjJX1R.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/chatgpt-plus.png" + }, + { + "isUpdated": true, + "name": "网页写入剪辑版授权管理器", + "description": "禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向", + "relatedscripts": "网页相关脚本", + "path": "clipboard-manager.user.js", + "backuppath": "clipboard-manager", + "version": "1.2.3.1", + "GreasyFork": "497403", + "created_at": "2024-06-09 10:17:55", + "code_updated_at": "2024-10-19 05:36:25", + "local_created_at": "2024-07-27 20:54:00", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/ItB4r1G9SULPqaH.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/clipboard-manager.png" + }, + { + "isUpdated": true, + "name": "解除CSDN登录复制限制", + "description": "去你妈的 CSDN 登录复制,无需登录即可复制代码框内容", + "relatedscripts": "网页相关脚本", + "path": "csdn-blocker.user.js", + "backuppath": "csdn-blocker", + "version": "1.0.0.23", + "GreasyFork": "505207", + "created_at": "2024-08-26 11:37:22", + "code_updated_at": "2024-10-23 08:45:01", + "local_created_at": "2024-07-27 20:58:34", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/csdn-blocker.svg" + }, + { + "isUpdated": true, + "name": "绚丽渐变美化网页表格", + "description": "自动为网页上的表格所有列应用颜色渐变美化.", + "relatedscripts": "网页相关脚本", + "path": "colorful-table.user.js", + "backuppath": "colorful-table", + "version": "1.0.0.9", + "GreasyFork": "507036", + "created_at": "2024-09-06 06:08:08", + "code_updated_at": "2024-10-20 09:01:50", + "local_created_at": "2024-09-06 05:02:49", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/06/IA7pxwj1ZC4c56a.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/colorful-table.svg" + }, + { + "isUpdated": true, + "name": "GitHub提交信息显示HTML", + "description": "该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。", + "relatedscripts": "GitHub相关脚本", + "path": "github-commit-viewer.user.js", + "backuppath": "github-commit-viewer", + "version": "1.0.0.19", + "GreasyFork": "505830", + "created_at": "2024-08-30 10:13:44", + "code_updated_at": "2024-10-19 05:36:25", + "local_created_at": "2024-08-30 03:21:51", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/30/lhJrcbzDdABY2pO.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-commit-viewer.png" + }, + { + "isUpdated": true, + "name": "GitHub 快速跳转助手", + "description": "GitHub 快速跳转助手是一款专为帮助用户快速访问自己在 GitHub 上的仓库而设计。它可以大幅提高开发者在使用 GitHub 时的效率。", + "relatedscripts": "GitHub相关脚本", + "path": "github-repository-navigator.user.js", + "backuppath": "github-repository-navigator", + "version": "2024.11.1.19", + "GreasyFork": "515205", + "created_at": "2024-11-01 19:46:42", + "code_updated_at": "2024-11-01 19:56:19", + "local_created_at": "2024-11-01 19:36", + "top_tip": "", + "img": "https://s2.loli.net/2024/11/01/AWopjtOVhEcYKxC.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-commit-viewer.png" + }, + { + "isUpdated": true, + "name": "GitHub 文件列表美化器", + "description": "GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。", + "relatedscripts": "GitHub相关脚本", + "path": "github-file-list-beautifier-plus.user.js", + "backuppath": "github-file-list-beautifier-plus", + "version": "4.1.0.4", + "GreasyFork": "508047", + "created_at": "2024-09-12 11:56:17", + "code_updated_at": "2024-10-20 18:57:48", + "local_created_at": "2024-9-12 10:39:51", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/12/HCZDNa8EngxQJ4y.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-file-list-beautifier-plus.png" + }, + { + "isUpdated": true, + "name": "Github 代码语言列表显示全部", + "description": "扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下", + "relatedscripts": "GitHub相关脚本", + "path": "github-linguist-expand.user.js", + "backuppath": "github-linguist-expand", + "version": "1.1.0.0", + "GreasyFork": "509889", + "created_at": "2024-09-24 05:30:01", + "code_updated_at": "2024-10-19 07:37:49", + "local_created_at": "2024-09-24 04:33:03", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/24/NlaYfsZdcW7hTr5.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-linguist-expand.png" + }, + { + "isUpdated": true, + "name": "GitHub 自动确认设备授权", + "description": "在GitHub授权页面自动输入授权码与自动确认。", + "relatedscripts": "GitHub相关脚本", + "path": "github-device-authorization.user.js", + "backuppath": "github-device-authorization", + "version": "1.0.0.0", + "GreasyFork": "508956", + "created_at": "2024-09-18 09:12:31", + "code_updated_at": "2024-10-19 05:36:22", + "local_created_at": "2024-09-18 08:50:32", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-device-authorization.png" + }, + { + "isUpdated": true, + "name": "GitHub文件夹下载", + "description": "添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。", + "relatedscripts": "GitHub相关脚本", + "path": "github-folder-downloader.user.js", + "backuppath": "github-folder-downloader", + "version": "0.7.0.23", + "GreasyFork": "505496", + "created_at": "2024-08-28 04:27:35", + "code_updated_at": "2024-10-19 05:36:26", + "local_created_at": "2024-08-29 06:11:34", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/28/XiKjIu85TVBwzMa.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-folder-downloader.png" + }, + { + "isUpdated": true, + "name": "GitHub下载单文件和复制文件URL", + "description": "在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件", + "relatedscripts": "GitHub相关脚本", + "path": "github-raw-file-plus.user.js", + "backuppath": "github-raw-file-plus", + "version": "2.2.0.22", + "GreasyFork": "505501", + "created_at": "2024-08-28 05:20:14", + "code_updated_at": "2024-10-19 05:36:27", + "local_created_at": "2024-08-29 06:11:33", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/28/QolM627BS8Avd9b.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-raw-file-plus.png" + }, + { + "isUpdated": true, + "name": "🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠", + "description": "在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转.", + "relatedscripts": "GitHub相关脚本", + "path": "github-repo-size-view.user.js", + "backuppath": "github-repo-size-view", + "version": "0.1.3.7", + "GreasyFork": "502291", + "created_at": "2024-08-01 03:43:19", + "code_updated_at": "2024-10-19 05:36:27", + "local_created_at": "2024-08-01 00:53:59", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/RwxPkGZoNiYTM1m.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-repo-size-view.png" + }, + { + "isUpdated": true, + "name": "GitHub Sort by Date", + "description": "仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。", + "relatedscripts": "GitHub相关脚本", + "path": "github-sort-by-date.user.js", + "backuppath": "github-sort-by-date", + "version": "1.1.0.23", + "GreasyFork": "505218", + "created_at": "2024-08-26 12:30:53", + "code_updated_at": "2024-10-19 05:36:28", + "local_created_at": "2024-08-06 01:28:58", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-sort-by-date.png" + }, + { + "isUpdated": true, + "name": "Google 高级搜索", + "description": "这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。", + "relatedscripts": "Google相关脚本", + "path": "google-advanced-search.user.js", + "backuppath": "google-advanced-search", + "version": "0.1.9.45", + "GreasyFork": "502652", + "created_at": "2024-08-05 10:28:20", + "code_updated_at": "2024-10-19 05:36:28", + "local_created_at": "2024-08-06 00:32:20", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/MXF8JdpqnyreuRf.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/google-advanced-search.png" + }, + { + "isUpdated": true, + "name": "Google 搜索屏蔽指定站点", + "description": "在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容", + "relatedscripts": "Google相关脚本", + "path": "google-block-search-sites.user.js", + "backuppath": "google-block-search-sites", + "version": "0.0.1.51", + "GreasyFork": "500262", + "created_at": "2024-07-11 14:21:02", + "code_updated_at": "2024-10-23 08:45:02", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/google-block-search-sites.png" + }, + { + "isUpdated": true, + "name": "GreasyFork适用于增强", + "description": "脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-link.user.js", + "backuppath": "greasyfork-link", + "version": "0.9.3.66", + "GreasyFork": "497317", + "created_at": "2024-06-08 05:36:47", + "code_updated_at": "2024-10-23 08:45:02", + "local_created_at": "2024-07-27 20:54:00", + "top_tip": "", + "img": "https://greasyfork.s3.us-east-2.amazonaws.com/0y7q4czfrs1ylz71cpjpbl89h6tp", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-link.png" + }, + { + "isUpdated": true, + "name": "GrreasyFork 用户发布的脚本数据可视化", + "description": "使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-user-scripts-data-visualization.user.js", + "backuppath": "greasyfork-user-scripts-data-visualization", + "version": "1.1.1.1", + "GreasyFork": "508968", + "created_at": "2024-09-18 11:41:12", + "code_updated_at": "2024-10-19 05:36:31", + "local_created_at": "2024-09-19 11:22:00", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/19/azlGiIBEg2SAFPc.gif", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-user-scripts-data-visualization.svg" + }, + { + "isUpdated": true, + "name": "GreaysFork 增强 WebHook同步设置", + "description": "这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-webhook-sync-enhanced.user.js", + "backuppath": "greasyfork-webhook-sync-enhanced", + "version": "1.1.1.1", + "GreasyFork": "506717", + "created_at": "2024-09-04 12:12:18", + "code_updated_at": "2024-10-19 05:36:32", + "local_created_at": "2024-09-04 12:08:47", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/04/oYGt17AV9MD43w6.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-webhook-sync-enhanced.svg" + }, + { + "isUpdated": true, + "name": "GreasyFork Markdown toobar", + "description": "在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-markdown-toolbar.user.js", + "backuppath": "greasyfork-markdown-toolbar", + "version": "2.0.5", + "GreasyFork": "505164", + "created_at": "2024-08-26 02:12:29", + "code_updated_at": "2024-10-19 05:36:30", + "local_created_at": "2024-08-06 00:32:53", + "top_tip": "", + "img": "https://s2.loli.net/2024/10/02/oI7mw3JLyzKCDRc.gif", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-markdown-toolbar.png" + }, + { + "isUpdated": true, + "name": "GreasyFork 显示脚本评分", + "description": "脚本列表添加评价分数", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-ranks.user.js", + "backuppath": "greasyfork-ranks", + "version": "1.3.3.63", + "GreasyFork": "501119", + "created_at": "2024-07-19 09:44:01", + "code_updated_at": "2024-10-15 01:04:55", + "local_created_at": "2024-07-27 20:54:00", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/wvyAz8iVGMWJjEQ.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-ranks.png" + }, + { + "isUpdated": true, + "name": "GreasyFork 高级搜索", + "description": "使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-search.user.js", + "backuppath": "greasyfork-search", + "version": "0.6.5.23", + "GreasyFork": "505215", + "created_at": "2024-08-26 12:08:49", + "code_updated_at": "2024-10-19 05:36:30", + "local_created_at": "2024-07-27 20:58:34", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-search.png" + }, + { + "isUpdated": true, + "name": "GreasyFork 导航栏增强", + "description": "增强greasyfork导航栏,增加用户列表,用户控制台等", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-user-control-panel-button.user.js", + "backuppath": "greasyfork-user-control-panel-button", + "version": "0.3.1.57", + "GreasyFork": "501880", + "created_at": "2024-07-27 09:34:43", + "code_updated_at": "2024-10-19 05:36:30", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/MXF8JdpqnyreuRf.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-user-control-panel-button.png" + }, + { + "isUpdated": true, + "name": "Greasyfork糊裱匠", + "description": "增强greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-utility-toolkit.user.js", + "backuppath": "greasyfork-utility-toolkit", + "version": "2.2.0.92", + "GreasyFork": "497346", + "created_at": "2024-06-08 17:06:26", + "code_updated_at": "2024-10-19 05:36:31", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-utility-toolkit.svg" + }, + { + "isUpdated": true, + "name": "Greasyfork 通知助手", + "description": "当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。", + "relatedscripts": "GreasyFork相关脚本", + "path": "greasyfork-discussion-watcher.user.js", + "backuppath": "greasyfork-discussion-watcher", + "version": "1.5.0.4", + "GreasyFork": "506345", + "created_at": "2024-09-02 12:36:00", + "code_updated_at": "2024-10-19 05:36:29", + "local_created_at": "2024-09-02 12:34:55", + "top_tip": "", + "img": "https://s2.loli.net/2024/09/02/Ftpq1KomRcALjIE.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/greasyfork-discussion-watcher.png" + }, + { + "isUpdated": true, + "name": "网页高亮关键字+(推荐)", + "description": "对网页上的文字进行高亮显示", + "relatedscripts": "网页相关脚本", + "path": "highlight-keywords.user.js", + "backuppath": "highlight-keywords", + "version": "1.1.2.72", + "GreasyFork": "498906", + "created_at": "2024-06-26 07:05:05", + "code_updated_at": "2024-10-23 08:45:02", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/oBWsunTIhLKkcrM.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/highlight-keywords.png" + }, + { + "isUpdated": true, + "name": "高亮网页文本-迷你版", + "description": "在网页上自定义关键词突出显示包括滚动时动态加载的内容", + "relatedscripts": "网页相关脚本", + "path": "highlight-keywords-mini.user.js", + "backuppath": "highlight-keywords-mini", + "version": "1.0.5.26", + "GreasyFork": "498905", + "created_at": "2024-06-26 06:53:12", + "code_updated_at": "2024-10-23 08:45:02", + "local_created_at": "2024-08-24 06:02:07", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/highlight-keywords-mini.png" + }, + { + "isUpdated": true, + "isSleazy": true, + "name": "MiSSAV自动登录", + "description": "检测 MisssAV 状态,并且在未登录时自动登录", + "relatedscripts": "成人脚本", + "path": "missav-auto-login-helper.user.js", + "backuppath": "missav-auto-login-helper", + "version": "1.0.1.7", + "GreasyFork": "505325", + "created_at": "2024-08-27 04:15:17", + "code_updated_at": "2024-10-19 05:36:34", + "local_created_at": "2024-08-27 02:45:07", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/missav-auto-login-helper.png" + }, + { + "isUpdated": true, + "isSleazy": true, + "name": "MissAV收藏管理器", + "description": "miss片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到webdav", + "relatedscripts": "成人脚本", + "path": "missav-explorer.user.js", + "backuppath": "missav-explorer", + "version": "1.2.3.73", + "GreasyFork": "497682", + "created_at": "2024-06-12 10:58:39", + "code_updated_at": "2024-10-23 08:45:03", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "https://greasyfork.s3.us-east-2.amazonaws.com/y01rsvz3iuz4f5kt043s6b5mddqr", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/missav-explorer.png" + }, + { + "isUpdated": true, + "isSleazy": true, + "name": "TissAV自动登录", + "description": "检测 TissAV 状态,并且在未登录时自动登录", + "relatedscripts": "成人脚本", + "path": "thisav-auto-login-helper.user.js", + "backuppath": "thisav-auto-login-helper", + "version": "1.0.1.8", + "GreasyFork": "506528", + "created_at": "2024-09-03 08:50:59", + "code_updated_at": "2024-10-19 05:36:37", + "local_created_at": "2024-09-03 08:52:46", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/thisav-auto-login-helper.png" + }, + { + "isUpdated": true, + "isSleazy": true, + "name": "JableTV自动登录", + "description": "检测 JableTV 状态,并且在未登录时自动登录", + "relatedscripts": "成人脚本", + "path": "jable-auto-login-helper.user.js", + "backuppath": "jable-auto-login-helper", + "version": "1.0.0.10", + "GreasyFork": "506730", + "created_at": "2024-09-04 13:43:00", + "code_updated_at": "2024-10-19 05:36:33", + "local_created_at": "2024-09-04 13:44:42", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/jable-auto-login-helper.png" + }, + { + "isUpdated": true, + "name": "外语终结者", + "description": "识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问google的网络", + "relatedscripts": "自动翻译", + "path": "no-zh-terminator.user.js", + "backuppath": "no-zh-terminator", + "version": "1.4.0.0", + "GreasyFork": "504890", + "created_at": "2024-08-24 10:37:08", + "code_updated_at": "2024-10-23 08:45:03", + "local_created_at": "2024-07-27 20:58:35", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/no-zh-terminator.png" + }, + { + "isUpdated": true, + "name": "小窗口预览", + "description": "拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。", + "relatedscripts": "网页相关脚本", + "path": "popup-window.user.js", + "backuppath": "popup-window", + "version": "2.5.1.4", + "GreasyFork": "504880", + "created_at": "2024-08-24 06:51:35", + "code_updated_at": "2024-10-19 05:36:35", + "local_created_at": "2024-08-23 07:20:13", + "top_tip": "", + "img": "https://greasyfork.s3.us-east-2.amazonaws.com/45120umjmiqk1lfkh0116ad6pnui", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/popup-window.png" + }, + { + "isUpdated": true, + "name": "去除链接下划线", + "description": "去除网页链接的下划线", + "relatedscripts": "网页相关脚本", + "path": "remove-link-underlines.user.js", + "backuppath": "remove-link-underlines", + "version": "1.2.0.63", + "GreasyFork": "498625", + "created_at": "2024-06-23 11:35:07", + "code_updated_at": "2024-10-19 05:36:35", + "local_created_at": "2024-07-27 20:54:00", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/remove-link-underlines.png" + }, + { + "isUpdated": true, + "name": "Script Finder油猴脚本查找器", + "description": "Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本", + "relatedscripts": "GreasyFork相关脚本", + "path": "script-finder-plus.user.js", + "backuppath": "script-finder-plus", + "version": "0.1.6.80", + "GreasyFork": "498904", + "created_at": "2024-06-26 06:43:47", + "code_updated_at": "2024-10-19 05:36:36", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/05/EBsldxGySe9Kf3w.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/script-finder-plus.png" + }, + { + "isUpdated": true, + "name": "上下滚动小按钮", + "description": "页面右侧添加上下滚动按钮", + "relatedscripts": "网页相关脚本", + "path": "scroll-button.user.js", + "backuppath": "scroll-button", + "version": "1.0.0.26", + "GreasyFork": "497251", + "created_at": "2024-06-07 08:33:17", + "code_updated_at": "2024-10-15 01:05:01", + "local_created_at": "2024-08-24 06:05:19", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/24/nOVbHuZzvmdtRUc.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/scroll-button.png" + }, + { + "isUpdated": true, + "name": "一键置顶和置底按钮", + "description": "修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止", + "relatedscripts": "网页相关脚本", + "path": "scroll-to-top-button.user.js", + "backuppath": "scroll-to-top-button", + "version": "1.2.0.72", + "GreasyFork": "500255", + "created_at": "2024-07-11 13:57:29", + "code_updated_at": "2024-10-19 05:36:36", + "local_created_at": "2024-07-27 20:54:01", + "top_tip": "", + "img": "https://s2.loli.net/2024/08/26/UrwMu2lphEia3Q7.png", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/scroll-to-top-button.png" + }, + { + "isUpdated": true, + "name": "网页翻译——自动翻译为中文", + "description": "给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译", + "relatedscripts": "自动翻译", + "path": "translate-only-chinese.user.js", + "backuppath": "translate-only-chinese", + "version": "0.31.0.23", + "GreasyFork": "505208", + "created_at": "2024-08-26 11:37:23", + "code_updated_at": "2024-10-23 08:45:03", + "local_created_at": "2024-07-27 20:58:34", + "top_tip": "", + "img": "", + "icon": "https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/translate-only-chinese.png" + } + ] +} diff --git a/docs/en/CODE_OF_CONDUCT.md b/docs/en/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..426d27ba2 --- /dev/null +++ b/docs/en/CODE_OF_CONDUCT.md @@ -0,0 +1,51 @@ +
    +
    + + + + +  English | + 简体中文 +
    +
    + +# Code of Conduct + +## Introduction + +Welcome to this repository! To ensure a friendly, respectful, and inclusive development environment, we have established the following Code of Conduct. We expect all contributors to adhere to these guiding principles. + +## Our Expectations + +We expect all participants to maintain professionalism in the following areas: + +1. **Respect and Inclusion**: Please respect the opinions and viewpoints of others, and welcome diverse backgrounds and experiences. +2. **Positive Communication**: Encourage open and constructive discussions, and share ideas and suggestions. +3. **Integrity**: Maintain honesty in code contributions and communications. Plagiarism and deceitful behavior are strictly prohibited. +4. **Constructive Feedback**: Focus on the issue at hand when providing feedback, avoiding personal attacks. + +## Unacceptable Behavior + +The following behaviors are considered unacceptable: + +- Harassment, threats, or attacks against others +- Hate speech, discriminatory remarks, or other offensive content +- Spreading false information or unfounded accusations +- Disrupting the order of the project or interfering with others' participation +- Engaging in sexual harassment or other inappropriate conduct + +## Reporting Misconduct + +If you witness or experience any misconduct, please report it immediately to the project maintainers. We take all reports seriously and will take appropriate action. + +## Consequences + +Participants who violate this Code of Conduct may face the following consequences: + +- Verbal or written warning +- Temporary or permanent ban from participating in the project +- Other appropriate actions + +## Conclusion + +Thank you for helping us create a friendly and respectful development environment. Let’s work together to ensure that every contributor enjoys participating in this project! diff --git a/docs/en/CONTRIBUTING.md b/docs/en/CONTRIBUTING.md new file mode 100644 index 000000000..40d1e6cb4 --- /dev/null +++ b/docs/en/CONTRIBUTING.md @@ -0,0 +1,65 @@ +
    +
    + + + + +  English| + 简体中文 +
    +
    + +# Contributing Guide + +Thank you for your interest in contributing to this project! To help you get started with contributing code or documentation, we've put together the following guidelines. Please read them carefully before submitting code or issues. + +## How to Contribute + +### 1. Submitting an Issue + +If you find a bug, need a new feature, or have improvement suggestions, please submit an issue via [Issues](https://github.com/ChinaGodMan/UserScripts/issues). Try to provide as much detail as possible, including: + +- A description of the problem +- Steps to reproduce +- Expected vs. actual results +- System and environment information + +### 2. Branching and Pull Request Workflow + +#### Steps: + +1. **Fork the repository**: Click the "Fork" button at the top right corner to create a copy of this repository in your GitHub account. + +2. **Create a branch**: In your forked repository, create a new branch. Use a clear and concise branch name, like `fix-bug-123` or `feature-new-function`. + +3. **Write your code**: Develop, fix bugs, or add new features on this branch. Make sure to follow the project's coding style. + +4. **Test your code**: Ensure that your code passes all relevant tests. If applicable, add tests for new features. + +5. **Commit your changes**: Commit your changes to your branch and push them to your forked repository. + +6. **Open a Pull Request**: In your forked repository, click the "New Pull Request" button, select your branch, and create a Pull Request. In the description, clearly explain the changes you’ve made. + +#### Pull Request Guidelines: + +- Ensure that your code is readable and clean. Avoid large-scale changes in a single commit. +- Each Pull Request should focus on addressing a single issue or feature. +- Reference the issue number in the description (if applicable). +- We will review your Pull Request and provide feedback. Please be patient. + +### 3. Code Style Guide + +To maintain consistency across the project, please follow these coding style guidelines: + +- Ensure your code is readable and concise. +- Use meaningful variable and function names, and separate words with underscores (e.g., `my_function`). +- Keep functions and methods short, adhering to the single responsibility principle. +- Follow the formatting rules set by any tools in the project (such as `Prettier`, `ESLint`, etc.). + +### 4. Contributing to Documentation + +If you find errors or unclear parts in the documentation, feel free to edit and submit a Pull Request. Contributing to documentation follows the same workflow as contributing to code. + +## Thank You for Your Contributions + +Whether you're filing an issue, fixing bugs, or contributing code and documentation, your help is greatly appreciated! We look forward to your contributions! diff --git a/docs/LICENSE_en.md b/docs/en/LICENSE.md similarity index 94% rename from docs/LICENSE_en.md rename to docs/en/LICENSE.md index afc1a6c87..931787622 100644 --- a/docs/LICENSE_en.md +++ b/docs/en/LICENSE.md @@ -5,7 +5,7 @@  English | - 简体中文 + 简体中文
    diff --git a/docs/en/README.md b/docs/en/README.md new file mode 100644 index 000000000..38016ec7a --- /dev/null +++ b/docs/en/README.md @@ -0,0 +1,1329 @@ + +
    + + +**The script comes from the vast number of netizens on the Internet,I just made some changes.Thanks netizens** +**If there is any infringement,Contact must be deleted** + +## script list + +💡 **Tip:** _To show preview screenshot,Click below the extension name ▸ or describe。_ + + +

    ChatGPTRelated scripts

    + + + ChatGPTCode font size reduced  + + +

    + +
    + let ChatGPT The font size in the code box becomes smaller +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + ChatGPT Chat copy code button  + + +

    + +
    + exist chatgpt.com Add an animation with animation in the lower right corner of the upper code block“Copy code”button +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + ChatGPT character counter  + + +

    + +
    + 添加一characters计数器到输入框,limited to 32732 characters。(ChatGPT The limit is 32732 个字符。) +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + ChatGPT Collapse self message and max width  + + +

    + +
    + Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    Web related scripts

    + + + Web page writing clip version authorization manager  + + +

    + +
    + Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + LiftCSDNLogin copy restrictions  + + +

    + +
    + fuck you CSDN LoginCopy,Copy code box content without logging in +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Beautify web forms with gorgeous gradients  + + +

    + +
    + Automatically apply color gradient beautification to all columns of tables on web pages. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Highlight keywords on web pages+(recommend)  + + +

    + +
    + Highlight text on web pages +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Highlight web text-mini version  + + +

    + +
    + Custom keyword highlighting on web pages including dynamically loaded content on scroll +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Small window preview  + + +

    + +
    + Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Remove link underline  + + +

    + +
    + Remove underline from web links +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Small scroll button up and down  + + +

    + +
    + Add up and down scroll buttons on the right side of the page +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + One-touch top and bottom buttons  + + +

    + +
    + Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    GitHubRelated scripts

    + + + GitHubSubmit information displayHTML  + + +

    + +
    + This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GitHub Quick jump assistant  + + +

    + +
    + GitHub Quick Jump Assistant is a tool designed to help users quickly access their GitHub Designed for warehouses。It can greatly improve developers’ ability to use GitHub time efficiency。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GitHub File list beautifier  + + +

    + +
    + GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Github List of code languages ​​show all  + + +

    + +
    + Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GitHub Automatically confirm device authorization  + + +

    + +
    + existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GitHubFolder download  + + +

    + +
    + Add a download button,Allows easy downloading of specific GitHub folder。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GitHubDownload single files and copy filesURL  + + +

    + +
    + Add button at the end of each file line,to copy the original file URL and download files +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + 🤠 Github Enhance assistant Warehouse display size Inactive development warning Quickly jump to the user’s other warehouses within the warehouse 🤠  + + +

    + +
    + existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,Quick jump within the warehouse. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GitHub Sort by Date  + + +

    + +
    + Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    GoogleRelated scripts

    + + + Google Advanced search  + + +

    + +
    + This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Google Search and block specific sites  + + +

    + +
    + Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    GreasyForkRelated scripts

    + + + GreasyForksuitable for enhancement  + + +

    + +
    + The script details page is added. It is suitable for adding links. Click to open the web page.,Copy web page,tire search +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GrreasyFork User-published script data visualization  + + +

    + +
    + useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GreaysFork Enhance WebHookSync settings  + + +

    + +
    + This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GreasyFork Markdown toobar  + + +

    + +
    + Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GreasyFork Show script ratings  + + +

    + +
    + Add evaluation scores to script list +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GreasyFork Advanced search  + + +

    + +
    + Search using Google GreasyFork and SleazyFork script on +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + GreasyFork Navigation bar enhancement  + + +

    + +
    + EnhancegreasyforkNavigation bar,Add user list,User console etc. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Greasyforkframer  + + +

    + +
    + Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Greasyfork Notification assistant  + + +

    + +
    + When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + Script FinderGrease Monkey Script Finder  + + +

    + +
    + Script Finder is a user script(userscript),It helps you find and manage userscripts on any website +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    adult script

    + + + MiSSAVAutomatic login  + + +

    + +
    + Detection MisssAV state,and automatically log in when not logged in +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + MissAVCollection manager  + + +

    + +
    + missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + TissAVAutomatic login  + + +

    + +
    + Detection TissAV state,and automatically log in when not logged in +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + JableTVAutomatic login  + + +

    + +
    + Detection JableTV state,and automatically log in when not logged in +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    automatic translation

    + + + foreign language terminator  + + +

    + +
    + Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    +

    + + + web page translation——Automatically translated into Chinese  + + +

    + +
    + Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + readme file / + + + discuss +
    + + + +--- + +## How to install/Use script? + +To use any script,First you need to install the browser **Tampermonkey Script Manager Extension([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** + +- Click on the form **\[Install\]** Directly pop up the script manager installation interface。 +- if Github Access speed is too slow,You can choose to click GreasyFork **\[Install\]** Extension prompt pops up after,Click again **\[Install\]** That’s it。 +- [View detailed tutorial](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md) + +> [!IMPORTANT] +> +> - _Others based on **Chromium** Kernel browser(Such as domestic cover browser)Generally can be used Chrome Expand。_ +> - _Please make sure to use **Tampermonkey Official version** Expand,其他的用户Script管理器可能导致**Not working properly**脚本。_ +> - _If you want to reinstall the script,Please remember to Tampermonkey extended**Completely delete from recycle bin**After the script, go and reinstall the script.。_ + +> _**No offline installation .crx Expand?[Chrome、Edge Reopen hidden [Drag and drop installation .crx Expand] Function!](https://zhuanlan.zhihu.com/p/276027099)**_ + +--- + +## Special thanks to open source + +> [!TIP] +> +> - XIU2 :+1: +> - This repository readme file is copied[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)content `Browser and Script Manager` + +> [!TIP] +> +> - Hmjz100 :+1: +> - All in the warehouse`README.md`File badge copied[Hmjz100](https://github.com/hmjz100)warehouse[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)internal[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)Document badge style + +> [!TIP] +> +> - FengFeng :+1: +> - 仓库Inside所有`README.md`File header introduction and historical installation table copied[FengFeng](https://github.com/BonjourFeng)warehouse[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)File content +> - Sub-warehouses of this warehouse`UserScriptsHistory`The automatic update installation history table image code is also copied and used.[FengFeng](https://github.com/BonjourFeng)warehouse[Script-History](https://github.com/BonjourFeng/Script-History)code within[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) + +> [!TIP] +> +> - son of the desert :+1: +> - Copied [son of the desert](https://github.com/maboloshi)warehouse[github-chinese](https://github.com/maboloshi/github-chinese)code within
    +> - In this warehouse`writer.py` `update-contributors.yml` Copied using[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)code inside +> - This repository readme file is copied[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)content `How to install/Use script?` + +> [!TIP] +> +> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui Liu Zhanpeng :+1: +> - _Automatic translation of this repository and Action Special thanks to Yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Great ideas and code!_ :trollface: +> - _The naming style of this warehouse is inspired by the Yankees[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Inspire_ :trollface: +> - _The readme file in this repository comes from[Adam Lui Liu Zhanpeng](https://github.com/adamlui)self-report style_ :trollface: +> - _The mutual redirection jump within the script comes from[Adam Lui Liu Zhanpeng](https://github.com/adamlui)self-report style_ :trollface: +> - _All in this warehouse`README.md`File copied and used from this Yankee repository`README.md`Document layout,delimiter,code,Ideas_ :trollface: +> - _copied yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui) Action internal code_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _Copied Yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Action internal code_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _copied yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)_ [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)delimiter,Typesetting style :trollface: +> - _Copied Yankee[Adam Lui Liu Zhanpeng](https://github.com/adamlui)Python internal code_ [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: + +## Contributor + + + +人民的勤务员 +people’s servants servants + + + +Contributions list by: [contributors](https://github.com/jaywcjlove/github-action-contributors). Automatically generated Little brother tunes + +## 🌐 Browser and Script Manager + +| Recommended browser | Installation manager | Install browser | +| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | +|
    Chrome or based on Chromium Kernel browser[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | +|
    Safari Browser(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] or ![][stayr] [Stay] |
    [![][safari]][safari_link] | +|
    Firefox or based on Gecko Kernel browser[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | +|
    Opera Browser[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | +|
    Via Browser(Android)[![][via]][via_link] |
    Built-in browser |
    [![][via]][via_link] | +|
    X Browser(Android) [![][x]][x_link] |
    Built-in browser |
    [![][x]][x_link] | +|
    KIWI Browser(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | +|
    Lemur Browser(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | +| | | | + +[Tampermonkey]: http://tampermonkey.net/ "tamper monkey" +[Violentmonkey]: https://violentmonkey.github.io/ "violent monkey" +[Macaque]: https://macaque.app/ "macaque" +[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png +[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" +[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png +[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png +[opera_link]: https://www.opera.com "operaBrowser" +[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png +[edge_link]: https://www.microsoft.com/edge "edge Browser" +[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png +[firefox_link]: https://www.firefox.com "FirefoxBrowser" +[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png +[chrome_link]: https://gooogleweb.com/index.html "ChromeBrowser" +[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png +[QQ_link]: https://browser.qq.com/ "QQBrowser" +[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png +[safari_link]: https://www.apple.com/vn/safari/ "SafariBrowser" +[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png +[via_link]: https://viayoo.com/ "VIABrowser" +[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png +[x_link]: https://www.xbext.com/ "XBrowser" +[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "violent monkey" +[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png +[cat_link]: https://docs.scriptcat.org/ "script cat" +[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "tamper monkey" +[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png +[le_link]: https://lemurbrowser.com/ "Lemur Browser" +[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg +[kiwi_link]: https://kiwibrowser.com/ "KIWIBrowser" + +

    More user scripts / +back to top↑

    + +## License + +The MIT License. diff --git a/docs/en/SECURITY.md b/docs/en/SECURITY.md new file mode 100644 index 000000000..83519557c --- /dev/null +++ b/docs/en/SECURITY.md @@ -0,0 +1,16 @@ +
    +
    + + + + +  English | + 简体中文 +
    +
    + +# 🛡️ Security Policy + +If you find a vulnerability, please open a [draft security advisory](https://github.com/ChinaGodMan/UserScripts/security/advisories/new). + +Pull requests are also welcome, but for safety reasons, send an email to and wait for a response before making it public. diff --git a/docs/help/README.md b/docs/help/README.md index 13683f658..b9e52b34f 100644 --- a/docs/help/README.md +++ b/docs/help/README.md @@ -15,8 +15,7 @@
    -[]() 如何安装油猴脚本? -======================== +# []() 如何安装油猴脚本? ### [](#) 1. 安装一个用户脚本管理器 @@ -1058,4 +1057,4 @@ Linux 此时来到生效的页面刷新,尽情享受吧!!!! -![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) \ No newline at end of file +![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) diff --git a/docs/help/README_ja.md b/docs/help/README_ja.md index 23b1f2c6d..433c23ab0 100644 --- a/docs/help/README_ja.md +++ b/docs/help/README_ja.md @@ -15,8 +15,7 @@ -[]() Grease Monkey スクリプトのインストール方法? -======================== +# []() Grease Monkey スクリプトのインストール方法? ### [](#) 1. ユーザースクリプトマネージャーをインストールする @@ -26,51 +25,51 @@ Windows -| # | ブラウザ | Tampermonkey ダウンロードアドレス | 設置方法 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chromeブラウザ) | -| | Edge ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦する)または [~Edge アドイン~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(とても遅い) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edgeブラウザ) | -| | Firefox | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Firefox) | -| | ウォーターフォックスブラウザ | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#ウォーターフォックスブラウザ) | -| | 100% ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#100% ブラウザ) | -| | 360 非常に高速なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360非常に高速なブラウザ) | -| | 360 安全なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360安全なブラウザ) | -| | QQ ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qqブラウザ) | -| | 総合ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#総合ブラウザ) | -| | マクソンブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#マクソンブラウザ) | -| | スターウィッシュブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#スターウィッシュブラウザ) | -| | Vivaldi ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldiブラウザ) | -| | Yandex ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandexブラウザ) | -| | Opera ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#operaブラウザ) | -| | チーターブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#チーターブラウザ) | +| # | ブラウザ | Tampermonkey ダウンロードアドレス | 設置方法 | +| --- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| | Chrome ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chromeブラウザ) | +| | Edge ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦する)または [~Edge アドイン~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(とても遅い) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edgeブラウザ) | +| | Firefox | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Firefox) | +| | ウォーターフォックスブラウザ | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#ウォーターフォックスブラウザ) | +| | 100% ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#100% ブラウザ) | +| | 360 非常に高速なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360非常に高速なブラウザ) | +| | 360 安全なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360安全なブラウザ) | +| | QQ ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qqブラウザ) | +| | 総合ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#総合ブラウザ) | +| | マクソンブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#マクソンブラウザ) | +| | スターウィッシュブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#スターウィッシュブラウザ) | +| | Vivaldi ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldiブラウザ) | +| | Yandex ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandexブラウザ) | +| | Opera ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#operaブラウザ) | +| | チーターブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#チーターブラウザ) | Mac -| # | ブラウザ | Tampermonkey ダウンロードアドレス | 設置方法 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chromeブラウザ) | -| | Edge ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦する)または [~Edge アドイン~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(とても遅い) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edgeブラウザ) | -| | Firefox | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Firefox) | -| | ウォーターフォックスブラウザ | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#ウォーターフォックスブラウザ) | -| | 360 非常に高速なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360非常に高速なブラウザ) | -| | 360 安全なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360安全なブラウザ) | -| | マクソンブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#マクソンブラウザ) | -| | スターウィッシュブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#スターウィッシュブラウザ) | -| | Vivaldi ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldiブラウザ) | -| | Yandex ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandexブラウザ) | -| | Opera ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#operaブラウザ) | +| # | ブラウザ | Tampermonkey ダウンロードアドレス | 設置方法 | +| --- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| | Chrome ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chromeブラウザ) | +| | Edge ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦する)または [~Edge アドイン~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(とても遅い) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edgeブラウザ) | +| | Firefox | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Firefox) | +| | ウォーターフォックスブラウザ | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#ウォーターフォックスブラウザ) | +| | 360 非常に高速なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360非常に高速なブラウザ) | +| | 360 安全なブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360安全なブラウザ) | +| | マクソンブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#マクソンブラウザ) | +| | スターウィッシュブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#スターウィッシュブラウザ) | +| | Vivaldi ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldiブラウザ) | +| | Yandex ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandexブラウザ) | +| | Opera ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#operaブラウザ) | Linux -| # | ブラウザ | Tampermonkey ダウンロードアドレス | 設置方法 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | -| | Chrome ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chromeブラウザ) | -| | Edge ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦する)または [~Edge アドイン~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(とても遅い) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edgeブラウザ) | -| | Firefox | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#Firefox) | -| | ウォーターフォックスブラウザ | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#ウォーターフォックスブラウザ) | -| | Vivaldi ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldiブラウザ) | -| | Yandex ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandexブラウザ) | -| | Opera ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#operaブラウザ) | +| # | ブラウザ | Tampermonkey ダウンロードアドレス | 設置方法 | +| --- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| | Chrome ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chromeブラウザ) | +| | Edge ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦する)または [~Edge アドイン~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(とても遅い) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edgeブラウザ) | +| | Firefox | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#Firefox) | +| | ウォーターフォックスブラウザ | [Crx 相双増築店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦する) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#ウォーターフォックスブラウザ) | +| | Vivaldi ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldiブラウザ) | +| | Yandex ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandexブラウザ) | +| | Opera ブラウザ | [Crx 相双増築店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦する)または [~Chrome オンラインアプリケーションストア~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(壁に囲まれた) | [クリックして表示](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#operaブラウザ) | インストールが成功すると、ブラウザの拡張機能バーに次のアイコンが表示されます。: @@ -1058,4 +1057,4 @@ Linux この時点で、有効なページ更新が行われます,楽しめ!!!! -![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) \ No newline at end of file +![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) diff --git a/docs/help/README_ko.md b/docs/help/README_ko.md index 5abcfe2be..d534aa8f4 100644 --- a/docs/help/README_ko.md +++ b/docs/help/README_ko.md @@ -15,8 +15,7 @@ -[]() 그리스 몽키 스크립트 설치 방법? -======================== +# []() 그리스 몽키 스크립트 설치 방법? ### [](#) 1. 사용자 스크립트 관리자 설치 @@ -26,51 +25,51 @@ Windows -| # | 브라우저 | Tampermonkey 주소 다운로드 | 설치방법 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chrome브라우저) | -| | Edge 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(추천하다)또는 [~Edge 추가 기능~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(매우 느림) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edge브라우저) | -| | 파이어폭스 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#파이어폭스) | -| | 워터폭스 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#워터폭스 브라우저) | -| | 100% 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#100% 브라우저) | -| | 360 매우 빠른 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360매우 빠른 브라우저) | -| | 360 안전한 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360안전한 브라우저) | -| | QQ 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qq브라우저) | -| | 소고우 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#소고우 브라우저) | -| | 맥스톤 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#맥스톤 브라우저) | -| | 스타 소원 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#스타 소원 브라우저) | -| | Vivaldi 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldi브라우저) | -| | Yandex 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandex브라우저) | -| | Opera 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#opera브라우저) | -| | 치타 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#치타 브라우저) | +| # | 브라우저 | Tampermonkey 주소 다운로드 | 설치방법 | +| --- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| | Chrome 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chrome브라우저) | +| | Edge 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(추천하다)또는 [~Edge 추가 기능~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(매우 느림) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edge브라우저) | +| | 파이어폭스 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#파이어폭스) | +| | 워터폭스 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#워터폭스 브라우저) | +| | 100% 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#100% 브라우저) | +| | 360 매우 빠른 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360매우 빠른 브라우저) | +| | 360 안전한 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360안전한 브라우저) | +| | QQ 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qq브라우저) | +| | 소고우 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#소고우 브라우저) | +| | 맥스톤 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#맥스톤 브라우저) | +| | 스타 소원 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#스타 소원 브라우저) | +| | Vivaldi 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldi브라우저) | +| | Yandex 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandex브라우저) | +| | Opera 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#opera브라우저) | +| | 치타 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#치타 브라우저) | Mac -| # | 브라우저 | Tampermonkey 주소 다운로드 | 설치방법 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chrome브라우저) | -| | Edge 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(추천하다)또는 [~Edge 추가 기능~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(매우 느림) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edge브라우저) | -| | 파이어폭스 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#파이어폭스) | -| | 워터폭스 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#워터폭스 브라우저) | -| | 360 매우 빠른 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360매우 빠른 브라우저) | -| | 360 안전한 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360안전한 브라우저) | -| | 맥스톤 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#맥스톤 브라우저) | -| | 스타 소원 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#스타 소원 브라우저) | -| | Vivaldi 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldi브라우저) | -| | Yandex 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandex브라우저) | -| | Opera 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#opera브라우저) | +| # | 브라우저 | Tampermonkey 주소 다운로드 | 설치방법 | +| --- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| | Chrome 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chrome브라우저) | +| | Edge 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(추천하다)또는 [~Edge 추가 기능~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(매우 느림) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edge브라우저) | +| | 파이어폭스 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#파이어폭스) | +| | 워터폭스 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#워터폭스 브라우저) | +| | 360 매우 빠른 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360매우 빠른 브라우저) | +| | 360 안전한 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360안전한 브라우저) | +| | 맥스톤 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#맥스톤 브라우저) | +| | 스타 소원 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#스타 소원 브라우저) | +| | Vivaldi 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldi브라우저) | +| | Yandex 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandex브라우저) | +| | Opera 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#opera브라우저) | Linux -| # | 브라우저 | Tampermonkey 주소 다운로드 | 설치방법 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | -| | Chrome 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chrome브라우저) | -| | Edge 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(추천하다)또는 [~Edge 추가 기능~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(매우 느림) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edge브라우저) | -| | 파이어폭스 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#파이어폭스) | -| | 워터폭스 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#워터폭스 브라우저) | -| | Vivaldi 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldi브라우저) | -| | Yandex 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandex브라우저) | -| | Opera 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#opera브라우저) | +| # | 브라우저 | Tampermonkey 주소 다운로드 | 설치방법 | +| --- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| | Chrome 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chrome브라우저) | +| | Edge 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(추천하다)또는 [~Edge 추가 기능~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(매우 느림) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edge브라우저) | +| | 파이어폭스 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#파이어폭스) | +| | 워터폭스 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/firefox/detail/tampermonkey)(추천하다) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#워터폭스 브라우저) | +| | Vivaldi 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldi브라우저) | +| | Yandex 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandex브라우저) | +| | Opera 브라우저 | [Crx 소소 확장점](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(추천하다)또는 [~Chrome 온라인 애플리케이션 스토어~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(벽으로 둘러싸인) | [보려면 클릭하세요](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#opera브라우저) | 성공적으로 설치되면 브라우저 확장 표시줄에 다음 아이콘이 나타납니다.: @@ -78,7 +77,7 @@ Linux ▲ Tampermonkey설치됨 -### [#](#_2-설치할 어시스턴트 선택) 2. 설치할 어시스턴트 선택 +### [#](#\_2-설치할 어시스턴트 선택) 2. 설치할 어시스턴트 선택 다음으로 해당 어시스턴트의 설치 페이지만 열면 됩니다.: @@ -1058,4 +1057,4 @@ Linux 이때 효과적인 페이지 새로고침이 옵니다.,즐겨라!!!! -![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) \ No newline at end of file +![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) diff --git a/docs/help/README_vi.md b/docs/help/README_vi.md index c24b167d0..a48b2aca5 100644 --- a/docs/help/README_vi.md +++ b/docs/help/README_vi.md @@ -15,8 +15,7 @@ -[]() Cách cài đặt Grease Monkey Script? -======================== +# []() Cách cài đặt Grease Monkey Script? ### [](#) 1. Cài đặt trình quản lý userscript @@ -26,51 +25,51 @@ Windows -| # | Trình duyệt | Tampermonkey Địa chỉ tải xuống | Phương pháp cài đặt | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chromeTrình duyệt) | -| | Edge Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(gợi ý)hoặc [~Edge bổ trợ~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(rất chậm) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edgeTrình duyệt) | -| | Firefox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Firefox) | -| | trình duyệt Waterfox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#trình duyệt Waterfox) | -| | Trình duyệt 100% | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt 100%) | -| | 360 Trình duyệt cực nhanh | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360Trình duyệt cực nhanh) | -| | 360 trình duyệt an toàn | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360trình duyệt an toàn) | -| | QQ Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qqTrình duyệt) | -| | Trình duyệt Sogou | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt Sogou) | -| | Trình duyệt Maxthon | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt Maxthon) | -| | Trình duyệt mong ước sao | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt mong ước sao) | -| | Vivaldi Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldiTrình duyệt) | -| | Yandex Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandexTrình duyệt) | -| | Opera Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#operaTrình duyệt) | -| | Trình duyệt Cheetah | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt Cheetah) | +| # | Trình duyệt | Tampermonkey Địa chỉ tải xuống | Phương pháp cài đặt | +| --- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| | Chrome Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chromeTrình duyệt) | +| | Edge Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(gợi ý)hoặc [~Edge bổ trợ~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(rất chậm) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edgeTrình duyệt) | +| | Firefox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Firefox) | +| | trình duyệt Waterfox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#trình duyệt Waterfox) | +| | Trình duyệt 100% | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt 100%) | +| | 360 Trình duyệt cực nhanh | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360Trình duyệt cực nhanh) | +| | 360 trình duyệt an toàn | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360trình duyệt an toàn) | +| | QQ Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qqTrình duyệt) | +| | Trình duyệt Sogou | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt Sogou) | +| | Trình duyệt Maxthon | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt Maxthon) | +| | Trình duyệt mong ước sao | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt mong ước sao) | +| | Vivaldi Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldiTrình duyệt) | +| | Yandex Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandexTrình duyệt) | +| | Opera Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#operaTrình duyệt) | +| | Trình duyệt Cheetah | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#Trình duyệt Cheetah) | Mac -| # | Trình duyệt | Tampermonkey Địa chỉ tải xuống | Phương pháp cài đặt | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chromeTrình duyệt) | -| | Edge Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(gợi ý)hoặc [~Edge bổ trợ~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(rất chậm) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edgeTrình duyệt) | -| | Firefox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Firefox) | -| | trình duyệt Waterfox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#trình duyệt Waterfox) | -| | 360 Trình duyệt cực nhanh | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360Trình duyệt cực nhanh) | -| | 360 trình duyệt an toàn | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360trình duyệt an toàn) | -| | Trình duyệt Maxthon | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Trình duyệt Maxthon) | -| | Trình duyệt mong ước sao | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Trình duyệt mong ước sao) | -| | Vivaldi Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldiTrình duyệt) | -| | Yandex Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandexTrình duyệt) | -| | Opera Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#operaTrình duyệt) | +| # | Trình duyệt | Tampermonkey Địa chỉ tải xuống | Phương pháp cài đặt | +| --- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| | Chrome Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chromeTrình duyệt) | +| | Edge Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(gợi ý)hoặc [~Edge bổ trợ~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(rất chậm) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edgeTrình duyệt) | +| | Firefox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Firefox) | +| | trình duyệt Waterfox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#trình duyệt Waterfox) | +| | 360 Trình duyệt cực nhanh | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360Trình duyệt cực nhanh) | +| | 360 trình duyệt an toàn | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360trình duyệt an toàn) | +| | Trình duyệt Maxthon | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Trình duyệt Maxthon) | +| | Trình duyệt mong ước sao | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#Trình duyệt mong ước sao) | +| | Vivaldi Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldiTrình duyệt) | +| | Yandex Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandexTrình duyệt) | +| | Opera Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#operaTrình duyệt) | Linux -| # | Trình duyệt | Tampermonkey Địa chỉ tải xuống | Phương pháp cài đặt | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | -| | Chrome Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chromeTrình duyệt) | -| | Edge Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(gợi ý)hoặc [~Edge bổ trợ~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(rất chậm) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edgeTrình duyệt) | -| | Firefox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#Firefox) | -| | trình duyệt Waterfox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#trình duyệt Waterfox) | -| | Vivaldi Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldiTrình duyệt) | -| | Yandex Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandexTrình duyệt) | -| | Opera Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#operaTrình duyệt) | +| # | Trình duyệt | Tampermonkey Địa chỉ tải xuống | Phương pháp cài đặt | +| --- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| | Chrome Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chromeTrình duyệt) | +| | Edge Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(gợi ý)hoặc [~Edge bổ trợ~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(rất chậm) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edgeTrình duyệt) | +| | Firefox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#Firefox) | +| | trình duyệt Waterfox | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/firefox/detail/tampermonkey)(gợi ý) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#trình duyệt Waterfox) | +| | Vivaldi Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldiTrình duyệt) | +| | Yandex Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandexTrình duyệt) | +| | Opera Trình duyệt | [Crx Cửa hàng mở rộng Soso](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(gợi ý)hoặc [~Chrome kho ứng dụng trực tuyến~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(có tường bao quanh) | [Bấm vào để xem](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#operaTrình duyệt) | Sau khi cài đặt thành công sẽ xuất hiện biểu tượng sau trên thanh tiện ích của trình duyệt: @@ -78,7 +77,7 @@ Sau khi cài đặt thành công sẽ xuất hiện biểu tượng sau trên th ▲ TampermonkeyĐã cài đặt -### [#](#_2-Chọn trợ lý để cài đặt) 2. Chọn trợ lý để cài đặt +### [#](#\_2-Chọn trợ lý để cài đặt) 2. Chọn trợ lý để cài đặt Tiếp theo, bạn chỉ cần mở trang cài đặt của trợ lý tương ứng.: @@ -1058,4 +1057,4 @@ Tiếp tục nhấp vào Cài đặt trong cửa sổ bật lên,Cửa sổ t Lúc này, việc làm mới trang hiệu quả sẽ đến,tận hưởng nó!!!! -![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) \ No newline at end of file +![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) diff --git a/docs/help/README_zh-TW.md b/docs/help/README_zh-TW.md index 338d64ac2..cdc029ed7 100644 --- a/docs/help/README_zh-TW.md +++ b/docs/help/README_zh-TW.md @@ -15,8 +15,7 @@ -[]() 如何安裝油猴腳本? -======================== +# []() 如何安裝油猴腳本? ### [](#) 1. 安裝一個使用者腳本管理器 @@ -26,51 +25,51 @@ Windows -| # | 瀏覽器 | Tampermonkey 下載地址 | 安裝方法 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chrome瀏覽器) | -| | Edge 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦)或 [~Edge 外接程序~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(很慢) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edge瀏覽器) | -| | 火狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#火狐瀏覽器) | -| | 水狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#水狐瀏覽器) | -| | 百分瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#百分瀏覽器) | -| | 360 極速瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360極速瀏覽器) | -| | 360 安全瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360安全瀏覽器) | -| | QQ 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qq瀏覽器) | -| | 搜狗瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#搜狗瀏覽器) | -| | 傲遊瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#傲遊瀏覽器) | -| | 星願瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#星願瀏覽器) | -| | Vivaldi 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldi瀏覽器) | -| | Yandex 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandex瀏覽器) | -| | Opera 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#opera瀏覽器) | -| | 獵豹瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#獵豹瀏覽器) | +| # | 瀏覽器 | Tampermonkey 下載地址 | 安裝方法 | +| --- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| | Chrome 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#chrome瀏覽器) | +| | Edge 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦)或 [~Edge 外接程序~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(很慢) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#edge瀏覽器) | +| | 火狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#火狐瀏覽器) | +| | 水狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#水狐瀏覽器) | +| | 百分瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#百分瀏覽器) | +| | 360 極速瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360極速瀏覽器) | +| | 360 安全瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#_360安全瀏覽器) | +| | QQ 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#qq瀏覽器) | +| | 搜狗瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#搜狗瀏覽器) | +| | 傲遊瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#傲遊瀏覽器) | +| | 星願瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#星願瀏覽器) | +| | Vivaldi 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#vivaldi瀏覽器) | +| | Yandex 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#yandex瀏覽器) | +| | Opera 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#opera瀏覽器) | +| | 獵豹瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147196#獵豹瀏覽器) | Mac -| # | 瀏覽器 | Tampermonkey 下載地址 | 安裝方法 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| | Chrome 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chrome瀏覽器) | -| | Edge 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦)或 [~Edge 外接程序~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(很慢) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edge瀏覽器) | -| | 火狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#火狐瀏覽器) | -| | 水狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#水狐瀏覽器) | -| | 360 極速瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360極速瀏覽器) | -| | 360 安全瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360安全瀏覽器) | -| | 傲遊瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#傲遊瀏覽器) | -| | 星願瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#星願瀏覽器) | -| | Vivaldi 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldi瀏覽器) | -| | Yandex 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandex瀏覽器) | -| | Opera 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#opera瀏覽器) | +| # | 瀏覽器 | Tampermonkey 下載地址 | 安裝方法 | +| --- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| | Chrome 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#chrome瀏覽器) | +| | Edge 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦)或 [~Edge 外接程序~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(很慢) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#edge瀏覽器) | +| | 火狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#火狐瀏覽器) | +| | 水狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#水狐瀏覽器) | +| | 360 極速瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360極速瀏覽器) | +| | 360 安全瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#_360安全瀏覽器) | +| | 傲遊瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#傲遊瀏覽器) | +| | 星願瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#星願瀏覽器) | +| | Vivaldi 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#vivaldi瀏覽器) | +| | Yandex 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#yandex瀏覽器) | +| | Opera 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147197#opera瀏覽器) | Linux -| # | 瀏覽器 | Tampermonkey 下載地址 | 安裝方法 | -| --- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | -| | Chrome 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chrome瀏覽器) | -| | Edge 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦)或 [~Edge 外接程序~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(很慢) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edge瀏覽器) | -| | 火狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#火狐瀏覽器) | -| | 水狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#水狐瀏覽器) | -| | Vivaldi 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldi瀏覽器) | -| | Yandex 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandex瀏覽器) | -| | Opera 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#opera瀏覽器) | +| # | 瀏覽器 | Tampermonkey 下載地址 | 安裝方法 | +| --- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| | Chrome 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#chrome瀏覽器) | +| | Edge 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphd)(推薦)或 [~Edge 外接程序~](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd)(很慢) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#edge瀏覽器) | +| | 火狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#火狐瀏覽器) | +| | 水狐瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/firefox/detail/tampermonkey)(推薦) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#水狐瀏覽器) | +| | Vivaldi 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#vivaldi瀏覽器) | +| | Yandex 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#yandex瀏覽器) | +| | Opera 瀏覽器 | [Crx 搜搜擴展商店](https://www.crxsoso.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo)(推薦)或 [~Chrome 網路應用程式商店~](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)(被牆) | [點擊查看](https://www.youxiaohou.com/zh-cn/crx.html?spm=1725839147198#opera瀏覽器) | 安裝成功後瀏覽器擴充功能列將出現如下圖標: @@ -1058,4 +1057,4 @@ Linux 此時來到生效的頁面刷新,盡情享受吧!!!! -![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) \ No newline at end of file +![1111.png](https://s2.loli.net/2024/09/09/b8sGXUgz3Q2v7ph.png) diff --git a/docs/icon/Scripts Icons/1.png b/docs/icon/Scripts Icons/1.png deleted file mode 100644 index 3dc6b665f..000000000 Binary files a/docs/icon/Scripts Icons/1.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/Clipboard.png b/docs/icon/Scripts Icons/Clipboard.png deleted file mode 100644 index ef0fa7df0..000000000 Binary files a/docs/icon/Scripts Icons/Clipboard.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/Finder.jpg b/docs/icon/Scripts Icons/Finder.jpg deleted file mode 100644 index 4d80c520e..000000000 Binary files a/docs/icon/Scripts Icons/Finder.jpg and /dev/null differ diff --git a/docs/icon/Scripts Icons/Google-advance-search.png b/docs/icon/Scripts Icons/Google-advance-search.png deleted file mode 100644 index 582eec5ec..000000000 Binary files a/docs/icon/Scripts Icons/Google-advance-search.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/RedFork.svg b/docs/icon/Scripts Icons/RedFork.svg deleted file mode 100644 index c175e7391..000000000 --- a/docs/icon/Scripts Icons/RedFork.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/icon/Scripts Icons/default.png b/docs/icon/Scripts Icons/default.png deleted file mode 100644 index 4b0031b7b..000000000 Binary files a/docs/icon/Scripts Icons/default.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/icons8-POPUPWINDOW-48.png b/docs/icon/Scripts Icons/icons8-POPUPWINDOW-48.png deleted file mode 100644 index 14ad84e10..000000000 Binary files a/docs/icon/Scripts Icons/icons8-POPUPWINDOW-48.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/icons8-Underlines-96.png b/docs/icon/Scripts Icons/icons8-Underlines-96.png deleted file mode 100644 index 893957752..000000000 Binary files a/docs/icon/Scripts Icons/icons8-Underlines-96.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/icons8-google-96.png b/docs/icon/Scripts Icons/icons8-google-96.png deleted file mode 100644 index 7c1df1f29..000000000 Binary files a/docs/icon/Scripts Icons/icons8-google-96.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/icons8-mark-96.png b/docs/icon/Scripts Icons/icons8-mark-96.png deleted file mode 100644 index ae764403a..000000000 Binary files a/docs/icon/Scripts Icons/icons8-mark-96.png and /dev/null differ diff --git a/docs/icon/Scripts Icons/icons8-up-96.png b/docs/icon/Scripts Icons/icons8-up-96.png deleted file mode 100644 index f750204b9..000000000 Binary files a/docs/icon/Scripts Icons/icons8-up-96.png and /dev/null differ diff --git a/docs/ja/README.md b/docs/ja/README.md new file mode 100644 index 000000000..143a4426b --- /dev/null +++ b/docs/ja/README.md @@ -0,0 +1,1329 @@ + +
    + + +**この脚本はインターネット上の膨大な数のネチズンから提供されたものです,いくつか変更を加えただけです.ありがとうネチズン** +**侵害があった場合,連絡先を削除する必要があります** + +## スクリプトリスト + +💡 **Tip:** _プレビューのスクリーンショットを表示するには,拡張機能名の下をクリックします ▸ または説明します。_ + + +

    ChatGPT関連するスクリプト

    + + + ChatGPTコードのフォントサイズが小さくなりました  + + +

    + +
    + させて ChatGPT コードボックスのフォントサイズが小さくなる +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + ChatGPT チャットコードコピーボタン  + + +

    + +
    + 存在する chatgpt.com 上部のコードブロックの右下隅にアニメーションを追加します。“コードをコピーする”ボタン +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + ChatGPT 文字カウンター  + + +

    + +
    + 添加一キャラクター计数器到输入框,に限定される 32732 キャラクター。(ChatGPT 限界は 32732 个字符。) +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + ChatGPT セルフメッセージと最大幅を折りたたむ  + + +

    + +
    + 自分が送信した長いメッセージを自動的に折りたたむ,画面スペースを節約する。チャットウィンドウの最大幅を設定できます。,長いメッセージが指定範囲を超えないようにする。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    Web関連のスクリプト

    + + + Web ページ書き込みクリップ バージョン認証マネージャー  + + +

    + +
    + Web ページが編集されたバージョンを公開することを禁止する,緑はリリース用,レッドバン,オレンジ色の臨時ルート +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + リフトCSDNログインコピーの制限  + + +

    + +
    + ファックユー CSDN ログインコピー,ログインせずにコードボックスの内容をコピーする +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + ゴージャスなグラデーションで Web フォームを美しくする  + + +

    + +
    + Web ページ上の表のすべての列にカラー グラデーション美化を自動的に適用します。. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Web ページ上のキーワードを強調表示する+(推薦する)  + + +

    + +
    + Web ページ上のテキストを強調表示する +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Web テキストを強調表示する-ミニバージョン  + + +

    + +
    + スクロール時に動的に読み込まれるコンテンツを含む、Web ページ上のカスタム キーワードの強調表示 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + 小さなウィンドウでプレビュー  + + +

    + +
    + リンクをドラッグするとポップアップ ウィンドウでリンクが開きます,開く前にプレビューを提供します,使用 Edge 先読み技術。同時に、開いたときの小窓の後ろにアクリル効果を追加します。。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + リンクの下線を削除する  + + +

    + +
    + Web リンクから下線を削除する +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + 小さな上下スクロールボタン  + + +

    + +
    + ページの右側に上下のスクロール ボタンを追加します。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + ワンタッチの上下ボタン  + + +

    + +
    + から変更されましたGreasyforkユーザースクリプト Web ページに上部と下部のボタンを追加する,長いページの上部または下部への素早い移動を容易にします。。 下にスクロールしたときにボタンの色の変更を追加しました,3数秒以内にスクロールがない場合は自動的に停止します +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    GitHub関連するスクリプト

    + + + GitHub送信情報表示HTML  + + +

    + +
    + このスクリプトは、 GitHub 投稿情報は、 HTML ビュー,提出物の詳細をより明確に確認するには。情報リストを自動的に送信します、コミットヘッダーと最新のコミット情報が変換されます。 HTML 形式,より良い視覚効果とユーザーエクスペリエンスを提供する。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GitHub クイックジャンプアシスタント  + + +

    + +
    + GitHub クイック ジャンプ アシスタントは、ユーザーがすばやくアクセスできるように設計されたツールです。 GitHub 倉庫向けに設計。開発者の使用能力を大幅に向上させることができます GitHub 時間効率。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GitHub ファイルリスト整形ツール  + + +

    + +
    + GitHub File List Beautifier はユーザースクリプトです,強化するために使用される GitHub 倉庫内のファイルの表示効果。ファイルやフォルダーに色を追加できます,ファイルタイプのアイコンを小さな画像に置き換えます,コードベースの参照と管理が容易になります。。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Github コード言語のリストをすべて表示  + + +

    + +
    + 拡大する Github リポジトリ上の言語のリスト,各言語を表示,小さな部品を隠すのではなく、 “他の” 下 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GitHub デバイスの認証を自動的に確認する  + + +

    + +
    + 存在するGitHub認証ページでは、認証コードが自動的に入力され、自動的に確認されます。。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GitHubフォルダーのダウンロード  + + +

    + +
    + ダウンロードボタンを追加する,特定のファイルを簡単にダウンロードできます GitHub フォルダ。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GitHub単一ファイルのダウンロードとファイルのコピーURL  + + +

    + +
    + 各ファイル行の末尾にある「追加」ボタン,元のファイルをコピーするには URL そしてファイルをダウンロードする +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + 🤠 Github 強化アシスタント 倉庫のディスプレイサイズ 非アクティブな開発に関する警告 倉庫内のユーザーの他の倉庫に素早くジャンプします 🤠  + + +

    + +
    + 存在するGithub倉庫の表示および検索時に倉庫のサイズを表示する ,非アクティブな開発に関する警告,倉庫内で素早くジャンプ. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GitHub Sort by Date  + + +

    + +
    + 倉庫リストファイルのソート方法を日付の降順に変更する,最新の更新されたファイルを簡単に表示できます。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    Google関連するスクリプト

    + + + Google 詳細検索  + + +

    + +
    + これは、 Google 詳細検索フォームのユーザー スクリプトを追加する。ページの上部に非表示可能な高度な検索フォームを追加します,より正確に情報を検索できるようになります。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Google 特定のサイトを検索してブロックする  + + +

    + +
    + 検索エンジンの結果から特定のサイトをブロックする,ユーザーが不要な検索結果を除外できるようにする。 カスタム入力ブロック サイト。形式-zhihu -baidu Google 検索コンテンツをブロックするために使用されます +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    GreasyFork関連するスクリプト

    + + + GreasyFork強化に適した  + + +

    + +
    + スクリプトの詳細ページが追加され、リンクを追加するのに適しています。,Webページをコピーする,タイヤ検索 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GrreasyFork ユーザーが公開したスクリプト データの視覚化  + + +

    + +
    + 使用Chart.jsユーザースクリプトデータの取得と可視化,また、ユーザーの個人ホームページ上にグラフを生成し、以下の詳細なインストール状況を表示します。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GreaysFork 強化する WebHook同期設定  + + +

    + +
    + このスクリプトは、スクリプト同期情報を迅速に入力するのに役立ちます。,複数の国の言語コードをバッチで追加します,選択ボックスを 1 つずつクリックして対応する URL に移動するのではなく、。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GreasyFork Markdown toobar  + + +

    + +
    + フォーラムでデフォルトで使用されます Markdown 形式,フォーマットのヘルプリンクを追加し、 Markdown ツールバーの紹介 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GreasyFork 脚本の評価を表示する  + + +

    + +
    + 評価スコアをスクリプトリストに追加 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GreasyFork 詳細検索  + + +

    + +
    + Googleを使って検索する GreasyFork そして SleazyFork スクリプトオン +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + GreasyFork ナビゲーションバーの強化  + + +

    + +
    + 強化するgreasyforkナビゲーションバー,ユーザーリストを追加,ユーザーコンソールなど +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Greasyforkフレーマ  + + +

    + +
    + 強化するgreasyfork,コードをコピーする,スクリプトのダウンロード,秒までの正確な時間,ホームページのクリーンアップ,ワンクリックレポートについて話し合う,スクリプトリストジャンプコード追加ダウンロード コードの表示とコード参照ファイルの表示を美しくする,スクリプトアイコンを表示,アダルト スクリプトやその他の操作にジャンプします +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Greasyfork 通知アシスタント  + + +

    + +
    + スクリプトまたは参加しているディスカッションに対して新しい返信があったとき,スクリプトは、Web ページ上のモーダル ウィンドウに最新のディスカッション コンテンツを表示します。。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + Script Finderグリース モンキー スクリプト ファインダー  + + +

    + +
    + Script Finder ユーザースクリプトです(userscript),あらゆる Web サイト上のユーザースクリプトの検索と管理に役立ちます +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    大人向けの脚本

    + + + MiSSAV自動ログイン  + + +

    + +
    + 検出 MisssAV 州,ログインしていない場合は自動的にログインします +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + MissAVコレクションマネージャー  + + +

    + +
    + missプレイリストのバックアップ,写真のダウンロードとビデオ情報の保存をサポート.ローカル Web ページをエクスポートする へのエクスポートをサポートwebdav +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + TissAV自動ログイン  + + +

    + +
    + 検出 TissAV 州,ログインしていない場合は自動的にログインします +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + JableTV自動ログイン  + + +

    + +
    + 検出 JableTV 州,ログインしていない場合は自動的にログインします +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    自動翻訳

    + + + 外国語ターミネータ  + + +

    + +
    + 中国語以外の文字を認識する,長さがそれより長い場合は、 5 翻訳されたテキストには中国語が含まれていません,それを中国語に置き換えます,アクセスできる必要があるgoogleネットワーク +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    +

    + + + ウェブページの翻訳——自動的に中国語に翻訳されます  + + +

    + +
    + 中国語以外の各 Web ページの右下隅に記入してください(左下隅に調整可能)追加します google 翻訳アイコン,このバージョンは中国語翻訳版です,外国語のみを中国語に翻訳する,自動翻訳を追加する +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + Readmeファイル / + + + 話し合う +
    + + + +--- + +## インストール方法/スクリプトを使用する? + +任意のスクリプトを使用するには,まずブラウザをインストールする必要があります **Tampermonkey スクリプトマネージャー拡張機能([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** + +- フォームをクリックしてください **\[インストール\]** スクリプト マネージャーのインストール インターフェイスを直接ポップアップ表示します。。 +- もし Github アクセス速度が遅すぎる,クリックするか選択できます GreasyFork **\[インストール\]** 後に拡張機能プロンプトが表示されます,もう一度クリックしてください **\[インストール\]** それでおしまい。 +- [詳細なチュートリアルを表示する](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md) + +> [!IMPORTANT] +> +> - _その他に基づく **Chromium** カーネルブラウザ(国内カバーブラウザなど)一般的に使用できます Chrome 拡大する。_ +> - _ぜひご利用ください **Tampermonkey 正式版** 拡大する,他のユーザー スクリプト マネージャーでは、次のような問題が発生する可能性があります。**正常に動作しない**脚本。_ +> - _スクリプトを再インストールしたい場合,覚えておいてください Tampermonkey 延長された**ごみ箱から完全に削除する**スクリプトの作成後、スクリプトを再インストールします。。_ + +> _**オフラインインストールなし .crx 拡大する?[Chrome、Edge 非表示のまま再度開く [ドラッグアンドドロップでインストール .crx 拡大する] 関数!](https://zhuanlan.zhihu.com/p/276027099)**_ + +--- + +## オープンソースに感謝します + +> [!TIP] +> +> - XIU2 :+1: +> - このリポジトリの Readme ファイルがコピーされます[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)コンテンツ `ブラウザとスクリプトマネージャー` + +> [!TIP] +> +> - Hmjz100 :+1: +> - 全部倉庫の中`README.md`ファイルバッジがコピーされました[Hmjz100](https://github.com/hmjz100)倉庫[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)内的[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)ドキュメントバッジのスタイル + +> [!TIP] +> +> - FengFeng :+1: +> - 仓库内部所有`README.md`ファイルヘッダーの紹介とインストール履歴テーブルがコピーされました[FengFeng](https://github.com/BonjourFeng)倉庫[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)ファイルの内容 +> - この倉庫のサブ倉庫`UserScriptsHistory`自動更新インストール履歴テーブルのイメージコードもコピーして使用します。[FengFeng](https://github.com/BonjourFeng)倉庫[Script-History](https://github.com/BonjourFeng/Script-History)内のコード[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) + +> [!TIP] +> +> - 砂漠の息子 :+1: +> - コピーされました [砂漠の息子](https://github.com/maboloshi)倉庫[github-chinese](https://github.com/maboloshi/github-chinese)内のコード
    +> - この倉庫には`writer.py` `update-contributors.yml` を使用してコピーされました[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)内部のコード +> - このリポジトリの Readme ファイルがコピーされます[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)コンテンツ `インストール方法/スクリプトを使用する?` + +> [!TIP] +> +> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 劉禅鵬 :+1: +> - _このリポジトリの自動翻訳と Action ヤンキーには本当に感謝しています[Adam Lui 劉禅鵬](https://github.com/adamlui)素晴らしいアイデアとコード!_ :trollface: +> - _ヤンキースをイメージしたウェアハウスのネーミング[Adam Lui 劉禅鵬](https://github.com/adamlui)鼓舞する_ :trollface: +> - _このリポジトリの Readme ファイルは次の場所にあります。[Adam Lui 劉禅鵬](https://github.com/adamlui)自己申告スタイル_ :trollface: +> - _スクリプト内の相互リダイレクト ジャンプは次のものから来ています。[Adam Lui 劉禅鵬](https://github.com/adamlui)自己申告スタイル_ :trollface: +> - _全てはこの倉庫にある`README.md`この Yankee リポジトリからコピーして使用されたファイル`README.md`ドキュメントのレイアウト,デリミタ,コード,アイデア_ :trollface: +> - _コピーされたヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui) Action 内部コード_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _コピーされました ヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui)Action 内部コード_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _コピーされたヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui)_ [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)デリミタ,写植スタイル :trollface: +> - _コピーされました ヤンキー[Adam Lui 劉禅鵬](https://github.com/adamlui)Python 内部コード_ [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: + +## 投稿者 + + + +人民的勤务员 +人々の奉仕者 + + + +投稿者リスト: [contributors](https://github.com/jaywcjlove/github-action-contributors). 自動生成 弟の曲 + +## 🌐 ブラウザとスクリプトマネージャー + +| 推奨ブラウザ | インストールマネージャー | ブラウザをインストールする | +| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | +|
    Chrome または に基づく Chromium カーネルブラウザ[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | +|
    Safari ブラウザ(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] または ![][stayr] [Stay] |
    [![][safari]][safari_link] | +|
    Firefox または に基づく Gecko カーネルブラウザ[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | +|
    Opera ブラウザ[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | +|
    Via ブラウザ(Android)[![][via]][via_link] |
    内蔵ブラウザ |
    [![][via]][via_link] | +|
    X ブラウザ(Android) [![][x]][x_link] |
    内蔵ブラウザ |
    [![][x]][x_link] | +|
    KIWI ブラウザ(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | +|
    キツネザルブラウザ(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | +| | | | + +[Tampermonkey]: http://tampermonkey.net/ "タンパーモンキー" +[Violentmonkey]: https://violentmonkey.github.io/ "凶暴な猿" +[Macaque]: https://macaque.app/ "サル" +[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png +[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" +[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png +[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png +[opera_link]: https://www.opera.com "operaブラウザ" +[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png +[edge_link]: https://www.microsoft.com/edge "edge ブラウザ" +[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png +[firefox_link]: https://www.firefox.com "Firefoxブラウザ" +[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png +[chrome_link]: https://gooogleweb.com/index.html "Chromeブラウザ" +[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png +[QQ_link]: https://browser.qq.com/ "QQブラウザ" +[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png +[safari_link]: https://www.apple.com/vn/safari/ "Safariブラウザ" +[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png +[via_link]: https://viayoo.com/ "VIAブラウザ" +[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png +[x_link]: https://www.xbext.com/ "Xブラウザ" +[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "凶暴な猿" +[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png +[cat_link]: https://docs.scriptcat.org/ "脚本猫" +[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "タンパーモンキー" +[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png +[le_link]: https://lemurbrowser.com/ "キツネザルブラウザ" +[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg +[kiwi_link]: https://kiwibrowser.com/ "KIWIブラウザ" + +

    さらなるユーザースクリプト / +トップに戻る↑

    + +## License + +The MIT License. diff --git a/docs/ko/README.md b/docs/ko/README.md new file mode 100644 index 000000000..008336009 --- /dev/null +++ b/docs/ko/README.md @@ -0,0 +1,1329 @@ + +
    + + +**해당 대본은 인터넷상의 수많은 네티즌들로부터 나온 것이다.,방금 몇 가지 사항을 변경했습니다..네티즌 여러분 감사합니다** +**침해가 있는 경우,연락처를 삭제해야 합니다.** + +## 스크립트 목록 + +💡 **Tip:** _미리보기 스크린샷을 표시하려면,확장명 아래를 클릭하세요. ▸ 또는 설명。_ + + +

    ChatGPT관련 스크립트

    + + + ChatGPT코드 글꼴 크기 감소  + + +

    + +
    + 허락하다 ChatGPT 코드 상자의 글꼴 크기가 작아집니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + ChatGPT 채팅 코드 복사 버튼  + + +

    + +
    + 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션이 포함된 애니메이션을 추가합니다.“코드 복사”단추 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + ChatGPT 캐릭터 카운터  + + +

    + +
    + 添加一캐릭터计数器到输入框,로 제한됨 32732 캐릭터。(ChatGPT 한도는 32732 个字符。) +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + ChatGPT 자체 메시지 및 최대 너비 축소  + + +

    + +
    + 귀하가 보낸 긴 메시지를 자동으로 접습니다.,화면 공간 절약。채팅 창의 최대 너비를 설정할 수 있습니다.,긴 메시지가 지정된 범위를 초과하지 않도록 유지。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    웹 관련 스크립트

    + + + 웹 페이지 작성 클립 버전 권한 관리자  + + +

    + +
    + 편집된 버전에서 웹페이지가 표시되는 것을 금지합니다.,출시용 녹색,빨간색 금지,주황색 임시 방향 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 승강기CSDN로그인 복사 제한  + + +

    + +
    + 엿 먹어라 CSDN 로그인복사,로그인하지 않고 코드 상자 내용 복사 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요  + + +

    + +
    + 웹 페이지 테이블의 모든 열에 색상 그라데이션 미화를 자동으로 적용합니다.. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 웹페이지에서 키워드 강조표시+(추천하다)  + + +

    + +
    + 웹페이지의 텍스트 강조표시 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 웹 텍스트 강조 표시-미니 버전  + + +

    + +
    + 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 작은 창 미리보기  + + +

    + +
    + 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 링크 밑줄 제거  + + +

    + +
    + 웹 링크에서 밑줄 제거 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 위아래로 작은 스크롤 버튼  + + +

    + +
    + 페이지 오른쪽에 상하 스크롤 버튼 추가 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 원터치 상하 버튼  + + +

    + +
    + 다음에서 수정됨Greasyfork사용자 스크립트 웹 페이지에 상단 및 하단 버튼 추가,긴 페이지의 상단 또는 하단으로 빠르게 이동할 수 있습니다.。 아래로 스크롤할 때 버튼 색상 변경 추가,3몇 초 내에 스크롤이 없으면 자동으로 중지됩니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    GitHub관련 스크립트

    + + + GitHub정보 표시 제출HTML  + + +

    + +
    + 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GitHub 빠른 점프 도우미  + + +

    + +
    + GitHub Quick Jump Assistant는 사용자가 GitHub 창고용으로 설계됨。개발자의 사용 능력을 크게 향상시킬 수 있습니다. GitHub 시간 효율성。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GitHub 파일 목록 미화자  + + +

    + +
    + GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + Github 코드 언어 목록 모두 표시  + + +

    + +
    + 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다 “다른” 아래에 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GitHub 장치 승인 자동 확인  + + +

    + +
    + 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GitHub폴더 다운로드  + + +

    + +
    + 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GitHub단일 파일 다운로드 및 파일 복사URL  + + +

    + +
    + 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 🤠 Github 어시스턴트 강화 창고 전시 크기 비활성 개발 경고 창고 내 사용자의 다른 창고로 빠르게 이동 🤠  + + +

    + +
    + 존재하다Github창고 보기 및 검색 시 창고 크기 표시 ,비활성 개발 경고,창고 내 빠른 점프. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GitHub Sort by Date  + + +

    + +
    + 창고 목록 파일 정렬 방식을 날짜 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    Google관련 스크립트

    + + + Google 고급 검색  + + +

    + +
    + 이것은 Google 고급 검색 양식에 대한 사용자 스크립트 추가。페이지 상단에 숨길 수 있는 고급 검색 양식을 추가합니다.,보다 정확하게 정보를 검색할 수 있습니다.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + Google 특정 사이트 검색 및 차단  + + +

    + +
    + 검색 엔진 결과에서 특정 사이트 차단,사용자가 원치 않는 검색 결과를 필터링하도록 지원。 사용자 정의 입력 차단 사이트。체재-zhihu -baidu Google 검색 콘텐츠를 차단하는 데 사용됩니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    GreasyFork관련 스크립트

    + + + GreasyFork향상에 적합  + + +

    + +
    + 스크립트 세부정보 페이지가 추가되어 링크 추가에 적합합니다. 클릭하면 웹페이지가 열립니다.,웹페이지 복사,타이어 검색 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GrreasyFork 사용자 게시 스크립트 데이터 시각화  + + +

    + +
    + 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GreaysFork 향상시키다 WebHook동기화 설정  + + +

    + +
    + 이 스크립트를 사용하면 스크립트 동기화 정보를 빠르게 입력할 수 있습니다.,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GreasyFork Markdown toobar  + + +

    + +
    + 포럼에서 기본적으로 사용됨 Markdown 체재,형식 도움말 링크를 추가하고 Markdown 툴바 소개 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GreasyFork 스크립트 등급 표시  + + +

    + +
    + 스크립트 목록에 평가 점수 추가 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GreasyFork 고급 검색  + + +

    + +
    + Google을 사용하여 검색 GreasyFork 그리고 SleazyFork 스크립트 켜기 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + GreasyFork 탐색 표시줄 개선  + + +

    + +
    + 향상시키다greasyfork네비게이션 바,사용자 목록 추가,사용자 콘솔 등 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + Greasyfork프레이머  + + +

    + +
    + 향상시키다greasyfork,코드 복사,스크립트 다운로드,초 단위의 정확한 시간,홈페이지 정리,원클릭 보고에 대해 논의,스크립트 목록 점프 코드 추가 다운로드 코드 보기 및 코드 참조 파일 표시,스크립트 아이콘 표시,성인용 스크립트 및 기타 작업으로 이동 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + Greasyfork 알림 도우미  + + +

    + +
    + 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + Script Finder그리스 원숭이 스크립트 찾기  + + +

    + +
    + Script Finder 사용자 스크립트입니다(userscript),모든 웹사이트에서 사용자 스크립트를 찾고 관리하는 데 도움이 됩니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    성인용 대본

    + + + MiSSAV자동 로그인  + + +

    + +
    + 발각 MisssAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + MissAV컬렉션 관리자  + + +

    + +
    + miss재생목록 백업,사진 다운로드 및 비디오 정보 저장 지원.로컬 웹페이지 내보내기 수출 지원webdav +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + TissAV자동 로그인  + + +

    + +
    + 발각 TissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + JableTV자동 로그인  + + +

    + +
    + 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    자동 번역

    + + + 외국어 터미네이터  + + +

    + +
    + 중국어가 아닌 문자 인식,길이가 그 이상인 경우 5 그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그럼 중국어로 바꾸세요,접근 가능해야 함google회로망 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    +

    + + + 웹페이지 번역——중국어로 자동 번역됨  + + +

    + +
    + 중국어가 아닌 웹페이지의 오른쪽 하단 모서리를 제공합니다.(왼쪽 하단으로 조정 가능)추가하다 google 번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 읽어보기 파일 / + + + 논의하다 +
    + + + +--- + +## 설치 방법/스크립트 사용? + +스크립트를 사용하려면,먼저 브라우저를 설치해야 합니다 **Tampermonkey 스크립트 관리자 확장([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** + +- 양식을 클릭하세요 **\[설치하다\]** 스크립트 관리자 설치 인터페이스를 직접 팝업。 +- 만약에 Github 접속 속도가 너무 느림,클릭하여 선택할 수 있습니다. GreasyFork **\[설치하다\]** 다음 후에 확장 프롬프트가 나타납니다.,다시 클릭하세요 **\[설치하다\]** 그게 다야。 +- [자세한 튜토리얼 보기](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md) + +> [!IMPORTANT] +> +> - _기타 기반 **Chromium** 커널 브라우저(국내 커버 브라우저 등)일반적으로 사용할 수 있습니다 Chrome 확장하다。_ +> - _꼭 이용해주세요 **Tampermonkey 공식 버전** 확장하다,其他的用户각본管理器可能导致**제대로 작동하지 않음**脚本。_ +> - _스크립트를 다시 설치하고 싶다면,꼭 기억해주세요 Tampermonkey 펼친**휴지통에서 완전히 삭제**스크립트가 끝나면 스크립트를 다시 설치하십시오.。_ + +> _**오프라인 설치 없음 .crx 확장하다?[Chrome、Edge 숨겨진 다시 열기 [드래그 앤 드롭 설치 .crx 확장하다] 기능!](https://zhuanlan.zhihu.com/p/276027099)**_ + +--- + +## 오픈소스 덕분에 특별히 감사드립니다 + +> [!TIP] +> +> - XIU2 :+1: +> - 이 저장소 추가 정보 파일이 복사되었습니다.[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)콘텐츠 `브라우저 및 스크립트 관리자` + +> [!TIP] +> +> - Hmjz100 :+1: +> - 창고에 다 있어요`README.md`파일 배지가 복사되었습니다.[Hmjz100](https://github.com/hmjz100)창고[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)내부[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)문서 배지 스타일 + +> [!TIP] +> +> - FengFeng :+1: +> - 仓库내부에所有`README.md`파일 헤더 소개 및 설치 내역 표 복사[FengFeng](https://github.com/BonjourFeng)창고[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)파일 내용 +> - 이 창고의 하위 창고`UserScriptsHistory`자동 업데이트 설치 기록 테이블 이미지 코드도 복사되어 사용됩니다.[FengFeng](https://github.com/BonjourFeng)창고[Script-History](https://github.com/BonjourFeng/Script-History)내의 코드[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) + +> [!TIP] +> +> - 사막의 아들 :+1: +> - 복사됨 [사막의 아들](https://github.com/maboloshi)창고[github-chinese](https://github.com/maboloshi/github-chinese)내의 코드
    +> - 이 창고에는`writer.py` `update-contributors.yml` 다음을 사용하여 복사됨[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)내부 코드 +> - 이 저장소 추가 정보 파일이 복사되었습니다.[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)콘텐츠 `설치 방법/스크립트 사용?` + +> [!TIP] +> +> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 리우잔펑 :+1: +> - _이 저장소의 자동 번역 및 Action Yankee에게 특별히 감사드립니다.[Adam Lui 리우잔펑](https://github.com/adamlui)훌륭한 아이디어와 코드!_ :trollface: +> - _이 창고의 명명 스타일은 양키스에서 영감을 받았습니다.[Adam Lui 리우잔펑](https://github.com/adamlui)고무하다_ :trollface: +> - _이 저장소의 추가 정보 파일은 다음에서 제공됩니다.[Adam Lui 리우잔펑](https://github.com/adamlui)자기보고 스타일_ :trollface: +> - _스크립트 내의 상호 리디렉션 점프는 다음에서 비롯됩니다.[Adam Lui 리우잔펑](https://github.com/adamlui)자기보고 스타일_ :trollface: +> - _이 창고에 있는 모든 것`README.md`이 Yankee 저장소에서 복사되어 사용되는 파일`README.md`문서 레이아웃,구분 기호,암호,아이디어_ :trollface: +> - _복사된 양키[Adam Lui 리우잔펑](https://github.com/adamlui) Action 내부 코드_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _복사됨 양키[Adam Lui 리우잔펑](https://github.com/adamlui)Action 내부 코드_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _복사된 양키[Adam Lui 리우잔펑](https://github.com/adamlui)_ [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)구분 기호,조판 스타일 :trollface: +> - _복사됨 양키[Adam Lui 리우잔펑](https://github.com/adamlui)Python 내부 코드_ [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: + +## 기부자 + + + +人民的勤务员 +인민의 하인 + + + +기여 목록:: [contributors](https://github.com/jaywcjlove/github-action-contributors). 자동으로 생성됨 동생의 노래 + +## 🌐 브라우저 및 스크립트 관리자 + +| 권장 브라우저 | 설치 관리자 | 브라우저 설치 | +| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | +|
    Chrome 또는 기반으로 Chromium 커널 브라우저[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | +|
    Safari 브라우저(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] 또는 ![][stayr] [Stay] |
    [![][safari]][safari_link] | +|
    Firefox 또는 기반으로 Gecko 커널 브라우저[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | +|
    Opera 브라우저[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | +|
    Via 브라우저(Android)[![][via]][via_link] |
    내장 브라우저 |
    [![][via]][via_link] | +|
    X 브라우저(Android) [![][x]][x_link] |
    내장 브라우저 |
    [![][x]][x_link] | +|
    KIWI 브라우저(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | +|
    여우원숭이 브라우저(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | +| | | | + +[Tampermonkey]: http://tampermonkey.net/ "원숭이를 조작하다" +[Violentmonkey]: https://violentmonkey.github.io/ "난폭한 원숭이" +[Macaque]: https://macaque.app/ "원숭이" +[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png +[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" +[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png +[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png +[opera_link]: https://www.opera.com "opera브라우저" +[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png +[edge_link]: https://www.microsoft.com/edge "edge 브라우저" +[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png +[firefox_link]: https://www.firefox.com "Firefox브라우저" +[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png +[chrome_link]: https://gooogleweb.com/index.html "Chrome브라우저" +[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png +[QQ_link]: https://browser.qq.com/ "QQ브라우저" +[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png +[safari_link]: https://www.apple.com/vn/safari/ "Safari브라우저" +[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png +[via_link]: https://viayoo.com/ "VIA브라우저" +[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png +[x_link]: https://www.xbext.com/ "X브라우저" +[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "난폭한 원숭이" +[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png +[cat_link]: https://docs.scriptcat.org/ "각본 고양이" +[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "원숭이를 조작하다" +[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png +[le_link]: https://lemurbrowser.com/ "여우원숭이 브라우저" +[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg +[kiwi_link]: https://kiwibrowser.com/ "KIWI브라우저" + +

    더 많은 사용자 스크립트 / +맨 위로 돌아가기↑

    + +## License + +The MIT License. diff --git a/docs/vi/README.md b/docs/vi/README.md new file mode 100644 index 000000000..8aefc324e --- /dev/null +++ b/docs/vi/README.md @@ -0,0 +1,1329 @@ + +
    + + +**Kịch bản đến từ đông đảo cư dân mạng trên Internet,Tôi vừa thực hiện một số thay đổi.Cảm ơn cư dân mạng** +**Nếu có sự vi phạm,Liên hệ phải được xóa** + +## danh sách kịch bản + +💡 **Tip:** _Để hiển thị ảnh chụp màn hình xem trước,Nhấp vào bên dưới tên tiện ích mở rộng ▸ hoặc mô tả。_ + + +

    ChatGPTTập lệnh liên quan

    + + + ChatGPTKích thước phông chữ mã giảm  + + +

    + +
    + cho phép ChatGPT Cỡ chữ trong hộp mã trở nên nhỏ hơn +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + ChatGPT Nút sao chép mã trò chuyện  + + +

    + +
    + hiện hữu chatgpt.com Thêm hình động có hình động ở góc dưới bên phải của khối mã phía trên“Sao chép mã”cái nút +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + ChatGPT bộ đếm ký tự  + + +

    + +
    + 添加一nhân vật计数器到输入框,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 个字符。) +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa  + + +

    + +
    + Tự động thu gọn các tin nhắn dài do bạn gửi,Tiết kiệm không gian màn hình。Cho phép bạn đặt độ rộng tối đa của cửa sổ trò chuyện,Giữ tin nhắn dài không vượt quá phạm vi được chỉ định。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    Các tập lệnh liên quan đến web

    + + + Trình quản lý ủy quyền phiên bản clip viết trang web  + + +

    + +
    + Cấm các trang web ị trên các phiên bản đã chỉnh sửa,màu xanh lá cây để phát hành,lệnh cấm đỏ,hướng dẫn tạm thời màu cam +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Thang máyCSDNHạn chế sao chép đăng nhập  + + +

    + +
    + chết tiệt bạn CSDN Đăng nhậpSao chép,Sao chép nội dung hộp mã mà không cần đăng nhập +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp  + + +

    + +
    + Tự động áp dụng làm đẹp độ dốc màu cho tất cả các cột của bảng trên trang web. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Đánh dấu từ khóa trên các trang web+(gợi ý)  + + +

    + +
    + Đánh dấu văn bản trên các trang web +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Làm nổi bật văn bản web-phiên bản nhỏ  + + +

    + +
    + Làm nổi bật từ khóa tùy chỉnh trên các trang web bao gồm nội dung được tải động khi cuộn +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Xem trước cửa sổ nhỏ  + + +

    + +
    + Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Xóa gạch chân liên kết  + + +

    + +
    + Xóa gạch chân khỏi liên kết web +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Nút cuộn nhỏ lên xuống  + + +

    + +
    + Thêm nút cuộn lên xuống ở bên phải trang +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Nút trên và dưới một chạm  + + +

    + +
    + Đã sửa đổi từGreasyforktập lệnh người dùng Thêm nút trên và dưới vào trang web,Tạo điều kiện di chuyển nhanh lên đầu hoặc cuối trang dài。 Đã thêm thay đổi màu nút khi cuộn xuống,3Tự động dừng nếu không cuộn trong vài giây +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    GitHubTập lệnh liên quan

    + + + GitHubGửi hiển thị thông tinHTML  + + +

    + +
    + Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GitHub Trợ lý nhảy nhanh  + + +

    + +
    + GitHub Quick Jump Assistant là một công cụ được thiết kế để giúp người dùng truy cập nhanh vào GitHub Được thiết kế cho nhà kho。Nó có thể cải thiện đáng kể khả năng sử dụng của các nhà phát triển GitHub hiệu quả thời gian。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GitHub Trình làm đẹp danh sách tập tin  + + +

    + +
    + GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Github Danh sách ngôn ngữ mã hiển thị tất cả  + + +

    + +
    + Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong “khác” Xuống +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GitHub Tự động xác nhận ủy quyền thiết bị  + + +

    + +
    + hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GitHubTải xuống thư mục  + + +

    + +
    + Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub thư mục。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GitHubTải xuống các tập tin đơn lẻ và sao chép các tập tinURL  + + +

    + +
    + Nút thêm vào cuối mỗi dòng tập tin,để sao chép tập tin gốc URL và tải về các tập tin +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + 🤠 Github Tăng cường trợ lý Kích thước hiển thị kho Cảnh báo phát triển không hoạt động Nhanh chóng chuyển đến các kho khác của người dùng trong kho 🤠  + + +

    + +
    + hiện hữuGithubHiển thị kích thước kho khi xem và tìm kiếm kho ,Cảnh báo phát triển không hoạt động,Nhảy nhanh vào kho. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GitHub Sort by Date  + + +

    + +
    + Thay đổi cách sắp xếp file danh sách kho theo thứ tự ngày giảm dần,Thuận tiện xem các tập tin cập nhật mới nhất。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    GoogleTập lệnh liên quan

    + + + Google Tìm kiếm nâng cao  + + +

    + +
    + Đây là một cho Google Thêm tập lệnh người dùng cho biểu mẫu tìm kiếm nâng cao。Nó thêm một biểu mẫu tìm kiếm nâng cao có thể ẩn ở đầu trang,Giúp bạn tìm kiếm thông tin chính xác hơn。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Google Tìm kiếm và chặn các trang web cụ thể  + + +

    + +
    + Chặn các trang web cụ thể khỏi kết quả của công cụ tìm kiếm,Giúp người dùng lọc ra các kết quả tìm kiếm không mong muốn。 Trang web chặn đầu vào tùy chỉnh。Định dạng-zhihu -baidu Được sử dụng để chặn nội dung tìm kiếm của Google +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    GreasyForkTập lệnh liên quan

    + + + GreasyForkthích hợp để nâng cao  + + +

    + +
    + Trang chi tiết script đã được thêm vào. Nó phù hợp để thêm liên kết.,Sao chép trang web,tìm kiếm lốp xe +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản  + + +

    + +
    + sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GreaysFork Nâng cao WebHookĐồng bộ hóa cài đặt  + + +

    + +
    + Tập lệnh này có thể giúp bạn nhập nhanh thông tin đồng bộ hóa tập lệnh,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi đến URL tương ứng。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GreasyFork Markdown toobar  + + +

    + +
    + Được sử dụng theo mặc định trong diễn đàn Markdown Định dạng,Thêm liên kết trợ giúp định dạng và Markdown Giới thiệu thanh công cụ +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GreasyFork Hiển thị xếp hạng kịch bản  + + +

    + +
    + Thêm điểm đánh giá vào danh sách tập lệnh +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GreasyFork Tìm kiếm nâng cao  + + +

    + +
    + Tìm kiếm bằng Google GreasyFork Và SleazyFork kịch bản trên +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + GreasyFork Cải tiến thanh điều hướng  + + +

    + +
    + Nâng caogreasyforkThanh điều hướng,Thêm danh sách người dùng,Bảng điều khiển người dùng, v.v. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Greasyforkngười đóng khung  + + +

    + +
    + Nâng caogreasyfork,Sao chép mã,Tải xuống tập lệnh,Thời gian chính xác đến từng giây,Dọn dẹp trang chủ,Thảo luận về báo cáo bằng một cú nhấp chuột,Đã thêm mã nhảy danh sách tập lệnh tải xuống Làm đẹp mã xem và hiển thị các tệp tham chiếu mã,hiển thị biểu tượng tập lệnh,Chuyển đến tập lệnh dành cho người lớn và các thao tác khác +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Greasyfork Trợ lý thông báo  + + +

    + +
    + Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Kịch bản sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + Script FinderCông cụ tìm tập lệnh Grease Monkey  + + +

    + +
    + Script Finder là một tập lệnh người dùng(userscript),Nó giúp bạn tìm và quản lý mô tả người dùng trên bất kỳ trang web nào +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    kịch bản người lớn

    + + + MiSSAVĐăng nhập tự động  + + +

    + +
    + Phát hiện MisssAV tình trạng,và tự động đăng nhập khi chưa đăng nhập +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + MissAVNgười quản lý bộ sưu tập  + + +

    + +
    + missSao lưu danh sách phát,Hỗ trợ tải hình ảnh và lưu thông tin video.Xuất trang web địa phương Hỗ trợ xuất khẩu sangwebdav +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + TissAVĐăng nhập tự động  + + +

    + +
    + Phát hiện TissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + JableTVĐăng nhập tự động  + + +

    + +
    + Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    dịch tự động

    + + + đầu cuối ngoại ngữ  + + +

    + +
    + Nhận biết các ký tự không phải tiếng Trung,Nếu chiều dài lớn hơn 5 Và văn bản dịch không chứa tiếng Trung Quốc,sau đó thay thế bằng tiếng Trung,Cần phải có thể truy cập đượcgooglemạng +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    +

    + + + dịch trang web——Tự động dịch sang tiếng Trung  + + +

    + +
    + Cung cấp góc dưới bên phải của mỗi trang web không phải tiếng Trung Quốc(Có thể điều chỉnh ở góc dưới bên trái)thêm một google Biểu tượng dịch,Phiên bản này là phiên bản dịch tiếng Trung,Chỉ dịch tiếng nước ngoài sang tiếng Trung,Thêm bản dịch tự động +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + tập tin readme / + + + bàn luận +
    + + + +--- + +## Cách cài đặt/Sử dụng tập lệnh? + +Để sử dụng bất kỳ tập lệnh nào,Đầu tiên bạn cần cài đặt trình duyệt **Tampermonkey Tiện ích mở rộng Trình quản lý tập lệnh([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** + +- Bấm vào biểu mẫu **\[Cài đặt\]** Trực tiếp bật lên giao diện cài đặt trình quản lý tập lệnh。 +- nếu như Github Tốc độ truy cập quá chậm,Bạn có thể chọn bấm GreasyFork **\[Cài đặt\]** Lời nhắc tiện ích mở rộng bật lên sau,Bấm lại **\[Cài đặt\]** Thế thôi。 +- [Xem hướng dẫn chi tiết](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md) + +> [!IMPORTANT] +> +> - _Những người khác dựa trên **Chromium** Trình duyệt hạt nhân(Chẳng hạn như trình duyệt bìa trong nước)Nói chung có thể được sử dụng Chrome Mở rộng。_ +> - _Hãy đảm bảo sử dụng **Tampermonkey Phiên bản chính thức** Mở rộng,其他的用户Kịch bản管理器可能导致**Không hoạt động đúng cách**脚本。_ +> - _Nếu bạn muốn cài đặt lại tập lệnh,Xin hãy nhớ Tampermonkey mở rộng**Xóa hoàn toàn khỏi thùng rác**Sau tập lệnh, hãy đi và cài đặt lại tập lệnh.。_ + +> _**Không cài đặt ngoại tuyến .crx Mở rộng?[Chrome、Edge Mở lại ẩn [Cài đặt kéo và thả .crx Mở rộng] Chức năng!](https://zhuanlan.zhihu.com/p/276027099)**_ + +--- + +## Đặc biệt cảm ơn nguồn mở + +> [!TIP] +> +> - XIU2 :+1: +> - Tệp readme kho lưu trữ này được sao chép[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)nội dung `Trình quản lý trình duyệt và tập lệnh` + +> [!TIP] +> +> - Hmjz100 :+1: +> - Tất cả đều có trong kho`README.md`Đã sao chép huy hiệu tệp[Hmjz100](https://github.com/hmjz100)kho[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)nội bộ[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)Kiểu huy hiệu tài liệu + +> [!TIP] +> +> - FengFeng :+1: +> - 仓库Bên trong所有`README.md`Đã sao chép phần giới thiệu tiêu đề tệp và bảng cài đặt lịch sử[FengFeng](https://github.com/BonjourFeng)kho[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)Nội dung tập tin +> - Kho phụ của kho này`UserScriptsHistory`Mã hình ảnh bảng lịch sử cài đặt cập nhật tự động cũng được sao chép và sử dụng.[FengFeng](https://github.com/BonjourFeng)kho[Script-History](https://github.com/BonjourFeng/Script-History)mã bên trong[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) + +> [!TIP] +> +> - đứa con của sa mạc :+1: +> - Đã sao chép [đứa con của sa mạc](https://github.com/maboloshi)kho[github-chinese](https://github.com/maboloshi/github-chinese)mã bên trong
    +> - Trong kho này`writer.py` `update-contributors.yml` Sao chép bằng cách sử dụng[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)mã bên trong +> - Tệp readme kho lưu trữ này được sao chép[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)nội dung `Cách cài đặt/Sử dụng tập lệnh?` + +> [!TIP] +> +> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui Lưu Triển Bằng :+1: +> - _Dịch tự động kho lưu trữ này và Action Cảm ơn đặc biệt đến Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Ý tưởng và mã tuyệt vời!_ :trollface: +> - _Cách đặt tên của nhà kho này được lấy cảm hứng từ đội Yankees[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Truyền cảm hứng_ :trollface: +> - _Tệp readme trong kho lưu trữ này đến từ[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)phong cách tự báo cáo_ :trollface: +> - _Bước nhảy chuyển hướng lẫn nhau trong tập lệnh xuất phát từ[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)phong cách tự báo cáo_ :trollface: +> - _Tất cả trong kho này`README.md`Tệp được sao chép và sử dụng từ kho lưu trữ Yankee này`README.md`Bố cục tài liệu,dấu phân cách,mã số,Ý tưởng_ :trollface: +> - _sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui) Action mã nội bộ_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _Đã sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Action mã nội bộ_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)_ [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)dấu phân cách,Kiểu sắp chữ :trollface: +> - _Đã sao chép Yankee[Adam Lui Lưu Triển Bằng](https://github.com/adamlui)Python mã nội bộ_ [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: + +## Người đóng góp + + + +人民的勤务员 +công chức tôi tớ nhân dân + + + +Danh sách đóng góp theo: [contributors](https://github.com/jaywcjlove/github-action-contributors). Được tạo tự động Giai điệu của em trai + +## 🌐 Trình quản lý trình duyệt và tập lệnh + +| Trình duyệt được đề xuất | Trình quản lý cài đặt | Cài đặt trình duyệt | +| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | +|
    Chrome hoặc dựa trên Chromium Trình duyệt hạt nhân[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | +|
    Safari Trình duyệt(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] hoặc ![][stayr] [Stay] |
    [![][safari]][safari_link] | +|
    Firefox hoặc dựa trên Gecko Trình duyệt hạt nhân[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | +|
    Opera Trình duyệt[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | +|
    Via Trình duyệt(Android)[![][via]][via_link] |
    Trình duyệt tích hợp |
    [![][via]][via_link] | +|
    X Trình duyệt(Android) [![][x]][x_link] |
    Trình duyệt tích hợp |
    [![][x]][x_link] | +|
    KIWI Trình duyệt(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | +|
    Trình duyệt vượn cáo(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | +| | | | + +[Tampermonkey]: http://tampermonkey.net/ "khỉ giả mạo" +[Violentmonkey]: https://violentmonkey.github.io/ "khỉ hung bạo" +[Macaque]: https://macaque.app/ "khỉ" +[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png +[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" +[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png +[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png +[opera_link]: https://www.opera.com "operaTrình duyệt" +[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png +[edge_link]: https://www.microsoft.com/edge "edge Trình duyệt" +[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png +[firefox_link]: https://www.firefox.com "FirefoxTrình duyệt" +[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png +[chrome_link]: https://gooogleweb.com/index.html "ChromeTrình duyệt" +[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png +[QQ_link]: https://browser.qq.com/ "QQTrình duyệt" +[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png +[safari_link]: https://www.apple.com/vn/safari/ "SafariTrình duyệt" +[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png +[via_link]: https://viayoo.com/ "VIATrình duyệt" +[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png +[x_link]: https://www.xbext.com/ "XTrình duyệt" +[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "khỉ hung bạo" +[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png +[cat_link]: https://docs.scriptcat.org/ "kịch bản mèo" +[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "khỉ giả mạo" +[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png +[le_link]: https://lemurbrowser.com/ "Trình duyệt vượn cáo" +[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg +[kiwi_link]: https://kiwibrowser.com/ "KIWITrình duyệt" + +

    Nhiều tập lệnh người dùng hơn / +trở lại đầu trang↑

    + +## License + +The MIT License. diff --git a/docs/zh-TW/README.md b/docs/zh-TW/README.md new file mode 100644 index 000000000..740d94050 --- /dev/null +++ b/docs/zh-TW/README.md @@ -0,0 +1,1329 @@ + +
    + + +**劇本來自網路廣大網友,本人僅是做了些許改動.感謝網友** +**如有侵權,聯繫必刪** + +## 腳本列表 + +💡 **Tip:** _若要顯示預覽截圖,請點選擴充名稱下方的 ▸ 或描述。_ + + +

    ChatGPT相關腳本

    + + + ChatGPT程式碼字體縮小  + + +

    + +
    + 讓 ChatGPT 程式碼框內字體變小 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + ChatGPT 聊天複製代碼按鈕  + + +

    + +
    + 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + ChatGPT 字元計數器  + + +

    + +
    + 添加一個字元计数器到输入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 个字符。) +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + ChatGPT 折疊自己訊息和最大寬度  + + +

    + +
    + 自動折疊由你發送的長訊息,節省螢幕空間。允許你設定聊天視窗的最大寬度,使得長訊息不會超出指定範圍。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    網頁相關腳本

    + + + 網頁寫入剪輯版授權管理員  + + +

    + +
    + 禁止網頁向剪輯版拉屎,綠色為放行,紅色禁止,橙色臨時方向 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 解除CSDN登入複製限制  + + +

    + +
    + 去你媽的 CSDN 登入複製,無需登入即可複製程式碼框內容 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 絢麗漸層美化網頁表格  + + +

    + +
    + 自動為網頁上的表格所有欄位套用顏色漸層美化. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 網頁高亮關鍵字+(推薦)  + + +

    + +
    + 對網頁上的文字進行高亮顯示 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 高亮網頁文本-迷你版  + + +

    + +
    + 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 小視窗預覽  + + +

    + +
    + 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 去除連結下劃線  + + +

    + +
    + 去除網頁連結的下劃線 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 上下滾動小按鈕  + + +

    + +
    + 頁面右側新增上下滾動按鈕 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 一鍵置頂和置底按鈕  + + +

    + +
    + 修改自Greasyfork使用者腳本 為網頁新增置頂和置底按鈕,方便在長頁面中快速移動到頂部或底部。 增加向下滾動時按鈕變色,3秒內無滾動自動停止 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    GitHub相關腳本

    + + + GitHub提交資訊顯示HTML  + + +

    + +
    + 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GitHub 快速跳轉助手  + + +

    + +
    + GitHub 快速跳轉助手是一款專為幫助用戶快速存取自己在 GitHub 上的倉庫而設計。它可以大幅提高開發者在使用 GitHub 時的效率。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GitHub 文件清單美化器  + + +

    + +
    + GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + Github 代碼語言列表顯示全部  + + +

    + +
    + 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在 “其他” 下 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GitHub 自動確認設備授權  + + +

    + +
    + 在GitHub授權頁面自動輸入授權碼與自動確認。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GitHub資料夾下載  + + +

    + +
    + 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GitHub下載單一文件和複製文件URL  + + +

    + +
    + 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 🤠 Github 增強助手 倉庫顯示大小 不活躍開發警告 倉庫內快速跳轉用戶其他倉庫 🤠  + + +

    + +
    + 在Github查看倉庫和搜尋倉庫時顯示倉庫大小 ,不活躍開發警告,倉庫內快捷跳轉. +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GitHub Sort by Date  + + +

    + +
    + 倉庫列表文件排序方式改為日期降序,方便查看最新更新的文件。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    Google相關腳本

    + + + Google 進階搜尋  + + +

    + +
    + 這是一個為 Google 新增進階搜尋表單的使用者腳本。它能在頁面頂部添加一個可隱藏的高級搜尋表單,使您能夠更精確地搜尋訊息。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + Google 搜尋屏蔽指定站點  + + +

    + +
    + 在搜尋引擎結果中封鎖特定的站點,幫助用戶過濾掉不需要的搜尋結果。 自訂輸入屏蔽站點。格式-zhihu -baidu 用於封鎖谷歌搜尋內容 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    GreasyFork相關腳本

    + + + GreasyFork適用於增強  + + +

    + +
    + 腳本詳情頁增加適用於連結增加點擊開啟網頁,複製網頁,輪胎搜尋 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GrreasyFork 用戶發布的腳本資料視覺化  + + +

    + +
    + 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GreaysFork 增強 WebHook同步設定  + + +

    + +
    + 這個腳本可以幫助你快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GreasyFork Markdown toobar  + + +

    + +
    + 在論壇預設使用 Markdown 格式,添加格式幫助連結及 Markdown 工具列紹 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GreasyFork 顯示腳本評分  + + +

    + +
    + 腳本清單新增評價分數 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GreasyFork 進階搜尋  + + +

    + +
    + 使用谷歌搜尋 GreasyFork 和 SleazyFork 上的腳本 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + GreasyFork 導覽列增強  + + +

    + +
    + 增強greasyfork導覽列,增加用戶列表,使用者控制台等 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + Greasyfork糊裱匠  + + +

    + +
    + 增強greasyfork,複製程式碼,腳本下載,精確時間到秒,主頁清理,討論一鍵舉報,腳本清單跳轉代碼添加下載 美化查看程式碼顯示程式碼引用文件,顯示腳本圖示,跳轉成人腳本等等一些操作 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + Greasyfork 通知助手  + + +

    + +
    + 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + Script Finder油猴腳本查找器  + + +

    + +
    + Script Finder 是一個使用者腳本(userscript),它可以幫助你在任何網站上尋找和管理使用者腳本 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    成人腳本

    + + + MiSSAV自動登入  + + +

    + +
    + 偵測 MisssAV 狀態,並且在未登入時自動登入 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + MissAV收藏管理器  + + +

    + +
    + miss單張備份,支援下載圖片保存影片訊息.導出本地網頁 支援導出到webdav +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + TissAV自動登入  + + +

    + +
    + 偵測 TissAV 狀態,並且在未登入時自動登入 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + JableTV自動登入  + + +

    + +
    + 偵測 JableTV 狀態,並且在未登入時自動登入 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    自動翻譯

    + + + 外語終結者  + + +

    + +
    + 識別非中文字符,如果長度大於 5 且翻譯文中不含中文,則替換為中文,需要可訪問google的網路 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    +

    + + + 網頁翻譯——自動翻譯為中文  + + +

    + +
    + 給每個非中文的網頁右下角(可以調整到左下角)添加一個 google 翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 +
    + + +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 討論 +
    + + + +--- + +## 如何安裝/使用腳本? + +要使用任何腳本,首先需要瀏覽器安裝 **Tampermonkey 腳本管理器擴充([Chrome](https://pan.lanpw.com/b073l8d1e)** / **[Firefox](https://addons.mozilla.org/firefox/addon/tampermonkey/)** / **[Edge](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd?hl=zh-CN))。** + +- 點擊表格 **\[安裝\]** 直接彈出腳本管理器安裝介面。 +- 如果 Github 訪問速度太慢,可以選擇點擊 GreasyFork **\[安裝\]** 後彈出擴展提示,再去點擊 **\[安裝\]** 即可。 +- [查看詳細教學](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md) + +> [!IMPORTANT] +> +> - _其他基於 **Chromium** 內核的瀏覽器(如國內套皮瀏覽器)一般都可以使用 Chrome 擴充。_ +> - _請確保使用 **Tampermonkey 正式版** 擴充,其他的用户腳本管理器可能导致**無法正常使用**脚本。_ +> - _如果要重裝腳本,請記得在 Tampermonkey 擴充的**回收站中徹底刪除**腳本後再去重新安裝腳本。_ + +> _**不會離線安裝 .crx 擴充?[Chrome、Edge 重新開啟隱藏的 [拖入安裝 .crx 擴充] 功能!](https://zhuanlan.zhihu.com/p/276027099)**_ + +--- + +## 特別感謝開源 + +> [!TIP] +> +> - XIU2 :+1: +> - 本倉庫自述文件複製了[XIU2/UserScript//README.md](https://github.com/XIU2/UserScript/#:~:text=%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%9F)內容 `瀏覽器與腳本管理器` + +> [!TIP] +> +> - Hmjz100 :+1: +> - 倉庫內所有`README.md`文件徽章複製了[Hmjz100](https://github.com/hmjz100)的倉庫[Online-disk-direct-link-download-assistant](https://github.com/hmjz100/Online-disk-direct-link-download-assistant)內部的[README.md](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/blob/main/README.md)文件的徽章風格 + +> [!TIP] +> +> - FengFeng :+1: +> - 仓库內所有`README.md`文件頭部簡介與歷史安裝表格複製了[FengFeng](https://github.com/BonjourFeng)的倉庫[Github-Search-Purification](https://github.com/BonjourFeng/Github-Search-Purification)内[README.md](https://github.com/BonjourFeng/Github-Search-Purification/blob/main/README.md)文件內容 +> - 本倉庫的子倉庫`UserScriptsHistory`自動更新安裝歷史表格圖片程式碼也複製使用了[FengFeng](https://github.com/BonjourFeng)的倉庫[Script-History](https://github.com/BonjourFeng/Script-History)內的程式碼[main.py](https://github.com/BonjourFeng/Script-History/blob/main/source/main.py) + +> [!TIP] +> +> - 沙漠之子 :+1: +> - 複製了 [沙漠之子](https://github.com/maboloshi)的倉庫[github-chinese](https://github.com/maboloshi/github-chinese)內的程式碼
    +> - 本倉庫內`writer.py` `update-contributors.yml` 複製使用了[tributors_images.yml](https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml)裡面的程式碼 +> - 本倉庫自述文件複製了[github-chinese/README.md](https://github.com/maboloshi/github-chinese#:~:text=%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8E%E8%84%9A%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8)內容 `如何安裝/使用腳本?` + +> [!TIP] +> +> - [#12](https://github.com/ChinaGodMan/UserScripts/issues/12) :trollface: Adam Lui 劉展鵬 :+1: +> - _本倉庫的自動翻譯與 Action 功能特別感謝美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)出色的想法與代碼!_ :trollface: +> - _本倉庫命名風格受美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)啟發_ :trollface: +> - _本倉庫內自述文件來自[Adam Lui 劉展鵬](https://github.com/adamlui)的自述風格_ :trollface: +> - _腳本內的相互導流跳轉來自[Adam Lui 劉展鵬](https://github.com/adamlui)的自述風格_ :trollface: +> - _本倉庫內所有`README.md`文件複製並使用了這個美國佬的倉庫`README.md`文件排版,分隔符,程式碼,思路_ :trollface: +> - _複製了美國佬[Adam Lui 劉展鵬](https://github.com/adamlui) Action 內程式碼_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _複製了 美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)Action 內程式碼_ [sync-autoclear-chatgpt-history-changes.yml](https://github.com/adamlui/chatgpt-apps/blob/main/.github/workflows/sync-autoclear-chatgpt-history-changes.yml) :trollface: +> - _複製了美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)_ [chatgpt-auto-continue/docs/README.md](https://github.com/adamlui/ai-apps/blob/main/chatgpt-auto-continue/docs/README.md)分隔符,等排版風格 :trollface: +> - _複製了 美國佬[Adam Lui 劉展鵬](https://github.com/adamlui)Python 內程式碼_ [translate-en-messages.py](https://github.com/adamlui/python-utils/blob/main/translate-messages/translate-en-messages.py) :trollface: + +## 貢獻者 + + + +人民的勤务员 +人民的勤務員的勤務員 + + + +貢獻列表由: [contributors](https://github.com/jaywcjlove/github-action-contributors). 自動生成 小弟調調 + +## 🌐 瀏覽器與腳本管理器 + +| 推薦瀏覽器 | 安裝管理器 | 安裝瀏覽器 | +| :---------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------- | +|
    Chrome 或 基於 Chromium 內核的瀏覽器[![][chrome]][chrome_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][chrome]][chrome_link] [![][edge]][edge_link] [![][QQ]][QQ_link] | +|
    Safari 瀏覽器(macOS, iOS, iPadOS)[![][safari]][safari_link] |
    ![][Macaquer] [Macaque][Macaque] 或 ![][stayr] [Stay] |
    [![][safari]][safari_link] | +|
    Firefox 或 基於 Gecko 內核的瀏覽器[![][firefox]][firefox_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][firefox]][firefox_link] | +|
    Opera 瀏覽器[![][opera]][opera_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][opera]][opera_link] | +|
    Via 瀏覽器(Android)[![][via]][via_link] |
    瀏覽器內自帶 |
    [![][via]][via_link] | +|
    X 瀏覽器(Android) [![][x]][x_link] |
    瀏覽器內自帶 |
    [![][x]][x_link] | +|
    KIWI 瀏覽器(Android)[![][kiwi]][kiwi_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][kiwi]][kiwi_link] | +|
    狐猴瀏覽器(Android)[![][le]][le_link] |
    ![.png][TM][Tampermonkey][Tampermonkey] ![.png][vm][Violentmonkey][Violentmonkey] ![.png][cat][ScriptCat][cat_link] |
    [![][le]][le_link] | +| | | | + +[Tampermonkey]: http://tampermonkey.net/ "篡改猴" +[Violentmonkey]: https://violentmonkey.github.io/ "暴力猴" +[Macaque]: https://macaque.app/ "奇異果" +[Macaquer]: https://img.xwyue.com/i/2024/08/02/66acc93b56b9f.png +[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay-for-safari" +[stayr]: https://img.xwyue.com/i/2024/08/02/66acc93b56b6c.png +[opera]: https://img.xwyue.com/i/2024/08/02/66ac91cad9499.png +[opera_link]: https://www.opera.com "opera瀏覽器" +[edge]: https://img.xwyue.com/i/2024/08/02/66ac91cae4276.png +[edge_link]: https://www.microsoft.com/edge "edge 瀏覽器" +[firefox]: https://img.xwyue.com/i/2024/08/02/66ac91cae7577.png +[firefox_link]: https://www.firefox.com "Firefox瀏覽器" +[chrome]: https://img.xwyue.com/i/2024/08/02/66ac91cae814c.png +[chrome_link]: https://gooogleweb.com/index.html "Chrome瀏覽器" +[QQ]: https://img.xwyue.com/i/2024/08/02/66ac91cae9ff7.png +[QQ_link]: https://browser.qq.com/ "QQ瀏覽器" +[safari]: https://img.xwyue.com/i/2024/08/02/66ac91cb0a2ed.png +[safari_link]: https://www.apple.com/vn/safari/ "Safari瀏覽器" +[via]: https://img.xwyue.com/i/2024/08/02/66ac91cb15181.png +[via_link]: https://viayoo.com/ "VIA瀏覽器" +[x]: https://img.xwyue.com/i/2024/08/02/66ac91cb1638a.png +[x_link]: https://www.xbext.com/ "X瀏覽器" +[vm]: https://img.xwyue.com/i/2024/08/02/66ac94776b711.png "暴力猴" +[cat]: https://img.xwyue.com/i/2024/08/02/66ac94776a4e6.png +[cat_link]: https://docs.scriptcat.org/ "腳本貓" +[TM]: https://img.xwyue.com/i/2024/08/02/66ac94776a4f8.png "篡改猴" +[le]: https://img.xwyue.com/i/2024/08/02/66ac9deb3647d.png +[le_link]: https://lemurbrowser.com/ "狐猴瀏覽器" +[kiwi]: https://img.xwyue.com/i/2024/08/02/66ac9deb33bc1.jpg +[kiwi_link]: https://kiwibrowser.com/ "KIWI瀏覽器" + +

    更多用戶腳本 / +回到頂部↑

    + +## License + +The MIT License. diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..805916c3f --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,37 @@ +import js from '@eslint/js' +import globals from 'globals' +import json from 'eslint-plugin-json' + +export default [ + js.configs.recommended, + { + rules: { + indent: 'off', + 'no-unexpected-multiline': 'off', + 'key-spacing': 'off', // allow whitespace anywhere + quotes: ['error', 'single'], // enforce single quotes for string literals + 'comma-dangle': ['error', 'never'], // enforce no trailing commas in arrays or objects + 'no-async-promise-executor': 'off', // allow promise executor functions to be async (to accomodate await lines) + 'no-constant-condition': 'off', // allow constant conditions + 'no-empty': 'off', // allow empty blocks + 'no-inner-declarations': 'off', // allow function declarations anywhere + 'no-useless-escape': 'off', // allow all escape chars cause ESLint sucks at detecting truly useless ones + // 'no-unused-vars': ['error', { 'caughtErrors': 'none' }],// allow unused named args in catch blocks + 'no-unused-vars': 'off', // 禁用未使用变量的检查 + 'no-undef': 'off', //禁用未定义变量的检查 + 'no-irregular-whitespace': 'error' // 启用不规则空白字符规则 + }, + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'script', + globals: { + ...globals.browser, + ...globals.greasemonkey, + Toast: 'readonly', + chatgpt: 'readonly' + } + } + }, + { files: ['**/*.mjs'], languageOptions: { sourceType: 'module' } }, + { files: ['**/*.json'], ...json.configs['recommended'] } +] diff --git a/github-commit-viewer/README.md b/github-commit-viewer/README.md new file mode 100644 index 000000000..a8935de4f --- /dev/null +++ b/github-commit-viewer/README.md @@ -0,0 +1,289 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 提交信息显示网页视图

    +

    「 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GitHub CommitMessage Html View + + + +## 描述 + +`GitHub CommitMessage Html View` 是一个用户脚本,旨在将 GitHub 上的提交信息转换为 HTML 视图,从而提供更清晰的提交详情。该脚本自动将提交信息列表、提交头部和最新提交信息转换为 HTML 格式,以增强视觉效果和用户体验,配合git使用 + + + +## 功能 + +- **提交信息列表转换**: 将提交消息列表中的提交信息转化为 HTML 视图。 +- **头部信息展示**: 显示提交头部和最新提交的详细信息。 +- **增强视觉效果**: 改善提交信息的可视性和用户体验。 + + + +## PowerShell配合上传到远程仓库 + +点击[qinwuyuan.ps1](https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/github-commit-viewer/preview/qinwuyuan.ps1)下载Powershell脚本 + +
     param (
    +    [string]$qinwuyuan_messageFilePath
    +)
    +$qinwuyuan_scriptPath = $PSScriptRoot
    +$qinwuyuan_rootDrive1 = [System.IO.Path]::GetPathRoot($qinwuyuan_scriptPath).TrimEnd('\')
    +if (-not $qinwuyuan_messageFilePath) {
    +    $qinwuyuan_messageFilePath = "$qinwuyuan_rootDrive1\path\to\change\commit.txt"
    +}
    +$qinwuyuan_oldCommitFilePath = "$qinwuyuan_scriptPath\oldcommit.txt"
    +if (-not (Test-Path $qinwuyuan_messageFilePath)) {
    +    exit 1
    +}
    +if (-not (Test-Path .git)) {
    +    exit 1
    +}
    +$qinwuyuan_newCommitMessage = Get-Content $qinwuyuan_messageFilePath -Raw
    +$qinwuyuan_oldCommitMessage = if (Test-Path $qinwuyuan_oldCommitFilePath) {
    +    Get-Content $qinwuyuan_oldCommitFilePath -Raw
    +} else {
    +    ""
    +}
    +if ($qinwuyuan_newCommitMessage -eq $qinwuyuan_oldCommitMessage) {
    +    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
    +    $qinwuyuan_commitMessage = @"
    +https://avatars.githubusercontent.com/u/96548841?v=4&size=32">
    +https://github.com/ChinaGodMan">
    +  人民的勤务员Github:ChinaGodMan
    +
    +(UTC+8) $qinwuyuan_currentDateTime 
    +"@
    +} else {
    +    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
    +    $qinwuyuan_commitMessage = $qinwuyuan_newCommitMessage -replace '\$qinwuyuan_currentDateTime', $qinwuyuan_currentDateTime
    +}
    +$qinwuyuan_currentBranch = git rev-parse --abbrev-ref HEAD
    +if ($LASTEXITCODE -ne 0) {
    +    exit 1
    +}
    +git add .
    +git commit -m $qinwuyuan_commitMessage
    +if ($LASTEXITCODE -ne 0) {
    +    exit 1
    +}
    +git push origin $qinwuyuan_currentBranch --force
    +if ($LASTEXITCODE -ne 0) {
    +    exit 1
    +}
    +Copy-Item -Path $qinwuyuan_messageFilePath -Destination $qinwuyuan_oldCommitFilePath -Force
    +
    + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +## 支持 + +- [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) +- [项目主页](https://github.com/ChinaGodMan/UserScripts) + + + +## 许可证 + +此脚本使用 [MIT 许可证](https://opensource.org/licenses/MIT) + +使用后: +![1.png](https://s2.loli.net/2024/08/30/lhJrcbzDdABY2pO.png) +使用前: +![2.png](https://s2.loli.net/2024/08/30/56sANeoMWb7QRY2.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-commit-viewer/README_en.md b/github-commit-viewer/README_en.md new file mode 100644 index 000000000..52536e6fd --- /dev/null +++ b/github-commit-viewer/README_en.md @@ -0,0 +1,288 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GitHub Submit information display web view

    +

    「 This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GitHub CommitMessage Html View + + + +## Description + +`GitHub CommitMessage Html View` is a user script designed to convert commit messages on GitHub into HTML views, providing clearer commit details. This script automatically transforms commit message lists, commit headers, and the latest commit information into HTML format to enhance visual appeal and user experience, and can be used in conjunction with Git. + + + +## Features + +- **Commit Message List Transformation**: Converts commit messages in the commit list to HTML view. +- **Header Information Display**: Shows detailed information about commit headers and the latest commit. +- **Enhanced Visuals**: Improves the visibility and user experience of commit information. + + + +## Using PowerShell to Upload to a Remote Repository + +Click[qinwuyuan.ps1](https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/github-commit-viewer/preview/qinwuyuan.ps1) to download the PowerShell script. + +
     param (
    +    [string]$qinwuyuan_messageFilePath
    +)
    +$qinwuyuan_scriptPath = $PSScriptRoot
    +$qinwuyuan_rootDrive1 = [System.IO.Path]::GetPathRoot($qinwuyuan_scriptPath).TrimEnd('\')
    +if (-not $qinwuyuan_messageFilePath) {
    +    $qinwuyuan_messageFilePath = "$qinwuyuan_rootDrive1\path\to\change\commit.txt"
    +}
    +$qinwuyuan_oldCommitFilePath = "$qinwuyuan_scriptPath\oldcommit.txt"
    +if (-not (Test-Path $qinwuyuan_messageFilePath)) {
    +    exit 1
    +}
    +if (-not (Test-Path .git)) {
    +    exit 1
    +}
    +$qinwuyuan_newCommitMessage = Get-Content $qinwuyuan_messageFilePath -Raw
    +$qinwuyuan_oldCommitMessage = if (Test-Path $qinwuyuan_oldCommitFilePath) {
    +    Get-Content $qinwuyuan_oldCommitFilePath -Raw
    +} else {
    +    ""
    +}
    +if ($qinwuyuan_newCommitMessage -eq $qinwuyuan_oldCommitMessage) {
    +    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
    +    $qinwuyuan_commitMessage = @"
    +https://avatars.githubusercontent.com/u/96548841?v=4&size=32">
    +https://github.com/ChinaGodMan">
    +  peoplecivilofdiligentservicememberGithub:ChinaGodMan
    +
    +(UTC+8) $qinwuyuan_currentDateTime 
    +"@
    +} else {
    +    $qinwuyuan_currentDateTime = Get-Date -Format "yyyy/M/d HH:mm:ss"
    +    $qinwuyuan_commitMessage = $qinwuyuan_newCommitMessage -replace '\$qinwuyuan_currentDateTime', $qinwuyuan_currentDateTime
    +}
    +$qinwuyuan_currentBranch = git rev-parse --abbrev-ref HEAD
    +if ($LASTEXITCODE -ne 0) {
    +    exit 1
    +}
    +git add .
    +git commit -m $qinwuyuan_commitMessage
    +if ($LASTEXITCODE -ne 0) {
    +    exit 1
    +}
    +git push origin $qinwuyuan_currentBranch --force
    +if ($LASTEXITCODE -ne 0) {
    +    exit 1
    +}
    +Copy-Item -Path $qinwuyuan_messageFilePath -Destination $qinwuyuan_oldCommitFilePath -Force
    +
    + + + +## Support + +- [Report Issues](https://github.com/ChinaGodMan/UserScripts/issues) +- [Project Homepage](https://github.com/ChinaGodMan/UserScripts) + + + +## License + +This script is licensed under the [MIT License](https://opensource.org/licenses/MIT). + +After: +![1.png](https://s2.loli.net/2024/08/30/lhJrcbzDdABY2pO.png) +Before: +![2.png](https://s2.loli.net/2024/08/30/56sANeoMWb7QRY2.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/github-commit-viewer.user.js b/github-commit-viewer/github-commit-viewer.user.js similarity index 97% rename from github-commit-viewer.user.js rename to github-commit-viewer/github-commit-viewer.user.js index 04ed8ffc1..700fc3947 100644 --- a/github-commit-viewer.user.js +++ b/github-commit-viewer/github-commit-viewer.user.js @@ -77,7 +77,7 @@ // @description:fr-CA Ce script sera GitHub Les informations de soumission sur HTML voir,pour voir plus clairement les détails de la soumission。Il soumettra automatiquement la liste d’informations、L’en-tête de validation et les dernières informations de validation sont convertis en HTML Format,Fournir de meilleurs effets visuels et une meilleure expérience utilisateur。 // @version 1.0.0.19 // @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 +// @author 人民的勤务员 // @match *://github.com/*/* // @grant GM_registerMenuCommand // @grant none @@ -109,10 +109,10 @@ const selectors = { commitHeaderIsRun: false, commitHeaderFound: false, commitHeaderScreenIsRun: false, - commitHeaderScreenFound: false, + commitHeaderScreenFound: false } -let LastCommitText = "" -let LastCommitHref = "" +let LastCommitText = '' +let LastCommitHref = '' let wocaonima = null function updateCommitMessageInDetails(selector) {//详情页, const element = document.querySelector(selector) @@ -134,9 +134,9 @@ function updateRepoHeaderExpandCommit(selector) {//头部展开 const hrefValue = linkElement.getAttribute('href') if (containsHTML(textContent)) { if (!LastCommitHref || !LastCommitText) { - spanElement.innerHTML = `` + textContent + `` + spanElement.innerHTML = `` + textContent + '' } else { - spanElement.innerHTML = `` + LastCommitText + `` + spanElement.innerHTML = `` + LastCommitText + '' } } }) @@ -154,11 +154,11 @@ function updateRepoHeaderScreenCommit(selector) { wocaonima = spanElement.innerHTML }) if (!LastCommitHref || !LastCommitText) { - console.log("未通过点击跳转:", textContent) - spanElement.innerHTML = `` + textContent + `` + console.log('未通过点击跳转:', textContent) + spanElement.innerHTML = `` + textContent + '' } else { - console.log("通过点击跳转", LastCommitText) - spanElement.innerHTML = `` + LastCommitText + `` + console.log('通过点击跳转', LastCommitText) + spanElement.innerHTML = `` + LastCommitText + '' } } }) @@ -170,8 +170,8 @@ function updateRepoListCommit(selector) { if (nextElement) ( nextElement.remove() ) - const titleContent = element.getAttribute("title") - const hrefValue = element.getAttribute("href") + const titleContent = element.getAttribute('title') + const hrefValue = element.getAttribute('href') if (titleContent) { if (containsHTML(titleContent)) { element.addEventListener('click', () => { @@ -204,8 +204,8 @@ function getLastTimeCommit(selector) { if (parentTd) { const previousTd = parentTd.previousElementSibling const linkElement = previousTd.querySelector(selectors.commitList.value) - LastCommitText = linkElement.getAttribute("title") - LastCommitHref = linkElement.getAttribute("href") + LastCommitText = linkElement.getAttribute('title') + LastCommitHref = linkElement.getAttribute('href') return { previousTd, linkElement } } else { return null @@ -223,7 +223,7 @@ function containsHTML(str) { * @param {string} selector - 要匹配的选择器。 * @param {function} callback - 找到匹配元素后的回调函数。 */ -function observeForElement(selector, callback, disconnect = true, DEBUG = "操作", isElementFound) { +function observeForElement(selector, callback, disconnect = true, DEBUG = '操作', isElementFound) { isElementFound = false const observer = new MutationObserver((mutationsList, observer) => { mutationsList.forEach(mutation => { @@ -271,7 +271,7 @@ function observeForElement_______________________________(selector, callback) { if (mutation.type === 'childList' && !isElementFound) { const element = document.querySelector(selector) if (element) { - console.log("成功找到仓库列表中的提交信息元素") + console.log('成功找到仓库列表中的提交信息元素') isElementFound = true callback(element)//留着以后用 observer.disconnect() @@ -287,8 +287,8 @@ function observeForElement_______________________________(selector, callback) { main() watchUpdate() function main() { - LastCommitText = "" - LastCommitHref = "" + LastCommitText = '' + LastCommitHref = '' observeForElement(selectors.commitList.value, function (element) { updateRepoListCommit(selectors.commitList.value) }, @@ -346,7 +346,7 @@ function watchUpdate() {//检查链接变化 // 如果页面的 URL 发生变化 if (currentURL !== getCurrentURL.previousURL) { getCurrentURL.previousURL = currentURL - console.log(`链接变化,正在启动监听器`) + console.log('链接变化,正在启动监听器') setTimeout(() => { main() }, 500) @@ -357,7 +357,7 @@ function watchUpdate() {//检查链接变化 characterData: true, subtree: true, childList: true, - attributeFilter: ['value', 'placeholder', 'aria-label', 'data-confirm'], // 仅观察特定属性变化 + attributeFilter: ['value', 'placeholder', 'aria-label', 'data-confirm'] // 仅观察特定属性变化 } // 开始观察 document.body 的变化 observer.observe(document.body, config) diff --git a/Script details/github-commit-viewer/preview/1.png b/github-commit-viewer/preview/1.png similarity index 100% rename from Script details/github-commit-viewer/preview/1.png rename to github-commit-viewer/preview/1.png diff --git a/Script details/github-commit-viewer/preview/2.png b/github-commit-viewer/preview/2.png similarity index 100% rename from Script details/github-commit-viewer/preview/2.png rename to github-commit-viewer/preview/2.png diff --git a/Script details/github-commit-viewer/preview/qinwuyuan.ps1 b/github-commit-viewer/preview/qinwuyuan.ps1 similarity index 100% rename from Script details/github-commit-viewer/preview/qinwuyuan.ps1 rename to github-commit-viewer/preview/qinwuyuan.ps1 diff --git a/Script details/github-device-authorization/Change history/README.md b/github-device-authorization/Change history/README.md similarity index 99% rename from Script details/github-device-authorization/Change history/README.md rename to github-device-authorization/Change history/README.md index f5a363330..d196b958f 100644 --- a/Script details/github-device-authorization/Change history/README.md +++ b/github-device-authorization/Change history/README.md @@ -1,6 +1,7 @@ # **🛠️ GitHub 自动确认设备授权 更新日志** ### **📅 2024-09-18 08:50:32- Ver 1.0.0.0** + **新增**: •仅仅处理授权码行为,方便自用罢了. --- diff --git a/github-device-authorization/README.md b/github-device-authorization/README.md new file mode 100644 index 000000000..5776866b5 --- /dev/null +++ b/github-device-authorization/README.md @@ -0,0 +1,257 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 自动确认设备授权

    +

    「 在GitHub授权页面自动输入授权码与自动确认。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ GitHub 自动确认设备授权 更新日志

    +

    📅 2024-09-18 08:50:32- Ver 1.0.0.0

    +

    新增: •仅仅处理授权码行为,方便自用罢了.

    +
    + +
    + + + +# GitHub 自动确认设备授权 + + + +## 概述 + +该用户脚本旨在简化在 GitHub 授权页面的操作,通过自动填写授权码和确认操作,减少手动干预的需要。该脚本特别适用于在无法直接操作浏览器的场景中使用,例如自动化测试或远程操作。 +(自用脚本,方便自己在便携时使用) + + + +## 功能 + +- 自动填写授权码:从剪贴板读取授权码,并自动填写到授权页面的对应输入框中。 +- 自动提交授权:在确认授权页面自动点击授权按钮。 + + + +## 安装与使用 + +1. **安装**:点击上方绿色安装按钮进行安装. +2. **使用**: + - 访问 GitHub 设备授权页面时,脚本会自动运行。 + - 脚本会从剪贴板中读取授权码,并自动填写并提交表单。 + + + +## 脚本功能 + +- **自动填写授权码**:脚本会等待页面加载完成,然后从剪贴板读取授权码,拆分并填写到相应的输入框中。 +- **自动提交确认**:在确认页面,脚本会自动点击确认按钮,以完成授权操作。 + + + +## 注意事项 + +- 确保剪贴板中保存的是正确格式的授权码(形如 `XXXX-XXXX`)。 +- 脚本可能需要一些时间来识别页面元素并填写表单,因此请确保在使用时给予脚本足够的时间。 + + + +## 感谢 + +[LemonPupl](https://greasyfork.org/zh-CN/users/1274376)发布的脚本[GitHub Copilot automatically obtains GHU](https://greasyfork.org/scripts/489793) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +## 许可证 + +此脚本采用 MIT 许可证,详情请见 [LICENSE](https://github.com/ChinaGodMan/UserScripts/blob/main/LICENSE)。 + + + +## 支持与反馈 + +- 如果遇到问题或有任何建议,请访问 [GitHub Issues 页面](https://github.com/ChinaGodMan/UserScripts/issues) 提交反馈。 + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-device-authorization/README_en.md b/github-device-authorization/README_en.md new file mode 100644 index 000000000..4dc56efa8 --- /dev/null +++ b/github-device-authorization/README_en.md @@ -0,0 +1,245 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GitHub Automatically confirm device authorization

    +

    「 existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ GitHub Automatically confirm device authorization Change log

    +

    📅 2024-09-18 08:50:32- Ver 1.0.0.0

    +

    New: •Only handle authorization code behavior,Just for personal use.

    +
    + +
    + + + +# GitHub Automatic Device Authorization + + + +## Overview + +This user script aims to simplify the process on the GitHub authorization page by automatically filling in the authorization code and confirming the action, reducing the need for manual intervention. This script is particularly useful in scenarios where direct browser interaction is not possible, such as automated testing or remote operations. +(This is a personal script for convenience during portable use.) + + + +## Features + +- **Automatic Code Filling**: Reads the authorization code from the clipboard and automatically fills it into the corresponding input fields on the authorization page. +- **Automatic Submission**: Automatically clicks the confirm button on the authorization page. + + + +## Installation and Usage + +1. **Installation**: Click the green install button above to install the script. +2. **Usage**: + - The script will run automatically when you visit the GitHub device authorization page. + - The script will read the authorization code from the clipboard, automatically fill out the form, and submit it. + + + +## Script Functionality + +- **Automatic Code Filling**: The script waits for the page to load, then reads the authorization code from the clipboard, splits it, and fills it into the appropriate input fields. +- **Automatic Submission**: On the confirmation page, the script will automatically click the confirm button to complete the authorization process. + + + +## Notes + +- Ensure that the clipboard contains a correctly formatted authorization code (e.g., `XXXX-XXXX`). +- The script may need some time to recognize page elements and fill out the form, so please give it enough time to execute. + + + +## Thanks + +Thanks to [LemonPupl](https://greasyfork.org/zh-CN/users/1274376) for the script [GitHub Copilot automatically obtains GHU](https://greasyfork.org/scripts/489793). + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/github-device-authorization.user.js b/github-device-authorization/github-device-authorization.user.js similarity index 99% rename from github-device-authorization.user.js rename to github-device-authorization/github-device-authorization.user.js index 2487cf40d..d0bb8c6c9 100644 --- a/github-device-authorization.user.js +++ b/github-device-authorization/github-device-authorization.user.js @@ -75,7 +75,7 @@ // @description:zh-HK 在GitHub授權頁面自動輸入授權碼與自動確認。 // @name:fr-CA GitHub Confirmer automatiquement l’autorisation de l’appareil // @description:fr-CA existerGitHubLa page d’autorisation saisit automatiquement le code d’autorisation et le confirme automatiquement.。 -// @author NingMengGuoRou .人民的勤务员 +// @author NingMengGuoRou .人民的勤务员 // @namespace https://github.com/ChinaGodMan/UserScripts // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts @@ -114,7 +114,7 @@ const userCode = await navigator.clipboard.readText() const codeParts = userCode.split('-') if (codeParts.length !== 2) { - console.error("Invalid user code format.") + console.error('Invalid user code format.') return } for (let i = 0; i < codeParts[0].length; i++) { diff --git a/github-file-list-beautifier-plus.user.js b/github-file-list-beautifier-plus.user.js deleted file mode 100644 index 36a36491b..000000000 --- a/github-file-list-beautifier-plus.user.js +++ /dev/null @@ -1,272 +0,0 @@ -// ==UserScript== -// @name GitHub file list beautifier -// @description Adds colors to files by type, displays small images in place of file-type icons in a repository source tree -// @name:zh-CN GitHub 文件列表美化器 -// @description:zh-CN GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 -// @name:ar GitHub تجميل قائمة الملفات -// @description:ar GitHub File List Beautifier هو برنامج نصي للمستخدم,تستخدم لتعزيز GitHub عرض تأثير الملفات في المستودع。يمكنه إضافة الألوان إلى الملفات والمجلدات,واستبدل أيقونات نوع الملف بصور صغيرة,يجعل قاعدة التعليمات البرمجية أسهل في التصفح والإدارة。إضافة الألوان والأيقونات إلى الملفات حسب النوع,عرض صور صغيرة بدلاً من أيقونات نوع الملف في شجرة مصدر المستودع -// @name:bg GitHub Разкрасител на списък с файлове -// @description:bg GitHub File List Beautifier е потребителски скрипт,използвани за подобряване GitHub Показване на ефекта на файловете в склада。Може да добавя цветове към файлове и папки,и заменете иконите за типове файлове с малки изображения,Прави кодовата база по-лесна за разглеждане и управление。Добавете цветове и икони към файлове по тип,Показване на малки изображения на мястото на иконите за типове файлове в дървото на източника на хранилището -// @name:cs GitHub Zkrášlovač seznamu souborů -// @description:cs GitHub File List Beautifier je uživatelský skript,slouží k vylepšení GitHub Zobrazení efektu souborů ve skladu。Může přidat barvy do souborů a složek,a nahraďte ikony typů souborů malými obrázky,Usnadňuje procházení a správu kódové základny。Přidejte barvy a ikony do souborů podle typu,Zobrazte malé obrázky místo ikon typů souborů ve zdrojovém stromu úložiště -// @name:da GitHub Filliste forskønner -// @description:da GitHub File List Beautifier er et brugerscript,bruges til at forbedre GitHub Vis effekt af filer på lager。Det kan tilføje farver til filer og mapper,og udskift filtypeikonerne med små billeder,Gør kodebasen nemmere at gennemse og administrere。Tilføj farver og ikoner til filer efter type,Vis små billeder i stedet for filtypeikoner i lagerkildetræet -// @name:de GitHub Dateilisten-Verschönerer -// @description:de GitHub File List Beautifier ist ein Benutzerskript,zur Verstärkung verwendet GitHub Anzeigeeffekt von Dateien im Lager。Es kann Dateien und Ordnern Farben hinzufügen,und ersetzen Sie die Dateitypsymbole durch kleine Bilder,Erleichtert das Durchsuchen und Verwalten der Codebasis。Fügen Sie Dateien nach Typ Farben und Symbole hinzu,Zeigen Sie kleine Bilder anstelle von Dateitypsymbolen im Repository-Quellbaum an -// @name:el GitHub Διακοσμητικό λίστας αρχείων -// @description:el GitHub Το File List Beautifier είναι ένα σενάριο χρήστη,χρησιμοποιείται για ενίσχυση GitHub Εμφάνιση εφέ αρχείων στην αποθήκη。Μπορεί να προσθέσει χρώματα σε αρχεία και φακέλους,και αντικαταστήστε τα εικονίδια τύπου αρχείου με μικρές εικόνες,Κάνει πιο εύκολη την περιήγηση και τη διαχείριση της βάσης κώδικα。Προσθέστε χρώματα και εικονίδια σε αρχεία ανά τύπο,Εμφάνιση μικρών εικόνων στη θέση των εικονιδίων τύπου αρχείου στο δέντρο προέλευσης του αποθετηρίου -// @name:en GitHub File list beautifier -// @description:en GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree -// @name:eo GitHub Plibeligilo de dosierlisto -// @description:eo GitHub Dosiera Listo Beautifier estas uzanta skripto,uzata por plibonigi GitHub Montri efikon de dosieroj en magazeno。Ĝi povas aldoni kolorojn al dosieroj kaj dosierujoj,kaj anstataŭigu la dosiertipaj ikonojn per malgrandaj bildoj,Plifaciligas foliumi kaj administri la kodan bazon。Aldonu kolorojn kaj ikonojn al dosieroj laŭ tipo,Montru malgrandajn bildojn anstataŭ dosiertipaj ikonoj en deponeja fontarbo -// @name:es GitHub Embellecedor de lista de archivos -// @description:es GitHub File List Beautifier es un script de usuario,utilizado para mejorar GitHub Efecto de visualización de archivos en el almacén.。Puede agregar colores a archivos y carpetas.,y reemplace los íconos de tipo de archivo con imágenes pequeñas,Hace que la base del código sea más fácil de navegar y administrar.。Agregue colores e íconos a archivos por tipo,Mostrar imágenes pequeñas en lugar de íconos de tipo de archivo en el árbol de fuentes del repositorio -// @name:fi GitHub Tiedostolistan kaunistaja -// @description:fi GitHub File List Beautifier on käyttäjän komentosarja,käytetään parantamaan GitHub Näytä tehosteet tiedostot varastossa。Se voi lisätä värejä tiedostoihin ja kansioihin,ja korvaa tiedostotyyppikuvakkeet pienillä kuvilla,Helpottaa koodikannan selailua ja hallintaa。Lisää värejä ja kuvakkeita tiedostoihin tyypin mukaan,Näytä pienet kuvat tiedostotyyppikuvakkeiden tilalla arkiston lähdepuussa -// @name:fr GitHub Embellisseur de liste de fichiers -// @description:fr GitHub File List Beautifier est un script utilisateur,utilisé pour améliorer GitHub Effet d’affichage des fichiers dans l’entrepôt。Il peut ajouter des couleurs aux fichiers et dossiers,et remplacez les icônes de type de fichier par de petites images,Rend la base de code plus facile à parcourir et à gérer。Ajouter des couleurs et des icônes aux fichiers par type,Afficher de petites images à la place des icônes de type de fichier dans l’arborescence des sources du référentiel -// @name:he GitHub מייפה רשימת קבצים -// @description:he GitHub File List Beautifier הוא סקריפט משתמש,משמש לשיפור GitHub הצגת אפקט של קבצים במחסן。זה יכול להוסיף צבעים לקבצים ולתיקיות,והחלף את סמלי סוג הקובץ בתמונות קטנות,הופך את בסיס הקוד לקל יותר לעיון ולניהול。הוסף צבעים וסמלים לקבצים לפי סוג,הצג תמונות קטנות במקום סמלי סוג קובץ בעץ המקור של המאגר -// @name:hr GitHub Uljepšavač popisa datoteka -// @description:hr GitHub File List Beautifier je korisnička skripta,koristi se za poboljšanje GitHub Učinak prikaza datoteka u skladištu。Može dodati boje datotekama i mapama,i zamijenite ikone vrste datoteka malim slikama,Čini bazu koda lakšom za pregledavanje i upravljanje。Dodajte boje i ikone datotekama prema vrsti,Prikaži male slike umjesto ikona tipa datoteke u izvornom stablu spremišta -// @name:hu GitHub Fájllista szépítő -// @description:hu GitHub A File List Beautifier egy felhasználói szkript,fokozására használják GitHub A raktárban lévő fájlok megjelenítési hatása。Színeket adhat a fájlokhoz és mappákhoz,és cserélje ki a fájltípus ikonokat kis képekkel,Könnyebbé teszi a kódbázis böngészését és kezelését。Színek és ikonok hozzáadása a fájlokhoz típus szerint,Kis képek megjelenítése a fájltípus ikonok helyett a lerakat forrásfájában -// @name:id GitHub Percantik daftar file -// @description:id GitHub File List Beautifier adalah skrip pengguna,digunakan untuk meningkatkan GitHub Menampilkan efek file di gudang。Itu dapat menambahkan warna pada file dan folder,dan ganti ikon jenis file dengan gambar kecil,Membuat basis kode lebih mudah dijelajahi dan dikelola。Tambahkan warna dan ikon ke file berdasarkan jenisnya,Tampilkan gambar kecil sebagai pengganti ikon jenis file di pohon sumber repositori -// @name:it GitHub Abbellitore dell’elenco dei file -// @description:it GitHub File List Beautifier è uno script utente,utilizzato per migliorare GitHub Visualizza l’effetto dei file nel magazzino。Può aggiungere colori a file e cartelle,e sostituisci le icone del tipo di file con piccole immagini,Rende la base di codice più semplice da sfogliare e gestire。Aggiungi colori e icone ai file per tipo,Visualizza piccole immagini al posto delle icone del tipo di file nell’albero di origine del repository -// @name:ja GitHub ファイルリスト整形ツール -// @description:ja GitHub File List Beautifier はユーザースクリプトです,強化するために使用される GitHub 倉庫内のファイルの表示効果。ファイルやフォルダーに色を追加できます,ファイルタイプのアイコンを小さな画像に置き換えます,コードベースの参照と管理が容易になります。。種類ごとにファイルに色とアイコンを追加する,リポジトリソースツリーのファイルタイプアイコンの代わりに小さな画像を表示します -// @name:ka GitHub ფაილების სიის გამალამაზებელი -// @description:ka GitHub File List Beautifier არის მომხმარებლის სკრიპტი,გამოიყენება გასაძლიერებლად GitHub ფაილების ეფექტის ჩვენება საწყობში。მას შეუძლია ფერების დამატება ფაილებსა და საქაღალდეებში,და შეცვალეთ ფაილის ტიპის ხატები პატარა სურათებით,ამარტივებს კოდის ბაზის დათვალიერებას და მართვას。დაამატეთ ფერები და ხატები ფაილებს ტიპის მიხედვით,აჩვენეთ პატარა სურათები ფაილის ტიპის ხატულების ნაცვლად საცავის წყაროს ხეში -// @name:ko GitHub 파일 목록 미화자 -// @description:ko GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。유형별로 파일에 색상 및 아이콘 추가,저장소 소스 트리의 파일 유형 아이콘 대신 작은 이미지 표시 -// @name:nl GitHub Bestandslijstverfraaier -// @description:nl GitHub File List Beautifier is een gebruikersscript,gebruikt om te verbeteren GitHub Weergave-effect van bestanden in magazijn。Het kan kleuren toevoegen aan bestanden en mappen,en vervang de bestandstypepictogrammen door kleine afbeeldingen,Maakt het gemakkelijker om door de codebasis te bladeren en deze te beheren。Voeg kleuren en pictogrammen toe aan bestanden op type,Geef kleine afbeeldingen weer in plaats van bestandstypepictogrammen in de bronstructuur van de repository -// @name:nb GitHub Filliste forskjønner -// @description:nb GitHub File List Beautifier er et brukerskript,brukes til å forbedre GitHub Vis effekt av filer på lager。Den kan legge til farger i filer og mapper,og erstatte filtypeikonene med små bilder,Gjør kodebasen enklere å bla gjennom og administrere。Legg til farger og ikoner til filer etter type,Vis små bilder i stedet for filtypeikoner i depotkildetreet -// @name:pl GitHub Upiększanie listy plików -// @description:pl GitHub File List Beautifier to skrypt użytkownika,używany do ulepszania GitHub Efekt wyświetlania plików w magazynie。Może dodawać kolory do plików i folderów,i zamień ikony typów plików na małe obrazy,Ułatwia przeglądanie i zarządzanie bazą kodu。Dodaj kolory i ikony do plików według typu,Wyświetlaj małe obrazy zamiast ikon typów plików w drzewie źródeł repozytorium -// @name:pt-BR GitHub Embelezador de lista de arquivos -// @description:pt-BR GitHub File List Beautifier é um script de usuário,usado para melhorar GitHub Efeito de exibição de arquivos no warehouse。Pode adicionar cores a arquivos e pastas,e substitua os ícones de tipo de arquivo por imagens pequenas,Torna a base de código mais fácil de navegar e gerenciar。Adicione cores e ícones aos arquivos por tipo,Exibir pequenas imagens no lugar dos ícones de tipo de arquivo na árvore de origem do repositório -// @name:ro GitHub Înfrumusețator de listă de fișiere -// @description:ro GitHub File List Beautifier este un script de utilizator,folosit pentru a spori GitHub Efectul de afișare al fișierelor în depozit。Poate adăuga culori fișierelor și folderelor,și înlocuiți pictogramele tip fișier cu imagini mici,Face baza de cod mai ușor de răsfoit și gestionat。Adăugați culori și pictograme fișierelor după tip,Afișați imagini mici în locul pictogramelor de tip fișier în arborele sursă a depozitului -// @name:ru GitHub Средство украшения списка файлов -// @description:ru GitHub File List Beautifier — пользовательский скрипт.,используется для улучшения GitHub Эффект отображения файлов на складе。Он может добавлять цвета к файлам и папкам.,и замените значки типов файлов небольшими изображениями,Упрощает просмотр и управление базой кода.。Добавляйте цвета и значки к файлам по типу,Отображение небольших изображений вместо значков типов файлов в дереве исходного кода репозитория. -// @name:sk GitHub Skrášľovač zoznamu súborov -// @description:sk GitHub File List Beautifier je užívateľský skript,používa sa na vylepšenie GitHub Zobrazenie efektu súborov v sklade。Môže pridávať farby do súborov a priečinkov,a nahraďte ikony typov súborov malými obrázkami,Uľahčuje prehľadávanie a správu kódovej základne。Pridajte farby a ikony do súborov podľa typu,Zobrazte malé obrázky namiesto ikon typu súboru v strome zdroja úložiska -// @name:sr GitHub Улепшавање листе датотека -// @description:sr GitHub Филе Лист Беаутифиер је корисничка скрипта,користи за побољшање GitHub Приказ ефеката датотека у магацину。Може да додаје боје датотекама и фасциклама,и замените иконе типа датотеке малим сликама,Олакшава претраживање и управљање основом кода。Додајте боје и иконе датотекама по типу,Прикажите мале слике уместо икона типа датотеке у изворном стаблу спремишта -// @name:sv GitHub Fillista förskönare -// @description:sv GitHub File List Beautifier är ett användarskript,används för att förbättra GitHub Visningseffekt av filer i lagret。Det kan lägga till färger till filer och mappar,och ersätt filtypsikonerna med små bilder,Gör kodbasen lättare att bläddra i och hantera。Lägg till färger och ikoner till filer efter typ,Visa små bilder istället för filtypsikoner i arkivets källträd -// @name:th GitHub โปรแกรมตกแต่งรายการไฟล์ -// @description:th GitHub File List Beautifier เป็นสคริปต์ผู้ใช้,ใช้เพื่อเพิ่มประสิทธิภาพ GitHub แสดงเอฟเฟกต์ของไฟล์ในคลังสินค้า。สามารถเพิ่มสีสันให้กับไฟล์และโฟลเดอร์ได้,และแทนที่ไอคอนประเภทไฟล์ด้วยรูปภาพขนาดเล็ก,ทำให้ฐานโค้ดง่ายต่อการเรียกดูและจัดการ。เพิ่มสีและไอคอนให้กับไฟล์ตามประเภท,แสดงรูปภาพขนาดเล็กแทนที่ไอคอนประเภทไฟล์ในแผนผังแหล่งเก็บข้อมูล -// @name:tr GitHub Dosya listesi güzelleştirici -// @description:tr GitHub Dosya Listesi Güzelleştirici bir kullanıcı komut dosyasıdır,geliştirmek için kullanılır GitHub Depodaki dosyaların efektini görüntüleme。Dosya ve klasörlere renk ekleyebilir,ve dosya türü simgelerini küçük resimlerle değiştirin,Kod tabanına göz atmayı ve yönetmeyi kolaylaştırır。Türe göre dosyalara renkler ve simgeler ekleyin,Depo kaynak ağacında dosya türü simgelerinin yerine küçük resimleri görüntüle -// @name:ug GitHub ھۆججەت تىزىملىكى گۈزەللەشتۈرگۈچى -// @description:ug GitHub ھۆججەت تىزىملىكى گۈزەللەشتۈرگۈچى ئىشلەتكۈچى قوليازمىسى,كۈچەيتىشكە ئىشلىتىلىدۇ GitHub ئامباردىكى ھۆججەتلەرنىڭ ئۈنۈمىنى كۆرسىتىش。ئۇ ھۆججەت ۋە ھۆججەت قىسقۇچلارغا رەڭ قوشالايدۇ,ھەمدە ھۆججەت تىپىدىكى سىنبەلگىلەرنى كىچىك رەسىملەر بىلەن ئالماشتۇرۇڭ,كود ئاساسىنى كۆرۈش ۋە باشقۇرۇشنى ئاسانلاشتۇرىدۇ。ھۆججەتلەرگە رەڭ ۋە سىنبەلگە قوشۇڭ,ئامبار مەنبە دەرىخىدە ھۆججەت تىپىدىكى سىنبەلگىلەرنىڭ ئورنىدا كىچىك رەسىملەرنى كۆرسىتىڭ -// @name:uk GitHub Прикрашувач списку файлів -// @description:uk GitHub File List Beautifier — це сценарій користувача,використовується для посилення GitHub Ефект відображення файлів у складі。Він може додавати кольори до файлів і папок,і замініть піктограми типів файлів маленькими зображеннями,Полегшує перегляд та керування кодовою базою。Додайте кольори та значки до файлів за типом,Відображати невеликі зображення замість значків типів файлів у дереві вихідних кодів сховища -// @name:vi GitHub Trình làm đẹp danh sách tập tin -// @description:vi GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。Thêm màu sắc và biểu tượng vào tệp theo loại,Hiển thị hình ảnh nhỏ thay cho biểu tượng loại tệp trong cây nguồn kho lưu trữ -// @name:zh-TW GitHub 文件列表美化器 -// @description:zh-TW GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。按類型為文件添加顏色和圖標,在儲存庫來源樹中顯示小圖像以取代文件類型圖標 -// @name:zh-HK GitHub 文件列表美化器 -// @description:zh-HK GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。按類型為文件添加顏色和圖標,在儲存庫來源樹中顯示小圖像以取代文件類型圖標 -// @name:fr-CA GitHub Embellisseur de liste de fichiers -// @description:fr-CA GitHub File List Beautifier est un script utilisateur,utilisé pour améliorer GitHub Effet d’affichage des fichiers dans l’entrepôt。Il peut ajouter des couleurs aux fichiers et dossiers,et remplacez les icônes de type de fichier par de petites images,Rend la base de code plus facile à parcourir et à gérer。Ajouter des couleurs et des icônes aux fichiers par type,Afficher de petites images à la place des icônes de type de fichier dans l’arborescence des sources du référentiel -// @license MIT -// @version 4.1.0.3 -// @match https://github.com/* -// @grant none -// @run-at document-start -// @grant GM_xmlhttpRequest -// @grant GM_getValue -// @grant GM_setValue -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @author wOxxOm,人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,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 -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts - -// ==/UserScript== -'use strict' -let customColors = GM_getValue("fileTypesColors", {}) -var DEBUG = false -var addIcon = true -if (DEBUG) { - GM_setValue("fileTypesColors", {}) -} -GM_setValue("fileTypesColors", {}) -if (Object.keys(customColors).length === 0) { - GM_xmlhttpRequest({ - method: 'GET', - url: 'https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/Script%20details/github-file-list-beautifier-plus/colors.json', - //url: 'http://127.0.0.1:5500/UserScripts/Script%20details/github-file-list-beautifier-plus/colors.json', - onload: function (response) { - try { - customColors = JSON.parse(response.responseText) - GM_setValue("fileTypesColors", customColors) // 保存到本地存储 - requestAnimationFrame(start) - } catch (e) { - console.error('解析颜色配置失败:', e) - } - }, - onerror: function () { - console.error('加载颜色配置失败') - } - }) -} else { - requestAnimationFrame(start) -} -let savedConfig = {} -try { - savedConfig = JSON.parse(localStorage.FileListBeautifier) || {} -} catch (e) { } -const config = Object.assign({}, - ...Object.entries({ - iconSize: 24, - colorSeed1: 13, - colorSeed2: 1299721, - colorSeed3: 179426453, - }).map(([k, v]) => ({ [k]: +savedConfig[k] || v }))) -const IMG_CLS = 'wOxxOm-image-icon' -const rxImages = /^(png|jpe?g|bmp|gif|cur|ico|svg)$/i -const styleQueue = [] -const { sheet } = document.documentElement.appendChild($create('style', { - textContent: /*language=CSS*/ ` - .${IMG_CLS} { - width: ${config.iconSize}px; - height: ${config.iconSize}px; - object-fit: scale-down; - margin: 0 -4px; - } - .qinwuyuan-file-icon { - width: 16px; - height: 16px; - object-fit: scale-down; - margin: 0 -4px; - } - a[file-type=":folder"] { - font-weight: bold; - } - `.replace(/;/g, '!important;'), -})) -const filetypes = {} -const ME = Symbol(GM_info.script.name) -const ob = new MutationObserver(start) -let lumaBias, lumaFix, lumaAmp -function start() { - beautify() - ob.observe(document, { subtree: true, childList: true }) -} -function beautify() { - for (const el of document.querySelectorAll('.react-directory-truncate, .js-navigation-open')) { - if (ME in el) - continue - el[ME] = true - const isOld = el.tagName === 'A' - const a = isOld ? el : el.getElementsByTagName('a')[0] - const url = a && a.href - if (!url) - continue - const icon = el.closest(isOld ? '.js-navigation-item' : 'td').querySelector('svg') - if (icon.classList.contains(isOld ? 'octicon-file-directory-fill' : 'icon-directory')) { - a.setAttribute('file-type', ':folder') - continue - } - let filename = url.split('/').pop().toLowerCase() - let ext = (url.match(/\.(\w+)$|$/)[1] || filename).toLowerCase() - if (customColors[filename]) { - ext = filename - } - a.setAttribute('file-type', ext) - const customIcon = customColors[filename] && customColors[filename].icon - ? customColors[filename].icon - : (customColors[ext] && customColors[ext].icon) || null - if (!filetypes[ext]) - addFileTypeStyle(ext) - if (customIcon && addIcon) { - let iconUrl = customIcon - if (iconUrl && !iconUrl.startsWith('https://') && !iconUrl.startsWith('data:image')) { - iconUrl = `https://raw.githubusercontent.com/PKief/vscode-material-icon-theme/main/icons/${iconUrl}.svg` - console.log(iconUrl) - } - const img = $create('img', { - className: "qinwuyuan-file-icon", - src: iconUrl, - alt: ext, - }) - icon.replaceWith(img) - } else if (rxImages.test(ext)) { - const m = url.match(/github\.com\/(.+?\/)blob\/(.*)$/) - const next = icon.nextElementSibling - if (!m || next && next[ME]) - continue - icon.replaceWith($create('img', { - [ME]: true, - className: IMG_CLS, - src: `https://raw.githubusercontent.com/${m[1]}${m[2]}`, - })) - } - } -} - -function addFileTypeStyle(type) { - filetypes[type] = true - if (!styleQueue.length) - requestAnimationFrame(commitStyleQueue) - styleQueue.push(type) -} -function commitStyleQueue() { - if (!lumaAmp) initLumaScale() - const seed2 = config.colorSeed2 - const seed3 = config.colorSeed3 - for (const type of styleQueue) { - const colorConfig = customColors[type] - if (colorConfig) { - const color = colorConfig.color - if (color) { - sheet.insertRule(/*language=CSS*/ ` - a[file-type="${type}"]:not(#foo) { - color: ${color} !important; - } - `) - } - } else { - const hash = calcSimpleHash(type) - const H = hash % 360 - const Hq = H / 60 - const S = hash * seed2 % 50 + 50 | 0 - const redFix = (Hq < 1 ? 1 - Hq : Hq > 4 ? (Hq - 4) / 2 : 0) - const blueFix = (Hq < 3 || Hq > 5 ? 0 : Hq < 4 ? Hq - 3 : 5 - Hq) * 3 - const L = hash * seed3 % lumaAmp + lumaBias + (redFix + blueFix) * lumaFix * S / 100 | 0 - sheet.insertRule(/*language=CSS*/ ` - a[file-type="${type}"]:not(#foo) { - color: hsl(${H},${S}%,${L}%) !important; - } - `) - } - } - styleQueue.length = 0 -} -function calcSimpleHash(text) { - let hash = 0 - for (let i = 0, len = text.length; i < len; i++) - hash = ((hash << 5) - hash) + text.charCodeAt(i) - return Math.abs(hash * config.colorSeed1 | 0) -} -function initLumaScale() { - const [, r, g, b] = getComputedStyle(document.body).backgroundColor.split(/[^\d.]+/).map(parseFloat) - const isDark = (r * .2126 + g * .7152 + b * .0722) < 128; - [lumaBias, lumaAmp, lumaFix] = isDark ? [30, 50, 12] : [25, 15, 0] -} -function $create(tag, props) { - return Object.assign(document.createElement(tag), props) -} diff --git a/Script details/github-file-list-beautifier-plus/Change history/README.md b/github-file-list-beautifier-plus/Change history/README.md similarity index 99% rename from Script details/github-file-list-beautifier-plus/Change history/README.md rename to github-file-list-beautifier-plus/Change history/README.md index 812a6970e..e46e3f78b 100644 --- a/Script details/github-file-list-beautifier-plus/Change history/README.md +++ b/github-file-list-beautifier-plus/Change history/README.md @@ -1,6 +1,7 @@ # **🛠️ GitHub 文件列表美化器 更新日志** ### **📅 2024/9/12 11:35 - Ver 4.1** + **新增**: 增加了对文件增加图标,增加了自定义文件颜色和图标。 --- diff --git a/github-file-list-beautifier-plus/README.md b/github-file-list-beautifier-plus/README.md new file mode 100644 index 000000000..48ee9f054 --- /dev/null +++ b/github-file-list-beautifier-plus/README.md @@ -0,0 +1,315 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 文件列表美化器

    +

    「 GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ GitHub 文件列表美化器 更新日志

    +

    📅 2024/9/12 11:35 - Ver 4.1

    +

    新增: 增加了对文件增加图标,增加了自定义文件颜色和图标。

    +
    + +
    + + + +# GitHub 文件列表美化器 + +## 简介 + +GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 + + + +## 功能 + +- **文件夹图标**:将文件夹图标替换为更直观的文件夹图标。 +- **自定义图标**:根据文件的扩展名或文件名,显示自定义的图标。 +- **图片文件预览**:对于图片文件,自动显示缩略图。 +- **颜色标记**:为不同类型的文件添加颜色,以便更快速地识别文件类型。 + + + +## 请注意: + +**本脚本目就是为了着色不同的文件类型,显示图标只是附带的,有需要 Github 显示图标的,建议下载** + +- `github-vscode-icons-updated2.0.3` +- `Material Icons for GitHub 1.8.19` + + + +## 安装 + +1. **安装 Tampermonkey 或 Greasemonkey 插件**: + + - [Tampermonkey](https://www.tampermonkey.net/)(支持 Chrome, Firefox, Edge, Opera 等浏览器) + - [Greasemonkey](https://www.greasespot.net/)(支持 Firefox) + +2. **添加脚本**: + + - 点击 安装到 Tampermonkey Greasemonkey 。 + +3. **脚本配置**: + - 脚本首次运行时会从指定 URL 加载颜色配置。如果无法加载配置,将使用默认设置。 + + + +## 使用 + +- 脚本会在 GitHub 页面加载时自动运行,处理文件列表中的文件图标。 +- 可以根据需要在 `localStorage` 或脚本设置中调整图标和颜色配置。 + + + +## 自定义配置说明 + +- 文件类型: + `"js": { + "color": "#f1c40f", + "icon": "javascript" +}, +"py": { + "color": "red", + "icon": "javascript" +}` +- 绝对名称:(用来显示图标的,暂时没添加绝对文件的自定义着色) + ` +"123.txt": { + "color": "red", + "icon": "javascript" +},` +- 默认从 vscode-material-icon-theme 获取图标: + ` "123.txt": { + "color": "red", + "icon": "javascript" +},` +- 从网络加载图标: + ` +"123.txt": { + "color": "red", + "icon": "https://www.1.com/1.png" +},` +- 从本地加载图标: + ` +"123.txt": { + "color": "red", + "icon": " data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAA....." +},` + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +## 兼容性 + +- **浏览器**:支持 Chrome、Firefox、Edge、Opera 和 Safari。 + + + +## 支持与反馈 + +- 如果遇到问题或有任何建议,请访问 [GitHub Issues 页面](https://github.com/ChinaGodMan/UserScripts/issues) 提交反馈。 + + + +## 授权 + +- 该脚本基于 [MIT 许可证](https://opensource.org/licenses/MIT) 开源。 + + + +## 贡献 + +- 本脚本由 [wOxxOm](https://greasyfork.org/zh-CN/users/2159) [GitHub file list beautifier](https://greasyfork.org/zh-CN/scripts/5982) 和 人民的勤务员 开发。 +- 更多信息请访问 [GitHub 项目主页](https://github.com/ChinaGodMan/UserScripts)。 + +![image](https://i.imgur.com/UuTzStC.png) +![dark](https://i.imgur.com/odYikhU.png) +![Snipaste_2024-09-12_12-03-25.png](https://s2.loli.net/2024/09/12/HCZDNa8EngxQJ4y.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-file-list-beautifier-plus/README_en.md b/github-file-list-beautifier-plus/README_en.md new file mode 100644 index 000000000..7bb932845 --- /dev/null +++ b/github-file-list-beautifier-plus/README_en.md @@ -0,0 +1,315 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GitHub File list beautifier

    +

    「 GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ GitHub File list beautifier Change log

    +

    📅 2024/9/12 11:35 - Ver 4.1

    +

    New: Added icons for files,Added custom file colors and icons。

    +
    + +
    + + + +# GitHub File list beautifier + +## Introduction + +GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 + + + +## Function + +- **folder icon**:Replace folder icons with more intuitive folder icons。 +- **Custom icon**:Based on file extension or file name,Show custom icons。 +- **Image file preview**:For image files,Automatically display thumbnails。 +- **Color marking**:Add colors to different types of files,to identify file types more quickly。 + + + +## please note: + +**This script is for colorizing different file types,Display icons are only included,in needGithubdisplay icon,Recommended download** + +- `github-vscode-icons-updated2.0.3` +- `Material Icons for GitHub 1.8.19` + + + +## Install + +1. **Install Tampermonkey or Greasemonkey plug-in**: + + - [Tampermonkey](https://www.tampermonkey.net/)(support Chrome, Firefox, Edge, Opera Wait for the browser) + - [Greasemonkey](https://www.greasespot.net/)(support Firefox) + +2. **Add script**: + + - Click install to Tampermonkey Greasemonkey 。 + +3. **Script placement**: + - The first time the script is run it will start from the specified URL Load color configuration。If the configuration cannot be loaded,Default settings will be used。 + + + +## use + +- The script will be in GitHub Run automatically when page loads,Handling file icons in file lists。 +- Can be used as needed `localStorage` Or adjust the icon and color configuration in the script settings。 + + + +## Custom configuration instructions + +- File type: + `"js": { + "color": "#f1c40f", + "icon": "javascript" +}, +"py": { + "color": "red", + "icon": "javascript" +}` +- absolute name:(used to display icons,Custom coloring of absolute files has not been added yet.) + ` +"123.txt": { + "color": "red", + "icon": "javascript" +},` +- Default fromvscode-material-icon-themeGet icon: + ` "123.txt": { + "color": "red", + "icon": "javascript" +},` +- Load icon from network: + ` +"123.txt": { + "color": "red", + "icon": "https://www.1.com/1.png" +},` +- Load icon from local: + ` +"123.txt": { + "color": "red", + "icon": " data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAA....." +},` + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +## compatibility + +- **Browser**:support Chrome、Firefox、Edge、Opera and Safari。 + + + +## Support and feedback + +- If you encounter problems or have any suggestions,Please visit [GitHub Issues page](https://github.com/ChinaGodMan/UserScripts/issues) Submit feedback。 + + + +## Authorize + +- This script is based on [MIT license](https://opensource.org/licenses/MIT) Open source。 + + + +## contribute + +- Reason for the script [wOxxOm](https://greasyfork.org/zh-CN/users/2159) [GitHub file list beautifier](https://greasyfork.org/zh-CN/scripts/5982) and 人民的勤务员 develop。 +- For more information please visit [GitHub Project homepage](https://github.com/ChinaGodMan/UserScripts)。 + +![image](https://i.imgur.com/UuTzStC.png) +![dark](https://i.imgur.com/odYikhU.png) +![Snipaste_2024-09-12_12-03-25.png](https://s2.loli.net/2024/09/12/HCZDNa8EngxQJ4y.png) + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/github-file-list-beautifier-plus/colors.json b/github-file-list-beautifier-plus/colors.json new file mode 100644 index 000000000..71219575e --- /dev/null +++ b/github-file-list-beautifier-plus/colors.json @@ -0,0 +1,162 @@ +{ + "js": { + "color": "#b07219", + "icon": "javascript" + }, + "license": { + "color": "red", + "icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iI2ZmNTcyMiIgZD0iTTQgNnYxNGEyIDIgMCAwIDAgMiAyaDEydjZsMy0yIDMgMnYtNmg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMlptMiAwaDh2Mkg2Wm0wIDRoNnYySDZabTAgNGg4djJINlptMTAgNkg2di0yaDEwWm04LTZ2NGwtMy0yLTMgMnYtNGwtNC0yIDQtMlY2bDMgMiAzLTJ2NC4ybDQgMS44WiIvPjwvc3ZnPg==" + }, + "jsx": { + "color": "#b07219", + "icon": "javascript" + }, + "ts": { + "color": "#007acc", + "icon": "typescript" + }, + "docs": { + "color": "#e67e22", + "icon": "typescript" + }, + "css": { + "color": "#e67e22", + "icon": "css" + }, + "html": { + "color": "#3498db", + "icon": "html" + }, + "md": { + "color": "#6e5494", + "icon": "markdown" + }, + "readme.md": { + "color": "#e67e22", + "icon": "markdown" + }, + "json": { + "color": "#e44b23", + "icon": "json" + }, + "xml": { + "color": "#e44b23", + "icon": "xml" + }, + "yml": { + "color": "#e44b23", + "icon": "yaml" + }, + "py": { + "color": "#3572a5", + "icon": "python" + }, + "java": { + "color": "#b07219", + "icon": "java" + }, + "c": { + "color": "#555555", + "icon": "c" + }, + "cpp": { + "color": "#f34b7d", + "icon": "cpp" + }, + "h": { + "color": "#f34b7d", + "icon": "h" + }, + "go": { + "color": "#00add8", + "icon": "go" + }, + "rb": { + "color": "#701516", + "icon": "ruby" + }, + "php": { + "color": "#4f5d95", + "icon": "php" + }, + "swift": { + "color": "#ffac45", + "icon": "swift" + }, + "pl": { + "color": "#0298c3", + "icon": "pl" + }, + "sh": { + "color": "#89e051", + "icon": "https://raw.githubusercontent.com/the-userr/GitHub-Icons/master/icons/Shell.svgl" + }, + "bat": { + "color": "#4eaa25", + "icon": "https://raw.githubusercontent.com/the-userr/GitHub-Icons/master/icons/CMD.png" + }, + "ps1": { + "color": "#012456", + "icon": "powershell" + }, + "ttf": { + "color": "#f39c12", + "icon": "'https://raw.githubusercontent.com/the-userr/GitHub-Icons/master/icons/TrueType.png" + }, + "exe": { + "color": "#f39c12", + "icon": "exe" + }, + "dll": { + "color": "#f39c12", + "icon": "dll" + }, + "apk": { + "color": "#4caf50", + "icon": "android" + }, + "img": { + "color": "#ff5722", + "icon": "image" + }, + "doc": { + "color": "#2e77c0", + "icon": "document" + }, + "zip": { + "color": "#9b59b6", + "icon": "zip" + }, + "rar": { + "color": "#9b59b6", + "icon": "zip" + }, + "7z": { + "color": "#9b59b6", + "icon": "zip" + }, + "tar": { + "color": "#9b59b6", + "icon": "zip" + }, + "gz": { + "color": "#9b59b6", + "icon": "zip" + }, + "bz2": { + "color": "#9b59b6", + "icon": "zip" + }, + "xz": { + "color": "#9b59b6", + "icon": "zip" + }, + "log": { + "color": "#7f8c8d", + "icon": "log" + }, + "yaml": { + "color": "#e44b23", + "icon": "yaml" + } +} diff --git a/Script details/github-file-list-beautifier-plus/github-file-list-beautifier-plus.user.js b/github-file-list-beautifier-plus/github-file-list-beautifier-plus.user.js similarity index 98% rename from Script details/github-file-list-beautifier-plus/github-file-list-beautifier-plus.user.js rename to github-file-list-beautifier-plus/github-file-list-beautifier-plus.user.js index 36a36491b..e97be0760 100644 --- a/Script details/github-file-list-beautifier-plus/github-file-list-beautifier-plus.user.js +++ b/github-file-list-beautifier-plus/github-file-list-beautifier-plus.user.js @@ -76,7 +76,7 @@ // @name:fr-CA GitHub Embellisseur de liste de fichiers // @description:fr-CA GitHub File List Beautifier est un script utilisateur,utilisé pour améliorer GitHub Effet d’affichage des fichiers dans l’entrepôt。Il peut ajouter des couleurs aux fichiers et dossiers,et remplacez les icônes de type de fichier par de petites images,Rend la base de code plus facile à parcourir et à gérer。Ajouter des couleurs et des icônes aux fichiers par type,Afficher de petites images à la place des icônes de type de fichier dans l’arborescence des sources du référentiel // @license MIT -// @version 4.1.0.3 +// @version 4.1.0.4 // @match https://github.com/* // @grant none // @run-at document-start @@ -88,7 +88,7 @@ // @compatible edge // @compatible opera // @compatible safari -// @author wOxxOm,人民的勤务员 +// @author wOxxOm,人民的勤务员 // @namespace https://github.com/ChinaGodMan/UserScripts // @icon data:image/png;base64,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 // @license MIT @@ -97,22 +97,22 @@ // ==/UserScript== 'use strict' -let customColors = GM_getValue("fileTypesColors", {}) +let customColors = GM_getValue('fileTypesColors', {}) var DEBUG = false var addIcon = true if (DEBUG) { - GM_setValue("fileTypesColors", {}) + GM_setValue('fileTypesColors', {}) } -GM_setValue("fileTypesColors", {}) +GM_setValue('fileTypesColors', {}) if (Object.keys(customColors).length === 0) { GM_xmlhttpRequest({ method: 'GET', - url: 'https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/Script%20details/github-file-list-beautifier-plus/colors.json', + url: 'https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/github-file-list-beautifier-plus/colors.json', //url: 'http://127.0.0.1:5500/UserScripts/Script%20details/github-file-list-beautifier-plus/colors.json', onload: function (response) { try { customColors = JSON.parse(response.responseText) - GM_setValue("fileTypesColors", customColors) // 保存到本地存储 + GM_setValue('fileTypesColors', customColors) // 保存到本地存储 requestAnimationFrame(start) } catch (e) { console.error('解析颜色配置失败:', e) @@ -134,7 +134,7 @@ const config = Object.assign({}, iconSize: 24, colorSeed1: 13, colorSeed2: 1299721, - colorSeed3: 179426453, + colorSeed3: 179426453 }).map(([k, v]) => ({ [k]: +savedConfig[k] || v }))) const IMG_CLS = 'wOxxOm-image-icon' const rxImages = /^(png|jpe?g|bmp|gif|cur|ico|svg)$/i @@ -156,7 +156,7 @@ const { sheet } = document.documentElement.appendChild($create('style', { a[file-type=":folder"] { font-weight: bold; } - `.replace(/;/g, '!important;'), + `.replace(/;/g, '!important;') })) const filetypes = {} const ME = Symbol(GM_info.script.name) @@ -199,9 +199,9 @@ function beautify() { console.log(iconUrl) } const img = $create('img', { - className: "qinwuyuan-file-icon", + className: 'qinwuyuan-file-icon', src: iconUrl, - alt: ext, + alt: ext }) icon.replaceWith(img) } else if (rxImages.test(ext)) { @@ -212,7 +212,7 @@ function beautify() { icon.replaceWith($create('img', { [ME]: true, className: IMG_CLS, - src: `https://raw.githubusercontent.com/${m[1]}${m[2]}`, + src: `https://raw.githubusercontent.com/${m[1]}${m[2]}` })) } } diff --git a/Script details/github-file-list-beautifier-plus/preview/Snipaste_2024-09-12_12-03-25.png b/github-file-list-beautifier-plus/preview/Snipaste_2024-09-12_12-03-25.png similarity index 100% rename from Script details/github-file-list-beautifier-plus/preview/Snipaste_2024-09-12_12-03-25.png rename to github-file-list-beautifier-plus/preview/Snipaste_2024-09-12_12-03-25.png diff --git a/github-folder-downloader.user.js b/github-folder-downloader.user.js deleted file mode 100644 index 27632269f..000000000 --- a/github-folder-downloader.user.js +++ /dev/null @@ -1,218 +0,0 @@ -// ==UserScript== -// @name GitHub Folder Downloader -// @name:zh-CN GitHub 文件夹下载器 -// @description:zh-CN 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -// @name:ar GitHub تنزيل المجلد -// @description:ar أضف زر التنزيل,يتيح سهولة تنزيل ملفات محددة GitHub المجلد。 -// @name:bg GitHub програма за изтегляне на папки -// @description:bg Добавете бутон за изтегляне,Позволява лесно изтегляне на конкретни GitHub папка。 -// @name:cs GitHub stahovač složek -// @description:cs Přidejte tlačítko stahování,Umožňuje snadné stahování konkrétních GitHub složku。 -// @name:da GitHub mappe downloader -// @description:da Tilføj en downloadknap,Tillader nem download af specifikke GitHub folder。 -// @name:de GitHub Ordner-Downloader -// @description:de Fügen Sie einen Download-Button hinzu,Ermöglicht das einfache Herunterladen spezifischer GitHub Ordner。 -// @name:el GitHub πρόγραμμα λήψης φακέλων -// @description:el Προσθέστε ένα κουμπί λήψης,Επιτρέπει την εύκολη λήψη συγκεκριμένων GitHub ντοσιέ。 -// @name:en GitHub folder downloader -// @description:en Add a download button,Allows easy downloading of specific GitHub folder。 -// @name:eo GitHub dosierujo elŝutilo -// @description:eo Aldonu elŝutan butonon,Ebligas facilan elŝuton de specifaj GitHub dosierujo。 -// @name:es GitHub descargador de carpetas -// @description:es Agregar un botón de descarga,Permite descargar fácilmente archivos específicos GitHub carpeta。 -// @name:fi GitHub kansion latausohjelma -// @description:fi Lisää latauspainike,Mahdollistaa helpon lataamisen tiettyjä GitHub kansio。 -// @name:fr GitHub téléchargeur de dossiers -// @description:fr Ajouter un bouton de téléchargement,Permet de télécharger facilement des fichiers spécifiques GitHub dossier。 -// @name:he GitHub הורדת תיקיות -// @description:he הוסף כפתור הורדה,מאפשר הורדה קלה של ספציפיים GitHub תיקייה。 -// @name:hr GitHub preuzimač mapa -// @description:hr Dodajte gumb za preuzimanje,Omogućuje jednostavno preuzimanje određenih GitHub mapa。 -// @name:hu GitHub mappa letöltő -// @description:hu Letöltés gomb hozzáadása,Lehetővé teszi a konkrét GitHub mappát。 -// @name:id GitHub pengunduh folder -// @description:id Tambahkan tombol unduh,Memungkinkan pengunduhan yang spesifik dengan mudah GitHub map。 -// @name:it GitHub downloader di cartelle -// @description:it Aggiungi un pulsante di download,Consente un facile download di specifici GitHub cartella。 -// @name:ja GitHub フォルダーダウンローダー -// @description:ja ダウンロードボタンを追加する,特定のファイルを簡単にダウンロードできます GitHub フォルダ。 -// @name:ka GitHub საქაღალდის ჩამოტვირთვა -// @description:ka დაამატეთ ჩამოტვირთვის ღილაკი,საშუალებას გაძლევთ მარტივად ჩამოტვირთოთ კონკრეტული GitHub საქაღალდე。 -// @name:ko GitHub 폴더 다운로더 -// @description:ko 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 -// @name:nl GitHub mapdownloader -// @description:nl Voeg een downloadknop toe,Maakt eenvoudig downloaden van specifieke GitHub map。 -// @name:nb GitHub mappenedlasting -// @description:nb Legg til en nedlastingsknapp,Tillater enkel nedlasting av spesifikke GitHub mappe。 -// @name:pl GitHub narzędzie do pobierania folderów -// @description:pl Dodaj przycisk pobierania,Umożliwia łatwe pobieranie określonych GitHub falcówka。 -// @name:pt-BR GitHub downloader de pasta -// @description:pt-BR Adicione um botão de download,Permite fácil download de arquivos específicos GitHub pasta。 -// @name:ro GitHub folder downloader -// @description:ro Adăugați un buton de descărcare,Permite descărcarea ușoară a anumitor GitHub pliant。 -// @name:ru GitHub загрузчик папок -// @description:ru Добавьте кнопку загрузки,Позволяет легко загружать определенные GitHub папка。 -// @name:sk GitHub sťahovač priečinkov -// @description:sk Pridajte tlačidlo sťahovania,Umožňuje jednoduché sťahovanie konkrétnych GitHub priečinok。 -// @name:sr GitHub фолдер за преузимање -// @description:sr Додајте дугме за преузимање,Омогућава лако преузимање одређених GitHub фолдер。 -// @name:sv GitHub mappnedladdare -// @description:sv Lägg till en nedladdningsknapp,Tillåter enkel nedladdning av specifika GitHub mapp。 -// @name:th GitHub ดาวน์โหลดโฟลเดอร์ -// @description:th เพิ่มปุ่มดาวน์โหลด,ช่วยให้ดาวน์โหลดเฉพาะได้ง่าย GitHub โฟลเดอร์。 -// @name:tr GitHub klasör indirici -// @description:tr İndirme düğmesi ekleyin,Belirli dosyaların kolayca indirilmesine izin verir GitHub dosya。 -// @name:ug GitHub ھۆججەت قىسقۇچ -// @description:ug چۈشۈرۈش كۇنۇپكىسىنى قوشۇڭ,كونكرېت چۈشۈرۈشكە ئاسان يول قويىدۇ GitHub ھۆججەت قىسقۇچ。 -// @name:uk GitHub завантажувач папок -// @description:uk Додайте кнопку завантаження,Дозволяє легко завантажувати певні GitHub папку。 -// @name:vi GitHub trình tải xuống thư mục -// @description:vi Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub thư mục。 -// @name:zh-TW GitHub 資料夾下載器 -// @description:zh-TW 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 -// @name:zh-HK GitHub 資料夾下載器 -// @description:zh-HK 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 -// @name:fr-CA GitHub téléchargeur de dossiers -// @description:fr-CA Ajouter un bouton de téléchargement,Permet de télécharger facilement des fichiers spécifiques GitHub dossier。 -// @description To add a download button for a GitHub folder, which allows easy downloading of a specific folder, you can follow these steps -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.7.0.23 -// @author EricKwok,人民的勤务员 -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @match *://github.com/* -// @icon data:image/png;base64,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 -// @iconbak https://i.loli.net/2021/03/30/ULV9XunaHesqGIR.png -// @run-at document-idle -// @grant none -// @license MIT -// ==/UserScript== -// 记录页面宽度是否允许 GitHub 展开完整页面的变量 -var isFold = false -var isRun = false -function observeAndAddLinks() { - const parentElement = document.querySelector('#__primerPortalRoot__') - if (!parentElement) return - const observer = new MutationObserver((mutationsList) => { - for (const mutation of mutationsList) { - if (mutation.addedNodes.length > 0) { - for (const node of mutation.addedNodes) { - const ulElement = parentElement.querySelector('ul[role="menu"]') - if (document.querySelector('.github-folder-download')) return - console.log(node) - if (ulElement) { - const _html = ` -
  • -

    Download folder with..

    -
  • - - download-directory - - - DownGit - - ` - ulElement.insertAdjacentHTML("beforeend", _html) - } - return - } - } - } - }) - const config = { childList: true, subtree: true } - if (!isRun) { - isRun = true - observer.observe(parentElement, config) - } - return true -} -observeAndAddLinks() -// 注入下载文件夹按钮 -function injectDownloadFolderBtn() { - if (document.querySelector('.github-folder-download')) return - if (!isFold) { - // 展开状态(PC端) - let html = document.querySelector('[data-testid="tree-overflow-menu-anchor"]')//.types__StyledButton-sc-ws60qy-0.feqCqy - let _html = ` -
    - - - Download folder - - - - - - - - - - ` - html.insertAdjacentHTML("beforebegin", _html) - } else { - observeAndAddLinks() - } -} -function removeAllInjectedElem() { - document.querySelectorAll(".github-folder-download").forEach(elem => elem.remove()) -} -function detectFoldUnfold() { - if (document.body.clientWidth <= 1200 && !isFold) { - console.log("收起" + document.body.clientWidth) - isFold = true - } else if (document.body.clientWidth > 1200 && isFold) { - console.log("展开" + document.body.clientWidth) - isFold = false - } -} -function reinject() { - if (document.querySelector(".octicon.octicon-copy")) {//复制路径的元素 - // 仅当处于文件夹内时注入按钮 - removeAllInjectedElem() - injectDownloadFolderBtn() - } -} -function main() { - detectFoldUnfold() - reinject() -} -(function () { - 'use strict' - /** - * 在浏览器窗口大小改变时自动重新定位设置菜单 - */ - window.onresize = function () { - // 监听窗口大小改变 - main() - } - function observeUrlChanges(callback, delay = 1000) { - let lastUrl = location.href - const observer = new MutationObserver(() => { - const url = location.href - if (url !== lastUrl) { - lastUrl = url - setTimeout(() => { - console.log("页面发生变动,") - callback() - }, delay) - } - }) - observer.observe(document, { subtree: true, childList: true }) - return observer - } - observeUrlChanges(main) - main() -})() diff --git a/Script details/github-folder-downloader/Change history/README.md b/github-folder-downloader/Change history/README.md similarity index 100% rename from Script details/github-folder-downloader/Change history/README.md rename to github-folder-downloader/Change history/README.md diff --git a/github-folder-downloader/README.md b/github-folder-downloader/README.md new file mode 100644 index 000000000..f94f6cca5 --- /dev/null +++ b/github-folder-downloader/README.md @@ -0,0 +1,237 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 文件夹下载器

    +

    「 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ GitHub 文件夹下载 更新日志

    +

    📅 2024/8/28 09:46 - Ver 0.7.0.2

    +

    优化: 移出原脚本的检测链接发生变化的监听器,添加新的监听器用于支持在仓库主页跳转目录时显示按钮

    +
    +

    📅 2024/8/28 04:21 - Ver 0.7

    +

    修复: 替换失效的选择器

    +
    + +
    + + + + + +# GitHub Folder Downloader + + + +### 描述 + +GitHub 文件夹下载器为 GitHub 文件夹添加了一个下载按钮,使用户可以更轻松地从仓库中下载特定的文件夹。该按钮集成了两个外部工具:download-directory 和 DownGit,允许用户一键下载文件夹。 + + + +### 功能 + +- 为 GitHub 文件夹添加下载按钮。 +- 提供使用 [download-directory](https://download-directory.github.io) 和 [DownGit](https://downgit.github.io) 下载文件夹的选项。 + + + +### 使用方法 + +1. 导航到一个 GitHub 仓库。 +2. 打开仓库中的一个文件夹。 +3. 点击“下载文件夹”按钮,以查看下载文件夹的选项。 + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +### 修改说明 + +修改自用户[Eric Kwok](https://greasyfork.org/zh-CN/users/220259) 的脚本 [GitHub 文件夹下载](https://greasyfork.org/scripts/434592) + +![2.png](https://s2.loli.net/2024/08/28/i3Ov9gj5aKIYSVR.png) +![1.png](https://s2.loli.net/2024/08/28/XiKjIu85TVBwzMa.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-folder-downloader/README_en.md b/github-folder-downloader/README_en.md new file mode 100644 index 000000000..fe00bd7a4 --- /dev/null +++ b/github-folder-downloader/README_en.md @@ -0,0 +1,236 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GitHub folder downloader

    +

    「 Add a download button,Allows easy downloading of specific GitHub folder。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ GitHub Folder download Change log

    +

    📅 2024/8/28 09:46 - Ver 0.7.0.2

    +

    optimization: Remove the listener for detecting link changes in the original script,Add a new listener to support displaying buttons when jumping to directories on the warehouse homepage

    +
    +

    📅 2024/8/28 04:21 - Ver 0.7

    +

    repair: Replace broken selectors

    +
    + +
    + + + + + +# GitHub Folder Downloader + + + +### Description + +GitHub Folder Downloader adds a download button for GitHub folders, making it easier to download specific folders from repositories. The button integrates with two external tools: download-directory and DownGit, allowing users to download folders with a single click. + + + +### Features + +- Adds a download button to GitHub folders. +- Provides options to download using [download-directory](https://download-directory.github.io) and [DownGit](https://downgit.github.io). + + + +### Modifications + +Modified from the script [GitHub artspiecesfolderDownload](https://greasyfork.org/scripts/434592) by user [Eric Kwok](https://greasyfork.org/users/220259). + + + +### Usage + +1. Navigate to a GitHub repository. +2. Open a folder in the repository. +3. Click on the "Download folder" button to see options for downloading the folder. + +![2.png](https://s2.loli.net/2024/08/28/i3Ov9gj5aKIYSVR.png) +![1.png](https://s2.loli.net/2024/08/28/XiKjIu85TVBwzMa.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/Script details/github-folder-downloader/github-folder-downloader.user.js b/github-folder-downloader/github-folder-downloader.user.js similarity index 97% rename from Script details/github-folder-downloader/github-folder-downloader.user.js rename to github-folder-downloader/github-folder-downloader.user.js index 27632269f..10a5d4224 100644 --- a/Script details/github-folder-downloader/github-folder-downloader.user.js +++ b/github-folder-downloader/github-folder-downloader.user.js @@ -77,7 +77,7 @@ // @description To add a download button for a GitHub folder, which allows easy downloading of a specific folder, you can follow these steps // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.7.0.23 -// @author EricKwok,人民的勤务员 +// @author EricKwok,人民的勤务员 // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts // @match *://github.com/* @@ -112,7 +112,7 @@ function observeAndAddLinks() { DownGit ` - ulElement.insertAdjacentHTML("beforeend", _html) + ulElement.insertAdjacentHTML('beforeend', _html) } return } @@ -161,25 +161,25 @@ function injectDownloadFolderBtn() { ` - html.insertAdjacentHTML("beforebegin", _html) + html.insertAdjacentHTML('beforebegin', _html) } else { observeAndAddLinks() } } function removeAllInjectedElem() { - document.querySelectorAll(".github-folder-download").forEach(elem => elem.remove()) + document.querySelectorAll('.github-folder-download').forEach(elem => elem.remove()) } function detectFoldUnfold() { if (document.body.clientWidth <= 1200 && !isFold) { - console.log("收起" + document.body.clientWidth) + console.log('收起' + document.body.clientWidth) isFold = true } else if (document.body.clientWidth > 1200 && isFold) { - console.log("展开" + document.body.clientWidth) + console.log('展开' + document.body.clientWidth) isFold = false } } function reinject() { - if (document.querySelector(".octicon.octicon-copy")) {//复制路径的元素 + if (document.querySelector('.octicon.octicon-copy')) {//复制路径的元素 // 仅当处于文件夹内时注入按钮 removeAllInjectedElem() injectDownloadFolderBtn() @@ -205,7 +205,7 @@ function main() { if (url !== lastUrl) { lastUrl = url setTimeout(() => { - console.log("页面发生变动,") + console.log('页面发生变动,') callback() }, delay) } diff --git a/Script details/github-folder-downloader/preview/1.png b/github-folder-downloader/preview/1.png similarity index 100% rename from Script details/github-folder-downloader/preview/1.png rename to github-folder-downloader/preview/1.png diff --git a/Script details/github-folder-downloader/preview/2.png b/github-folder-downloader/preview/2.png similarity index 100% rename from Script details/github-folder-downloader/preview/2.png rename to github-folder-downloader/preview/2.png diff --git a/github-linguist-expand.user.js b/github-linguist-expand.user.js deleted file mode 100644 index 1a321eb4e..000000000 --- a/github-linguist-expand.user.js +++ /dev/null @@ -1,340 +0,0 @@ -// ==UserScript== -// @name Github List of code languages ​​show all -// @description Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in“other”Down -// @name:zh-CN Github 代码语言列表显示全部 -// @description:zh-CN 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 -// @name:ar Github قائمة لغات الكود إظهار الكل -// @description:ar يوسع Github قائمة اللغات في المستودع,إظهار كل لغة,بدلاً من إخفاء الأجزاء الصغيرة فيها“آخر”تحت -// @name:bg Github Списък с кодови езици, покажи всички -// @description:bg Разширяване Github Списък на езиците в хранилището,Покажете всеки език,Вместо да криете малки части в“друго”Надолу -// @name:cs Github Seznam kódových jazyků zobrazuje vše -// @description:cs Rozšířit Github Seznam jazyků v úložišti,Zobrazit každý jazyk,Místo schovávání malých částí“ostatní”Dolů -// @name:da Github Liste over kodesprog viser alle -// @description:da Udvide Github Liste over sprog på lageret,Vis hvert sprog,I stedet for at gemme små dele ind“andre”Ned -// @name:de Github Liste der Codesprachen alle anzeigen -// @description:de Expandieren Github Liste der Sprachen im Repository,Jede Sprache anzeigen,Anstatt kleine Teile darin zu verstecken“andere”Runter -// @name:el Github Η λίστα των γλωσσών κώδικα εμφανίζει όλα -// @description:el Διαστέλλω Github Λίστα γλωσσών στο αποθετήριο,Εμφάνιση κάθε γλώσσας,Αντί να κρύβεις μικρά κομμάτια“άλλος”Κάτω -// @name:en Github List of code languages ​​show all -// @description:en Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in“other”Down -// @name:eo Github Listo de kodlingvoj montras ĉion -// @description:eo Vastigi Github Listo de lingvoj sur la deponejo,Montru ĉiun lingvon,Anstataŭ kaŝi malgrandajn partojn en“aliaj”Malsupren -// @name:es Github Lista de lenguajes de código mostrar todo -// @description:es Expandir Github Lista de idiomas en el repositorio,Mostrar cada idioma,En lugar de esconder piezas pequeñas en“otro”Abajo -// @name:fi Github Luettelo koodikielistä näyttää kaikki -// @description:fi Laajentaa Github Luettelo arkiston kielistä,Näytä jokainen kieli,Sen sijaan, että piilottaisit pieniä osia“muu”Alas -// @name:fr Github Liste des langages de code afficher tout -// @description:fr Développer Github Liste des langues sur le référentiel,Afficher chaque langue,Au lieu de cacher de petites pièces“autre”Vers le bas -// @name:he Github רשימת שפות הקוד מציגה הכל -// @description:he לְהַרְחִיב Github רשימת השפות במאגר,הצג כל שפה,במקום להחביא חלקים קטנים“אַחֵר”לְמַטָה -// @name:hr Github Popis kodnih jezika prikaži sve -// @description:hr Proširiti Github Popis jezika u repozitoriju,Prikaži svaki jezik,Umjesto skrivanja malih dijelova“drugo”dolje -// @name:hu Github A kódnyelvek listája az összeset mutatja -// @description:hu Bontsa ki Github Az adattárban található nyelvek listája,Minden nyelv megjelenítése,Ahelyett, hogy apró alkatrészeket rejtene el“más”Le -// @name:id Github Daftar bahasa kode menunjukkan semuanya -// @description:id Memperluas Github Daftar bahasa di repositori,Tunjukkan setiap bahasa,Daripada menyembunyikan bagian-bagian kecil di dalamnya“lainnya”Turun -// @name:it Github L’elenco delle lingue del codice mostra tutto -// @description:it Espandere Github Elenco delle lingue nel repository,Mostra ogni lingua,Invece di nascondere piccole parti“altro”Giù -// @name:ja Github コード言語のリストをすべて表示 -// @description:ja 拡大する Github リポジトリ上の言語のリスト,各言語を表示,小さな部品を隠すのではなく、“他の”下 -// @name:ka Github კოდის ენების სია აჩვენებს ყველაფერს -// @description:ka გაფართოება Github ენების სია საცავში,აჩვენე თითოეული ენა,მცირე ნაწილების დამალვის ნაცვლად“სხვა”ქვემოთ -// @name:ko Github 코드 언어 목록 모두 표시 -// @description:ko 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다“다른”아래에 -// @name:nl Github Lijst met codetalen laat alles zien -// @description:nl Uitbreiden Github Lijst met talen in de repository,Toon elke taal,In plaats van kleine onderdelen erin te verstoppen“ander”Omlaag -// @name:nb Github Liste over kodespråk viser alle -// @description:nb Utvide Github Liste over språk på depotet,Vis hvert språk,I stedet for å gjemme små deler i“annen”Ned -// @name:pl Github Lista języków kodowych pokaż wszystko -// @description:pl Zwiększać Github Lista języków w repozytorium,Pokaż każdy język,Zamiast ukrywać małe części w“Inny”W dół -// @name:pt-BR Github Lista de linguagens de código mostra todas -// @description:pt-BR Expandir Github Lista de idiomas no repositório,Mostrar cada idioma,Em vez de esconder pequenas peças“outro”Abaixo -// @name:ro Github Lista de limbaje de cod arată toate -// @description:ro Extinde Github Lista limbilor din depozit,Arată fiecare limbă,În loc să ascundă piese mici“alte”Jos -// @name:ru Github Список языков программирования показать все -// @description:ru Расширять Github Список языков в репозитории,Показать каждый язык,Вместо того, чтобы прятать мелкие детали в“другой”Вниз -// @name:sk Github Zoznam kódovacích jazykov zobrazuje všetko -// @description:sk Rozbaliť Github Zoznam jazykov v úložisku,Zobraziť každý jazyk,Namiesto skrývania malých častí“iné”Dole -// @name:sr Github Листа кодних језика приказује све -// @description:sr Прошири Github Листа језика у спремишту,Прикажи сваки језик,Уместо да кријете мале делове унутра“друго”Доле -// @name:sv Github Lista över kodspråk visar alla -// @description:sv Expandera Github Lista över språk på förvaret,Visa varje språk,Istället för att gömma smådelar i“andra”Ner -// @name:th Github รายการรหัสภาษาแสดงทั้งหมด -// @description:th ขยาย Github รายชื่อภาษาในพื้นที่เก็บข้อมูล,แสดงแต่ละภาษา,แทนที่จะซ่อนส่วนเล็กๆ ไว้ข้างใน“อื่น”ลง -// @name:tr Github Kod dilleri listesi tümünü göster -// @description:tr Genişletmek Github Depodaki dillerin listesi,Her dili göster,Küçük parçaları saklamak yerine“diğer”Aşağı -// @name:ug Github كود تىللىرىنىڭ تىزىملىكى ھەممىنى كۆرسىتىدۇ -// @description:ug كېڭەيتىش Github ئامباردىكى تىللارنىڭ تىزىملىكى,ھەر بىر تىلنى كۆرسەت,كىچىك قىسىملارنى يوشۇرۇشنىڭ ئورنىغا“other”تۆۋەنگە -// @name:uk Github Список мов коду показати всі -// @description:uk Розгорнути Github Список мов у репозиторії,Показати кожну мову,Замість того, щоб ховати дрібні деталі“інші”вниз -// @name:vi Github Danh sách ngôn ngữ mã hiển thị tất cả -// @description:vi Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong“khác”Xuống -// @name:zh-TW Github 代碼語言列表顯示全部 -// @description:zh-TW 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在“其他”下 -// @name:zh-HK Github 代碼語言列表顯示全部 -// @description:zh-HK 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在“其他”下 -// @name:fr-CA Github Liste des langages de code afficher tout -// @description:fr-CA Développer Github Liste des langues sur le référentiel,Afficher chaque langue,Au lieu de cacher de petites pièces“autre”Vers le bas -// @match https://github.com/* -// @author Davoleo,人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/png;base64,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 -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @version 1.0.0.0 -// @require https://unpkg.com/js-yaml@4.1.0/dist/js-yaml.min.js -// @resource languageColors https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml -// @grant GM_getResourceText -// @grant GM_log -// @grant GM_xmlhttpRequest -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_addStyle -// @grant GM_registerMenuCommand -// @run-at document-idle -// @connect api.github.com -// @noframes -// @Created 2024-09-24 04:33:03 -// @modified 2024-09-24 04:33:03 -// ==/UserScript== -let TOKEN = GM_getValue('githubToken', "") -GM_addStyle(` - .expand-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000;} - .expand-content{background:white;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 15px rgba(0,0,0,0.2);position:relative;} - .expand-title{margin:0 0 10px 0;font-size:20px;} - .expand-description{margin-bottom:20px;font-size:14px;color:#666;} - .expand-description a{color:#007bff;text-decoration:underline;} - #github-token-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;margin-bottom:20px;font-size:14px;} - #ex-save-token{background-color:#28a745;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;margin-right:10px;} - #ex-cancel-token{background-color:#dc3545;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;} -`) -function createexpand() { - const expandHTML = ` -
    -
    -

    Set GitHub Token

    -

    - Enter your GitHub personal access token with "repo" scope. - - Click here to create a new token - -

    - - - -
    -
    - ` - const expandContainer = document.createElement('div') - expandContainer.innerHTML = expandHTML - document.body.appendChild(expandContainer) - const input = document.getElementById('github-token-input') - input.value = GM_getValue('githubToken', '') - document.getElementById('ex-save-token').addEventListener('click', () => { - const token = input.value.trim() - - GM_setValue('githubToken', token) - expandContainer.remove() - TOKEN = token - - }) - document.getElementById('ex-cancel-token').addEventListener('click', () => expandContainer.remove()) -} -GM_registerMenuCommand('Set GitHub Token', function () { - createexpand() -}) -//Loads languages.yml (from Github's linguist repo) the most updated, official and complete collection of github languages and their colors -//loaded into a JS object via jsyaml (a library to parse yaml inside of javascript) -const languages = jsyaml.load(GM_getResourceText('languageColors')) -//Contains information about languages and their percentages in the repository -let langPercentagesMap = {} -//Contains information about languages and their colors -let langColorsMap = {} -/** - * Function to standardize and modernize GM_xmlhttpRequest to work with promises - * @param {String} url of the endpoint - * @param {Object} options Contains extra information about the request - * @returns a promise with the requested content - */ -function request(url, options = {}) { - return new Promise((resolve, reject) => { - GM_xmlhttpRequest({ - url, - method: options.method || "GET", - headers: options.headers || { - Accept: "application/json", - "Content-Type": "application/json" - }, - responseType: options.responseType || "json", - data: options.body || options.data, - onload: res => resolve(res.response), - onerror: reject - }) - }) -} -/** - * Retrieve information about the languages of a repository via the Github API - * @param {String} user owner of the repository - * @param {String} repo name - * @returns the languages of the repository as a JS Object | null if the promise is rejected for any reason. - */ -async function retrieveLanguages(user, repo) { - try { - return await request(`https://api.github.com/repos/${user}/${repo}/languages`, { - headers: { - Accept: "application/vnd.github.v3+json", - ...(TOKEN ? { authorization: `token ${TOKEN}` } : {}) - } - }) - } - catch (e) { - return null - } -} -/** - * Builds language bar segments assigning the correct colors and width depending on the language and it's frequency in the repository - * @param {string} name of the language - * @param {string} color of the language - * @param {number} percentage of the language in the repository code - * @returns a segment span of the language bar with the correct width and color - */ -function buildBarSegmentSpan(name, color, percentage) { - const segment = document.createElement('span') - segment.style.setProperty('background-color', color, 'important') - segment.style.width = percentage + '%' - //Removes any margin which would make the language bar otherwise inaccurate - segment.style.setProperty('margin', '0', 'important') - //Make sure there's at least 1px of width in the bar segment (fixes width of 0.0% segments) - //TODO: investigate a better way to do this - segment.style.paddingLeft = '1px' - segment.setAttribute("itemprop", "keywords") - segment.setAttribute("aria-label", name + ' ' + percentage) - segment.setAttribute("data-view-component", "true") - segment.setAttribute("class", "Progress-item color-bg-success-inverse lingustexpand") - return segment -} -/** - * Builds a chip for each language containing - * - The Color of the language in the bar - * - The Name of the language - * - The Percentage of the language in repository files - * @param {String} owner of the repository - * @param {String} repo name - * @param {String} name of the language - * @param {String} color of the language - * @param {number} percentage percentage of the language in the repository code - * @returns A chip components featured as legend for the language bar - */ -function buildLanguageChip(owner, repo, name, color, percentage) { - const chip = document.createElement('li') - chip.classList.add('d-inline') - const chipLink = document.createElement('a') - chipLink.classList.add('d-inline-flex', 'flex-items-center', 'flex-nowrap', 'Link--secondary', 'no-underline', 'text-small', 'mr-3') - chipLink.href = `/${owner}/${repo}/search?l=${name}` //Chip link should bring you to the search query with the correct language in place - //Parse SVG BALL directly injecting the correct color as in-line style - const svgText = ` - - ` - const svgTMP = document.createElement('template') - svgTMP.innerHTML = svgText - chipLink.append(svgTMP.content) - //^ uses a template HTMLElement to parse HTML into its respective DOM elements - //Adds language name to the chip - const chipName = document.createElement('span') - chipName.classList.add('color-fg-default', 'text-bold', 'mr-1') - chipName.textContent = name - chipLink.append(chipName) - //Adds Language percentage to the chip - const chipValue = document.createElement('span') - chipValue.textContent = percentage + '%' - chipLink.append(chipValue) - chip.append(chipLink) - return chip -} -/** - * Builds the custom language stats section and returns it - * @returns The full section with complete repository language stats - */ -function buildLanguagesSection(owner, repo) { - const languageSection = document.createElement("div") - languageSection.classList.add("mb-3", "mt-1") - const bar = document.createElement('span') - bar.classList.add("Progress", 'mb-2') - bar.setAttribute("data-view-component", "true") - Object.keys(langColorsMap).forEach((lang, i) => { - const segment = buildBarSegmentSpan(lang, langColorsMap[lang], langPercentagesMap[lang]) - //if (i !== 0) { - // segment.style.setProperty('margin-left', '1px'); - //} - bar.appendChild(segment) - }) - languageSection.append(bar) - const languageUL = document.createElement('ul') - Object.keys(langColorsMap).forEach((lang) => { - const languageChip = buildLanguageChip(owner, repo, lang, langColorsMap[lang], langPercentagesMap[lang]) - languageUL.append(languageChip) - }) - languageSection.append(languageUL) - return languageSection -} -//MAIN ENTRY POINT -function insertCustomLangStats() { - langPercentagesMap = {} - langColorsMap = {} - //Selects the box element that contains files and folders on the repo page - const mainContent = document.querySelector(".Box-sc-g0xbh4-0.iNSVHo") - if (!mainContent) - throw Error("mainContent Hook Selector is dead!") - //The original language bar in the sidebar - const originalLangBar = document.querySelector("div.Layout-sidebar span.Progress") - //array that is generated from the tab URL, it's structured this way: ["", "", ""] - const ownerRepo = window.location.pathname.split('/') - //only works against github.com/ABC/DEF links - if (ownerRepo.length === 3) { - //retrieves necessary information about the repository's languages - retrieveLanguages(ownerRepo[1], ownerRepo[2]).then((lang_vals) => { - //assume request is successful if object is not null and it doesn't contain 'message' in its keys - if (lang_vals !== null && !lang_vals.message) { - //Sum of all language values - const total = Object.values(lang_vals).reduce((prev, curr) => prev + curr) - //for each language in the object - Object.keys(lang_vals).forEach((lang) => { - langColorsMap[lang] = languages[lang].color - langPercentagesMap[lang] = ((lang_vals[lang] / total) * 100).toFixed(1) - }) - } else return //Short Circuit - //Build the new custom lang stats - const languageSection = buildLanguagesSection(ownerRepo[1], ownerRepo[2]) - mainContent.insertAdjacentElement('beforebegin', languageSection) - //^ inserts our custom language stats before the box containing directories and files - //Remove original Language Section (sidebar) - originalLangBar.parentElement.parentElement.remove() - }) - } -} -insertCustomLangStats() -function observeUrlChanges(callback, delay = 2000) { - let lastUrl = location.href - const observer = new MutationObserver(() => { - const url = location.href - if (url !== lastUrl) { - lastUrl = url - setTimeout(() => { - // console.log("页面发生变动,允许执行") - callback() - }, delay) - } - }) - observer.observe(document, { subtree: true, childList: true }) - return observer -} -observeUrlChanges(insertCustomLangStats) \ No newline at end of file diff --git a/Script details/github-linguist-expand/Change history/README.md b/github-linguist-expand/Change history/README.md similarity index 67% rename from Script details/github-linguist-expand/Change history/README.md rename to github-linguist-expand/Change history/README.md index ca27dc262..c96d98c99 100644 --- a/Script details/github-linguist-expand/Change history/README.md +++ b/github-linguist-expand/Change history/README.md @@ -1,5 +1,9 @@ # **🛠️ Github 代码语言列表显示全部 更新日志** +### **📅 2024-10-19 07:36:03- Ver 1.1.0.0** + +**修复**: •同一个仓库切换`选项卡`导致`URL`变化,重复添加的问题
    + ### **📅 2024-09-24 04:33:03- Ver 1.0.0.0** **修复**: •修复元素失效问题
    diff --git a/github-linguist-expand/README.md b/github-linguist-expand/README.md new file mode 100644 index 000000000..e71472c59 --- /dev/null +++ b/github-linguist-expand/README.md @@ -0,0 +1,257 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + + +
    +

    Github 代码语言列表显示全部

    +

    「 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ Github 代码语言列表显示全部 更新日志

    +

    📅 2024-10-19 07:36:03- Ver 1.1.0.0

    +

    修复: •同一个仓库切换选项卡导致URL变化,重复添加的问题

    +

    📅 2024-09-24 04:33:03- Ver 1.0.0.0

    +

    修复: •修复元素失效问题
    +新增: •允许设置 Token 访问自己的私人仓库
    +新增: •允许在跳转其他仓库时,自动添加.

    +
    + +
    + + + +## Github 代码语言列表显示全部脚本 + +该脚本用于扩展 Github 上的代码语言列表,展示每一种语言,而不是将小部分隐藏在“其他”下方。它允许用户查看代码库中所有使用的语言及其对应的百分比,并提供设置 GitHub Token 以访问私有库的功能。 + +### 安装步骤 + +**设置 Github Token**: + +- 如果你需要访问自己的私人仓库,可以输入 GitHub 的个人访问令牌(Personal Access Token)。 +- 如果你没有 Token,请前往 [GitHub Token 生成页面](https://github.com/settings/tokens/new?description=GitHub-Linguist-Expand-UserScript&scopes=repo) 创建一个新的 Token,并确保勾选“repo”权限。 + + **使用方法**: + +- 安装后,进入任意一个 GitHub 仓库页面,脚本会自动在页面上显示所有使用的语言和它们的百分比。 +- 在语言栏中点击任意语言名称,即可查看该语言对应的代码部分。 + +### 脚本功能 + +- **展示所有语言**: + 默认情况下,GitHub 只显示主要的语言,并将小比例的语言归类为“其他”。该脚本会取消这种限制,显示每个使用的语言以及其对应的百分比。 + +- **语言颜色标识**: + 每种语言都有一个对应的颜色标识,脚本通过 GitHub 官方的 [语言颜色表](https://github.com/github/linguist) 来确定语言的颜色,并在页面上显示。 + +- **支持多语言**: + 脚本支持多种语言,包括中文、英文、德文、西班牙文等,界面内容会根据用户的浏览器语言自动切换。 + +### 示例 + +在代码库页面中,你可以看到如下展示: + +- 一个完整的语言条形图,显示各语言的占比。 +- 每种语言的彩色标识,点击语言名称可以直接搜索该语言的代码。 + +### 项目地址 + +- [Github 用户脚本仓库](https://github.com/ChinaGodMan/UserScripts) +- 如果您想报告此脚本的问题或建议新功能,请在[此处](https://github.com/ChinaGodMan/UserScripts/issues)创建新问题 + +### 贡献者 + +- [Davoleo](https://greasyfork.org/zh-CN/users/857225) [Linguist Expand](https://greasyfork.org/scripts/442856) 脚本的初始创建者. + +### 技术细节 + +- **API 使用**: + 该脚本通过 GitHub API 来获取仓库的语言信息,并动态渲染语言条形图和语言标签。 +- **兼容性**: + 该脚本兼容主流浏览器,包括 Chrome、Firefox、Edge、Opera 和 Safari。 + +![1.png](https://s2.loli.net/2024/09/24/NlaYfsZdcW7hTr5.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-linguist-expand/README_en.md b/github-linguist-expand/README_en.md new file mode 100644 index 000000000..a09e9000e --- /dev/null +++ b/github-linguist-expand/README_en.md @@ -0,0 +1,257 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + + +
    +

    Github List of code languages show all

    +

    「 Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ Github List of code languages ​​show all Change log

    +

    📅 2024-10-19 07:36:03- Ver 1.1.0.0

    +

    repair: •Switch to the same warehousetablead toURLchange,Duplicate questions added

    +

    📅 2024-09-24 04:33:03- Ver 1.0.0.0

    +

    repair: •Fix element failure issue
    +New: •Allow setting Token Access your own private repository
    +New: •Allows jumping to other warehouses,Automatically add.

    +
    + +
    + + + +## Github Code language list shows all scripts + +This script is used to extend Github List of code languages ​​on,show every language,Instead of hiding small parts in“other”below。It allows users to view all languages ​​used in the code base and their corresponding percentages,and provide settings GitHub Token to access the functionality of a private library。 + +### Installation steps + +**set up Github Token**: + +- If you need to access your own private repository,Can enter GitHub personal access token(Personal Access Token)。 +- if you don’t have Token,Please go to [GitHub Token Generate page](https://github.com/settings/tokens/new?description=GitHub-Linguist-Expand-UserScript&scopes=repo) create a new Token,and make sure to check“repo”Permissions。 + + **How to use**: + +- After installation,Enter any GitHub Warehouse page,The script automatically displays all used languages ​​and their percentages on the page。 +- Click on any language name in the language bar,You can view the code part corresponding to the language。 + +### Script function + +- **Show all languages**: + By default,GitHub Only show primary languages,and classify a small proportion of languages ​​as“other”。This script will remove this restriction,Shows each language used and its corresponding percentage。 + +- **Language color identification**: + Each language has a corresponding color identifier,Script passed GitHub official [Language color table](https://github.com/github/linguist) to determine the language color,and display on the page。 + +- **Support multiple languages**: + Script supports multiple languages,including chinese、English、German、Spanish etc.,The interface content will automatically switch according to the user’s browser language。 + +### Example + +In the repository page,You can see the following display: + +- A complete language bar chart,Show the proportion of each language。 +- Colorful logos for each language,Click on the language name to directly search for the code of that language。 + +### Project address + +- [Github User script repository](https://github.com/ChinaGodMan/UserScripts) +- If you want to report a problem with this script or suggest new features,please[here](https://github.com/ChinaGodMan/UserScripts/issues)Create new question + +### Contributor + +- [Davoleo](https://greasyfork.org/zh-CN/users/857225) [Linguist Expand](https://greasyfork.org/scripts/442856) Initial creator of the script. + +### technical details + +- **API use**: + The script passes GitHub API To obtain the language information of the warehouse,and dynamically render language bar charts and language labels。 +- **compatibility**: + This script is compatible with mainstream browsers,include Chrome、Firefox、Edge、Opera and Safari。 + +![1.png](https://s2.loli.net/2024/09/24/NlaYfsZdcW7hTr5.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/Script details/github-linguist-expand/github-linguist-expand.user.js b/github-linguist-expand/github-linguist-expand.user.js similarity index 94% rename from Script details/github-linguist-expand/github-linguist-expand.user.js rename to github-linguist-expand/github-linguist-expand.user.js index 1a321eb4e..77f6c0db4 100644 --- a/Script details/github-linguist-expand/github-linguist-expand.user.js +++ b/github-linguist-expand/github-linguist-expand.user.js @@ -1,6 +1,6 @@ // ==UserScript== -// @name Github List of code languages ​​show all -// @description Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in“other”Down +// @name Github List of code languages show all +// @description Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down // @name:zh-CN Github 代码语言列表显示全部 // @description:zh-CN 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 // @name:ar Github قائمة لغات الكود إظهار الكل @@ -15,8 +15,8 @@ // @description:de Expandieren Github Liste der Sprachen im Repository,Jede Sprache anzeigen,Anstatt kleine Teile darin zu verstecken“andere”Runter // @name:el Github Η λίστα των γλωσσών κώδικα εμφανίζει όλα // @description:el Διαστέλλω Github Λίστα γλωσσών στο αποθετήριο,Εμφάνιση κάθε γλώσσας,Αντί να κρύβεις μικρά κομμάτια“άλλος”Κάτω -// @name:en Github List of code languages ​​show all -// @description:en Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in“other”Down +// @name:en Github List of code languages show all +// @description:en Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down // @name:eo Github Listo de kodlingvoj montras ĉion // @description:eo Vastigi Github Listo de lingvoj sur la deponejo,Montru ĉiun lingvon,Anstataŭ kaŝi malgrandajn partojn en“aliaj”Malsupren // @name:es Github Lista de lenguajes de código mostrar todo @@ -76,7 +76,7 @@ // @name:fr-CA Github Liste des langages de code afficher tout // @description:fr-CA Développer Github Liste des langues sur le référentiel,Afficher chaque langue,Au lieu de cacher de petites pièces“autre”Vers le bas // @match https://github.com/* -// @author Davoleo,人民的勤务员 +// @author Davoleo,人民的勤务员 // @namespace https://github.com/ChinaGodMan/UserScripts // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts @@ -87,7 +87,7 @@ // @compatible edge // @compatible opera // @compatible safari -// @version 1.0.0.0 +// @version 1.1.0.0 // @require https://unpkg.com/js-yaml@4.1.0/dist/js-yaml.min.js // @resource languageColors https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml // @grant GM_getResourceText @@ -103,7 +103,7 @@ // @Created 2024-09-24 04:33:03 // @modified 2024-09-24 04:33:03 // ==/UserScript== -let TOKEN = GM_getValue('githubToken', "") +let TOKEN = GM_getValue('githubToken', '') GM_addStyle(` .expand-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000;} .expand-content{background:white;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 15px rgba(0,0,0,0.2);position:relative;} @@ -166,12 +166,12 @@ function request(url, options = {}) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ url, - method: options.method || "GET", + method: options.method || 'GET', headers: options.headers || { - Accept: "application/json", - "Content-Type": "application/json" + Accept: 'application/json', + 'Content-Type': 'application/json' }, - responseType: options.responseType || "json", + responseType: options.responseType || 'json', data: options.body || options.data, onload: res => resolve(res.response), onerror: reject @@ -188,7 +188,7 @@ async function retrieveLanguages(user, repo) { try { return await request(`https://api.github.com/repos/${user}/${repo}/languages`, { headers: { - Accept: "application/vnd.github.v3+json", + Accept: 'application/vnd.github.v3+json', ...(TOKEN ? { authorization: `token ${TOKEN}` } : {}) } }) @@ -213,10 +213,10 @@ function buildBarSegmentSpan(name, color, percentage) { //Make sure there's at least 1px of width in the bar segment (fixes width of 0.0% segments) //TODO: investigate a better way to do this segment.style.paddingLeft = '1px' - segment.setAttribute("itemprop", "keywords") - segment.setAttribute("aria-label", name + ' ' + percentage) - segment.setAttribute("data-view-component", "true") - segment.setAttribute("class", "Progress-item color-bg-success-inverse lingustexpand") + segment.setAttribute('itemprop', 'keywords') + segment.setAttribute('aria-label', name + ' ' + percentage) + segment.setAttribute('data-view-component', 'true') + segment.setAttribute('class', 'Progress-item color-bg-success-inverse lingustexpand') return segment } /** @@ -265,16 +265,17 @@ function buildLanguageChip(owner, repo, name, color, percentage) { * @returns The full section with complete repository language stats */ function buildLanguagesSection(owner, repo) { - const languageSection = document.createElement("div") - languageSection.classList.add("mb-3", "mt-1") + const languageSection = document.createElement('div') + languageSection.classList.add('mb-3', 'mt-1') const bar = document.createElement('span') - bar.classList.add("Progress", 'mb-2') - bar.setAttribute("data-view-component", "true") + bar.classList.add('Progress', 'mb-2') + bar.setAttribute('data-view-component', 'true') Object.keys(langColorsMap).forEach((lang, i) => { const segment = buildBarSegmentSpan(lang, langColorsMap[lang], langPercentagesMap[lang]) //if (i !== 0) { // segment.style.setProperty('margin-left', '1px'); //} + console.log(`当前语言为第${i}个`) bar.appendChild(segment) }) languageSection.append(bar) @@ -288,16 +289,18 @@ function buildLanguagesSection(owner, repo) { } //MAIN ENTRY POINT function insertCustomLangStats() { + if (document.querySelector('.Progress.mb-2')) return langPercentagesMap = {} langColorsMap = {} //Selects the box element that contains files and folders on the repo page - const mainContent = document.querySelector(".Box-sc-g0xbh4-0.iNSVHo") + const mainContent = document.querySelector('.Box-sc-g0xbh4-0.iNSVHo') if (!mainContent) - throw Error("mainContent Hook Selector is dead!") + throw Error('mainContent Hook Selector is dead!') //The original language bar in the sidebar - const originalLangBar = document.querySelector("div.Layout-sidebar span.Progress") + const originalLangBar = document.querySelector('div.Layout-sidebar span.Progress') //array that is generated from the tab URL, it's structured this way: ["", "", ""] const ownerRepo = window.location.pathname.split('/') + //only works against github.com/ABC/DEF links if (ownerRepo.length === 3) { //retrieves necessary information about the repository's languages diff --git a/Script details/github-linguist-expand/preview/1.png b/github-linguist-expand/preview/1.png similarity index 100% rename from Script details/github-linguist-expand/preview/1.png rename to github-linguist-expand/preview/1.png diff --git a/Script details/github-raw-file-plus/Change history/README.md b/github-raw-file-plus/Change history/README.md similarity index 99% rename from Script details/github-raw-file-plus/Change history/README.md rename to github-raw-file-plus/Change history/README.md index a4a19bfd6..0054b1805 100644 --- a/Script details/github-raw-file-plus/Change history/README.md +++ b/github-raw-file-plus/Change history/README.md @@ -1,6 +1,7 @@ # **🛠️ GitHub下载单文件和复制文件URL 更新日志** ### **📅 2024/8/28 05:09 - Ver 2.2** + **新增**: 增加下载功能。 --- diff --git a/github-raw-file-plus/README.md b/github-raw-file-plus/README.md new file mode 100644 index 000000000..e0900959b --- /dev/null +++ b/github-raw-file-plus/README.md @@ -0,0 +1,245 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    Github 复制原始文件 URL 与下载文件

    +

    「 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ GitHub下载单文件和复制文件URL 更新日志

    +

    📅 2024/8/28 05:09 - Ver 2.2

    +

    新增: 增加下载功能。

    +
    + +
    + + + + + +# Github 复制原始文件 URL 与下载文件 + + + +## 描述 + +此用户脚本在 GitHub 文件行末尾添加按钮,以便用户复制原始文件 URL 和下载文件。按钮包括“复制原始文件 URL”按钮和“下载文件”按钮。 + + + +## 功能 + +- 在每个文件行末尾添加“复制原始文件 URL”按钮。 +- 添加“下载文件”按钮,允许用户下载原始文件。 +- 复制按钮将原始文件 URL 复制到剪贴板。 +- 下载按钮触发文件下载。 + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +## 兼容性 + +- 适用于 GitHub 网站。 + + + +## 许可证 + +MIT 许可证 + + + +## 支持 + +如有问题,请访问 [支持页面](https://github.com/ChinaGodMan/UserScripts/issues)。 + + + +## 感谢 + +脚本修改自用户 **[Kamikaze](https://greasyfork.org/zh-CN/users/928242)** 的脚本 [Button to copy the raw file URL | Github](https://greasyfork.org/scripts/453489) 感谢原作者 **Kamikaze** 的**勤劳**与**智慧** + +![Snipaste_2024-08-28_05-14-50.png](https://s2.loli.net/2024/08/28/QolM627BS8Avd9b.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-raw-file-plus/README_en.md b/github-raw-file-plus/README_en.md new file mode 100644 index 000000000..2e480410c --- /dev/null +++ b/github-raw-file-plus/README_en.md @@ -0,0 +1,252 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    Github Copy original file URL with download files

    +

    「 Add button at the end of each file line,to copy the original file URL and download files 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ GitHubDownload single files and copy filesURL Change log

    +

    📅 2024/8/28 05:09 - Ver 2.2

    +

    New: Add download function。

    +
    + +
    + + + + + +# Github Copy Raw File URL and Download File + + + +## Description + +This userscript adds buttons at the end of each file line on GitHub to allow users to copy the raw file URL and download the file. The buttons include "Copy Raw File URL" and "Download File". + + + +## Features + +- Adds a "Copy Raw File URL" button at the end of each file line. +- Adds a "Download File" button that triggers the download of the raw file. +- The copy button copies the raw file URL to the clipboard. +- The download button initiates the file download. + + + +## Installation Steps + +1. Install the Tampermonkey extension. +2. Create a new script and paste the script code. +3. Save and enable the script. + + + +## Compatibility + +- Works on GitHub website. + + + +## License + +MIT License + + + +## Support + +For issues, visit the [support page](https://github.com/ChinaGodMan/UserScripts/issues). + + + +## grateful + +The script is modified from user **[Kamikaze](https://greasyfork.org/zh-CN/users/928242)**’s script [Button to copy the raw file URL | Github](https://greasyfork.org/scripts/453489) Thanks to the original The **hard work** and **wisdom** of the author **Kamikaze** + +![Snipaste_2024-08-28_05-14-50.png](https://s2.loli.net/2024/08/28/QolM627BS8Avd9b.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/github-raw-file-plus.user.js b/github-raw-file-plus/github-raw-file-plus.user.js similarity index 96% rename from github-raw-file-plus.user.js rename to github-raw-file-plus/github-raw-file-plus.user.js index cd5ef54bf..e02306be3 100644 --- a/github-raw-file-plus.user.js +++ b/github-raw-file-plus/github-raw-file-plus.user.js @@ -9,7 +9,7 @@ // @name:cs Github Zkopírujte původní soubor URL se staženými soubory // @description:cs Tlačítko Přidat na konci každého řádku souboru,pro zkopírování původního souboru URL a stahovat soubory // @name:da Github Kopiér den originale fil URL med download filer -// @description:da Tilføj knap i slutningen af ​​hver fillinje,for at kopiere den originale fil URL og download filer +// @description:da Tilføj knap i slutningen af hver fillinje,for at kopiere den originale fil URL og download filer // @name:de Github Originaldatei kopieren URL mit Download-Dateien // @description:de Schaltfläche „Hinzufügen“ am Ende jeder Dateizeile,um die Originaldatei zu kopieren URL und Dateien herunterladen // @name:el Github Αντιγραφή αρχικού αρχείου URL με λήψη αρχείων @@ -77,7 +77,7 @@ // @description Add buttons at the end of each file line to copy the raw file URL and download the file // @namespace https://github.com/ChinaGodMan/UserScripts // @version 2.2.0.22 -// @author Kamikaze (https://github.com/Kamiikaze) ,人民的勤务员 +// @author Kamikaze (https://github.com/Kamiikaze) ,人民的勤务员 // @match https://github.com/* // @icon data:image/png;base64,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 // @iconbak https://github.githubassets.com/pinned-octocat.svg @@ -94,7 +94,7 @@ const scanInterval = 2 const waitForFilelist = setInterval(() => { - let fileListContainer = document.querySelector("div.Box > div.js-details-container.Details div") || document.querySelector("table") + let fileListContainer = document.querySelector('div.Box > div.js-details-container.Details div') || document.querySelector('table') let fileList = [] let isTable = false @@ -112,18 +112,18 @@ const waitForFilelist = setInterval(() => { }, scanInterval * 1000) function appendButtons(fileList, isTable = false) { - let fileUrl = "" - let rawFileUrl = "" + let fileUrl = '' + let rawFileUrl = '' for (let i = 0; i < fileList.length; i++) { let file = fileList[i] - if (file.classList.contains("cp-btn-rdy")) continue + if (file.classList.contains('cp-btn-rdy')) continue - file.classList.add("cp-btn-rdy") + file.classList.add('cp-btn-rdy') if (!isTable) { if ( - file.classList.contains("sr-only") || + file.classList.contains('sr-only') || file.childElementCount !== 4 ) continue @@ -133,20 +133,20 @@ function appendButtons(fileList, isTable = false) { if (i === 0) continue if ( - file.classList.contains("sr-only") + file.classList.contains('sr-only') ) continue - fileUrl = file.querySelector("a") + fileUrl = file.querySelector('a') .href - file = file.querySelector("td:nth-child(4) > div") + file = file.querySelector('td:nth-child(4) > div') } //alert(fileUrl) // Dont add button if its a folder - if (!fileUrl.includes("/blob/")) continue + if (!fileUrl.includes('/blob/')) continue rawFileUrl = fileUrl.replace('/blob/', '/raw/') - file.style = "display: flex; justify-content: flex-end;" + file.style = 'display: flex; justify-content: flex-end;' file.append(creatyCopyButton(rawFileUrl)) file.append(creatyDownButton(rawFileUrl)) } @@ -162,10 +162,10 @@ function creatyCopyButton(copyText) { const copyButton = document.createElement('div') copyButton.setAttribute('role', 'gridcell') - copyButton.style = "margin-left: 10px; display: inline;" + copyButton.style = 'margin-left: 10px; display: inline;' copyButton.innerHTML = copy2clipboard copyButton.children[0].value = copyText - copyButton.children[0].style = "cursor: pointer;" + copyButton.children[0].style = 'cursor: pointer;' return copyButton } @@ -180,10 +180,10 @@ function creatyDownButton(copyText) { const copyButton = document.createElement('div') copyButton.setAttribute('role', 'gridcell') - copyButton.style = "margin-left: 10px; display: inline;" + copyButton.style = 'margin-left: 10px; display: inline;' copyButton.innerHTML = copy2clipboard copyButton.children[0].value = copyText - copyButton.children[0].style = "cursor: pointer;" + copyButton.children[0].style = 'cursor: pointer;' copyButton.addEventListener('click', () => { // window.location.href = copyText; downloadFile(copyText, getFilenameFromUrl(copyText)) diff --git a/Script details/github-raw-file-plus/preview/Snipaste_2024-08-28_05-14-50.png b/github-raw-file-plus/preview/Snipaste_2024-08-28_05-14-50.png similarity index 100% rename from Script details/github-raw-file-plus/preview/Snipaste_2024-08-28_05-14-50.png rename to github-raw-file-plus/preview/Snipaste_2024-08-28_05-14-50.png diff --git a/github-repo-size-view.user.js b/github-repo-size-view.user.js deleted file mode 100644 index 75fc33a37..000000000 --- a/github-repo-size-view.user.js +++ /dev/null @@ -1,1078 +0,0 @@ -// ==UserScript== -// @name 🤠 Github enhanced assistant warehouse display size -// @description 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 -// @name:zh-CN 🤠 Github 增强小助手 仓库显示大小 -// @description:zh-CN 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 -// @name:ar 🤠 حجم عرض المستودع المساعد المُحسّن على Github -// @description:ar 🤠 حجم عرض المستودع: في بحث الكود وبحث المستودع وصفحة الإصدار وقائمة مستودعات المستخدم وصفحة المستودع في GitHub، سيتم عرض حجم المستودع بجوار اسم المستودع، مما يسمح للمستخدمين بفهم حجم المستودع بسرعة وتحسين قدراتهم اختيار. تحذير التطوير غير النشط: إذا لم يتم تحديث المستودع خلال الأشهر الستة الماضية، فسيضيف النظام مطالبة في أعلى المستودع لتذكير المستخدمين بأن المستودع غير نشط ويعرض وقت آخر تحديث. وهذا يساعد المستخدمين على تحديد النشاط وحالة الصيانة للمستودع. القفز السريع داخل المستودع: عند تصفح المستودع، يمكن للمستخدم بسهولة عرض قائمة جميع المستودعات الخاصة بالمستخدم، مما يوفر مدخلاً للانتقال السريع إلى المستودعات المختلفة. يمكن للمستخدمين العثور بسرعة على المشاريع الأخرى ذات الأهمية والوصول إليها، مما يحسن كفاءة العمل. سيناريوهات الاستخدام: المطورون: من خلال عرض حجم المستودع والتحذيرات النشطة، يمكنك تصفية المكتبات المناسبة للتطوير بسرعة وتجنب استخدام المشاريع التي لم تعد تتم صيانتها. مدير المشروع: من خلال وظيفة القفز السريع، من السهل إدارة وتنسيق مشاريع متعددة وتحسين كفاءة العمل. المتعلمون: عند تعلم تقنيات جديدة، يمكنهم بسهولة العثور على المشاريع مفتوحة المصدر ذات الصلة والتحقق بسرعة من نشاط المشاريع وحجمها. 🤠 -// @name:bg 🤠 Github подобрен размер на дисплея на складов асистент -// @description:bg 🤠 Размер на дисплея на склада: В търсенето на код на GitHub, търсенето в склада, страницата с проблеми, списъкът на потребителския склад и страницата с хранилището, размерът на склада ще се показва до името на склада, което позволява на потребителите бързо да разберат мащаба на склада и да оптимизират своя селекция. Предупреждение за неактивна разработка: Ако дадено хранилище не е актуализирано през последните шест месеца, системата ще добави подкана в горната част на хранилището, за да напомни на потребителите, че хранилището е неактивно и да покаже часа на последната актуализация. Това помага на потребителите да определят активността и статуса на поддръжка на склада. Бързо прескачане в склада: Когато преглеждате склада, потребителят може лесно да прегледа списъка с всички складове на потребителя, осигурявайки вход за бързо прескачане до различни складове. Потребителите могат бързо да намерят и получат достъп до други интересни проекти, подобрявайки ефективността на работата. Сценарии на използване: Разработчици: Чрез показване на размера на склада и активните предупреждения можете бързо да филтрирате подходящи библиотеки за разработка и да избегнете използването на проекти, които вече не се поддържат. Мениджър на проекти: Чрез функцията за бързо прескачане е лесно да се управляват и координират множество проекти и да се подобри ефективността на работата. Обучаеми: Когато изучават нови технологии, те могат по-лесно да намерят подходящи проекти с отворен код и бързо да проверят активността и мащаба на проектите. 🤠 -// @name:cs 🤠 Velikost displeje vylepšeného asistenta ve skladu Github -// @description:cs 🤠 Velikost zobrazení skladu: Na GitHubu pro vyhledávání kódu, hledání skladu, stránku výdeje, seznam skladů uživatelů a stránku úložiště se velikost skladu zobrazí vedle názvu skladu, což uživatelům umožňuje rychle pochopit rozsah skladu a optimalizovat výběr. Upozornění na neaktivní vývoj: Pokud úložiště nebylo aktualizováno v posledních šesti měsících, systém přidá výzvu v horní části úložiště, která uživatelům připomene, že úložiště je neaktivní, a zobrazí čas poslední aktualizace. To pomáhá uživatelům určit aktivitu a stav údržby skladu. Rychlý skok ve skladu: Při procházení skladu může uživatel snadno zobrazit seznam všech skladů uživatele, což poskytuje vstup pro rychlý skok do různých skladů. Uživatelé mohou rychle najít další zajímavé projekty a získat k nim přístup, což zvyšuje efektivitu práce. Scénáře použití: Vývojáři: Zobrazením velikosti skladu a aktivních varování můžete rychle odfiltrovat vhodné knihovny pro vývoj a vyhnout se používání projektů, které již nejsou udržovány. Project Manager: Díky funkci rychlého skoku je snadné spravovat a koordinovat více projektů a zlepšit efektivitu práce. Studenti: Když se učí nové technologie, mohou snadněji najít relevantní open source projekty a rychle zkontrolovat aktivitu a rozsah projektů. 🤠 -// @name:da 🤠 Github forbedret assistentlagerdisplaystørrelse -// @description:da 🤠 Lagervisningsstørrelse: På GitHubs kodesøgning, lagersøgning, problemside, brugerlagerliste og lagerside vil størrelsen af ​​lageret blive vist ved siden af ​​lagernavnet, hvilket giver brugerne mulighed for hurtigt at forstå lagerets skala og optimere deres lager. udvælgelse. Advarsel om inaktiv udvikling: Hvis et lager ikke er blevet opdateret inden for de seneste seks måneder, vil systemet tilføje en prompt øverst i lageret for at minde brugerne om, at lageret er inaktivt og vise tidspunktet for den sidste opdatering. Dette hjælper brugerne med at bestemme aktiviteten og vedligeholdelsesstatus for lageret. Hurtigt hop inden for lageret: Når brugeren gennemser lageret, kan brugeren nemt se listen over alle varehuse for brugeren, hvilket giver en adgang til hurtigt at hoppe til forskellige varehuse. Brugere kan hurtigt finde og få adgang til andre projekter af interesse, hvilket forbedrer arbejdseffektiviteten. Brugsscenarier: Udviklere: Ved at vise lagerstørrelsen og aktive advarsler kan du hurtigt filtrere egnede biblioteker fra til udvikling og undgå at bruge projekter, der ikke længere vedligeholdes. Projektleder: Gennem quick jump-funktionen er det nemt at administrere og koordinere flere projekter og forbedre arbejdseffektiviteten. Elever: Når de lærer nye teknologier, kan de nemmere finde relevante open source-projekter og hurtigt tjekke projekternes aktivitet og omfang. 🤠 -// @name:de 🤠 Github hat die Anzeigegröße des Assistentenlagers verbessert -// @description:de 🤠 Lageranzeigegröße: Auf GitHubs Codesuche, Lagersuche, Problemseite, Benutzerlagerliste und Repository-Seite wird die Größe des Lagers neben dem Lagernamen angezeigt, sodass Benutzer die Größe des Lagers schnell verstehen und optimieren können Auswahl. Warnung bei inaktiver Entwicklung: Wenn ein Repository in den letzten sechs Monaten nicht aktualisiert wurde, fügt das System oben im Repository eine Eingabeaufforderung hinzu, um Benutzer daran zu erinnern, dass das Repository inaktiv ist, und zeigt den Zeitpunkt der letzten Aktualisierung an. Dadurch können Benutzer den Aktivitäts- und Wartungsstatus des Lagers ermitteln. Schneller Sprung innerhalb des Lagers: Beim Durchsuchen des Lagers kann der Benutzer problemlos die Liste aller Lager des Benutzers anzeigen und so schnell zu verschiedenen Lagern springen. Benutzer können andere interessante Projekte schnell finden und darauf zugreifen und so die Arbeitseffizienz verbessern. Nutzungsszenarien: Entwickler: Durch die Anzeige der Warehouse-Größe und aktiver Warnungen können Sie schnell geeignete Bibliotheken für die Entwicklung herausfiltern und die Verwendung nicht mehr gepflegter Projekte vermeiden. Projektmanager: Durch die Schnellsprungfunktion ist es einfach, mehrere Projekte zu verwalten und zu koordinieren und die Arbeitseffizienz zu verbessern. Lernende: Beim Erlernen neuer Technologien können sie relevante Open-Source-Projekte leichter finden und die Aktivität und den Umfang der Projekte schneller überprüfen. 🤠 -// @name:el 🤠 Βελτιωμένο μέγεθος οθόνης αποθήκης βοηθού Github -// @description:el 🤠 Μέγεθος εμφάνισης αποθήκης: Στην αναζήτηση κώδικα, την αναζήτηση αποθήκης, τη σελίδα έκδοσης, τη λίστα αποθήκης χρηστών και τη σελίδα αποθήκης του GitHub, το μέγεθος της αποθήκης θα εμφανίζεται δίπλα στο όνομα της αποθήκης, επιτρέποντας στους χρήστες να κατανοήσουν γρήγορα την κλίμακα της αποθήκης και να βελτιστοποιήσουν επιλογή. Προειδοποίηση ανενεργής ανάπτυξης: Εάν ένα αποθετήριο δεν έχει ενημερωθεί τους τελευταίους έξι μήνες, το σύστημα θα προσθέσει ένα μήνυμα στο επάνω μέρος του χώρου αποθήκευσης για να υπενθυμίσει στους χρήστες ότι το αποθετήριο είναι ανενεργό και θα εμφανίσει την ώρα της τελευταίας ενημέρωσης. Αυτό βοηθά τους χρήστες να προσδιορίσουν τη δραστηριότητα και την κατάσταση συντήρησης της αποθήκης. Γρήγορο άλμα εντός της αποθήκης: Κατά την περιήγηση στην αποθήκη, ο χρήστης μπορεί εύκολα να δει τη λίστα με όλες τις αποθήκες του χρήστη, παρέχοντας μια είσοδο για γρήγορη μετάβαση σε διαφορετικές αποθήκες. Οι χρήστες μπορούν να βρίσκουν γρήγορα και να έχουν πρόσβαση σε άλλα έργα ενδιαφέροντος, βελτιώνοντας την αποδοτικότητα της εργασίας. Σενάρια χρήσης: Προγραμματιστές: Εμφανίζοντας το μέγεθος της αποθήκης και τις ενεργές προειδοποιήσεις, μπορείτε να φιλτράρετε γρήγορα κατάλληλες βιβλιοθήκες για ανάπτυξη και να αποφύγετε τη χρήση έργων που δεν διατηρούνται πλέον. Project Manager: Μέσω της λειτουργίας γρήγορου άλματος, είναι εύκολο να διαχειριστείτε και να συντονίσετε πολλαπλά έργα και να βελτιώσετε την αποδοτικότητα της εργασίας. Εκπαιδευόμενοι: Όταν μαθαίνουν νέες τεχνολογίες, μπορούν πιο εύκολα να βρουν σχετικά έργα ανοιχτού κώδικα και να ελέγξουν γρήγορα τη δραστηριότητα και την κλίμακα των έργων. 🤠 -// @name:en 🤠 Github enhanced assistant warehouse display size -// @description:en 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 -// @name:eo 🤠 Github plibonigita asistanta magazena ekrangrandeco -// @description:eo 🤠 Grando de montrado de magazeno: En la serĉo de kodo de GitHub, serĉo de magazeno, temo-paĝo, uzanta stokisto kaj deponejo, la grandeco de la stokejo estos montrata apud la stoknomo, permesante al uzantoj rapide kompreni la skalon de la stokejo kaj optimumigi sian. elekto. Neaktiva evoluaverto: Se deponejo ne estis ĝisdatigita en la pasintaj ses monatoj, la sistemo aldonos avertiĝon ĉe la supro de la deponejo por memorigi uzantojn ke la deponejo estas neaktiva kaj montri la tempon de la lasta ĝisdatigo. Ĉi tio helpas uzantojn determini la aktivecon kaj bontenadon de la stokejo. Rapida salto ene de la magazeno: Foliumante la magazenon, la uzanto povas facile vidi la liston de ĉiuj magazenoj de la uzanto, disponigante enirejon por rapide salti al malsamaj magazenoj. Uzantoj povas rapide trovi kaj aliri aliajn interesajn projektojn, plibonigante laborefikecon. Uzaj scenaroj: Programistoj: Montrante la magazengrandecon kaj aktivajn avertojn, vi povas rapide filtri taŭgajn bibliotekojn por disvolviĝo kaj eviti uzi projektojn kiuj ne plu estas konservitaj. Projektestro: Per la funkcio de rapida salto, estas facile administri kaj kunordigi plurajn projektojn kaj plibonigi laborefikecon. Lernantoj: Kiam ili lernas novajn teknologiojn, ili povas pli facile trovi koncernajn malfermfontajn projektojn kaj rapide kontroli la agadon kaj skalon de la projektoj. 🤠 -// @name:es 🤠 Tamaño de visualización del almacén del asistente mejorado de Github -// @description:es 🤠 Tamaño de visualización del almacén: en la búsqueda de código, búsqueda de almacén, página de problemas, lista de almacén de usuarios y página de repositorio de GitHub, el tamaño del almacén se mostrará junto al nombre del almacén, lo que permitirá a los usuarios comprender rápidamente la escala del almacén y optimizar su selección. Advertencia de desarrollo inactivo: si un repositorio no se ha actualizado en los últimos seis meses, el sistema agregará un mensaje en la parte superior del repositorio para recordar a los usuarios que el repositorio está inactivo y mostrará la hora de la última actualización. Esto ayuda a los usuarios a determinar la actividad y el estado de mantenimiento del almacén. Salto rápido dentro del almacén: al navegar por el almacén, el usuario puede ver fácilmente la lista de todos los almacenes del usuario, lo que proporciona una entrada para saltar rápidamente a diferentes almacenes. Los usuarios pueden encontrar y acceder rápidamente a otros proyectos de interés, mejorando la eficiencia del trabajo. Escenarios de uso: Desarrolladores: al mostrar el tamaño del almacén y las advertencias activas, puede filtrar rápidamente las bibliotecas adecuadas para el desarrollo y evitar el uso de proyectos que ya no se mantienen. Gerente de proyectos: a través de la función de salto rápido, es fácil administrar y coordinar múltiples proyectos y mejorar la eficiencia del trabajo. Estudiantes: cuando aprenden nuevas tecnologías, pueden encontrar más fácilmente proyectos relevantes de código abierto y verificar rápidamente la actividad y escala de los proyectos. 🤠 -// @name:fi 🤠 Githubin parannettu avustajavaraston näytön koko -// @description:fi 🤠 Varaston näyttökoko: GitHubin koodihaussa, varastohaussa, ongelmasivulla, käyttäjän varastoluettelossa ja arkistosivulla varaston koko näkyy varaston nimen vieressä, jolloin käyttäjät voivat nopeasti ymmärtää varaston mittakaavan ja optimoida toimintansa. valinta. Ei-aktiivinen kehitysvaroitus: Jos tietovarastoa ei ole päivitetty viimeisen kuuden kuukauden aikana, järjestelmä lisää arkiston yläosaan kehotteen, joka muistuttaa käyttäjiä siitä, että tietovarasto ei ole aktiivinen, ja näyttää viimeisimmän päivityksen ajan. Tämä auttaa käyttäjiä määrittämään varaston toiminnan ja ylläpidon tilan. Nopea hyppy varaston sisällä: Selatessaan varastoa käyttäjä voi helposti tarkastella luetteloa käyttäjän kaikista varastoista, mikä tarjoaa sisäänkäynnin hyppäämään nopeasti eri varastoihin. Käyttäjät voivat nopeasti löytää ja käyttää muita kiinnostavia projekteja, mikä parantaa työn tehokkuutta. Käyttöskenaariot: Kehittäjät: Näyttämällä varaston koon ja aktiiviset varoitukset, voit nopeasti suodattaa sopivat kirjastot kehitystä varten ja välttää käyttämättä projekteja, joita ei enää ylläpidetä. Projektipäällikkö: Quick jump -toiminnon avulla on helppo hallita ja koordinoida useita projekteja ja parantaa työn tehokkuutta. Oppijat: Uusia teknologioita oppiessaan he voivat löytää helpommin relevantteja avoimen lähdekoodin projekteja ja tarkistaa nopeasti projektien toiminnan ja laajuuden. 🤠 -// @name:fr 🤠 Taille d’affichage de l’entrepôt de l’assistant amélioré Github -// @description:fr 🤠 Taille d’affichage de l’entrepôt : sur la recherche de code, la recherche d’entrepôt, la page de problèmes, la liste d’entrepôts d’utilisateurs et la page de référentiel de GitHub, la taille de l’entrepôt sera affichée à côté du nom de l’entrepôt, permettant aux utilisateurs de comprendre rapidement l’échelle de l’entrepôt et d’optimiser leur sélection. Avertissement de développement inactif : si un référentiel n’a pas été mis à jour au cours des six derniers mois, le système ajoutera une invite en haut du référentiel pour rappeler aux utilisateurs que le référentiel est inactif et affichera l’heure de la dernière mise à jour. Cela aide les utilisateurs à déterminer l’activité et l’état de maintenance de l’entrepôt. Saut rapide dans l’entrepôt : lors de la navigation dans l’entrepôt, l’utilisateur peut facilement consulter la liste de tous les entrepôts de l’utilisateur, offrant ainsi une entrée pour accéder rapidement à différents entrepôts. Les utilisateurs peuvent trouver et accéder rapidement à d’autres projets d’intérêt, améliorant ainsi l’efficacité du travail. Scénarios d’utilisation : Développeurs : en affichant la taille de l’entrepôt et les avertissements actifs, vous pouvez rapidement filtrer les bibliothèques appropriées pour le développement et éviter d’utiliser des projets qui ne sont plus maintenus. Gestionnaire de projet : grâce à la fonction de saut rapide, il est facile de gérer et de coordonner plusieurs projets et d’améliorer l’efficacité du travail. Apprenants : lorsqu’ils apprennent de nouvelles technologies, ils peuvent plus facilement trouver des projets open source pertinents et vérifier rapidement l’activité et l’ampleur des projets. 🤠 -// @name:he 🤠 גודל תצוגה של עוזר מחסן Github משופר -// @description:he 🤠 גודל תצוגת המחסן: בחיפוש הקוד של GitHub, חיפוש המחסן, דף הנושא, רשימת מחסני המשתמשים ודף המאגר, גודל המחסן יוצג לצד שם המחסן, מה שיאפשר למשתמשים להבין במהירות את קנה המידה של המחסן ולבצע אופטימיזציה שלהם בְּחִירָה. אזהרת פיתוח לא פעיל: אם מאגר לא עודכן בששת החודשים האחרונים, המערכת תוסיף הנחיה בחלק העליון של המאגר כדי להזכיר למשתמשים שהמאגר אינו פעיל ולהציג את שעת העדכון האחרון. זה עוזר למשתמשים לקבוע את מצב הפעילות והתחזוקה של המחסן. קפיצה מהירה בתוך המחסן: בעת גלישה במחסן, המשתמש יכול לראות בקלות את רשימת כל המחסנים של המשתמש, מה שמספק כניסה לקפיצה מהירה למחסנים שונים. משתמשים יכולים למצוא ולגשת במהירות לפרויקטים אחרים בעלי עניין, ולשפר את יעילות העבודה. תרחישי שימוש: מפתחים: על ידי הצגת גודל המחסן ואזהרות פעילות, ניתן לסנן במהירות ספריות מתאימות לפיתוח ולהימנע משימוש בפרויקטים שאינם מתוחזקים עוד. מנהל פרויקטים: באמצעות פונקציית הקפיצה המהירה, קל לנהל ולתאם מספר פרויקטים ולשפר את יעילות העבודה. לומדים: כאשר לומדים טכנולוגיות חדשות, הם יכולים למצוא בקלות רבה יותר פרויקטים רלוונטיים בקוד פתוח ולבדוק במהירות את הפעילות וההיקף של הפרויקטים. 🤠 -// @name:hr 🤠 Github poboljšana veličina prikaza pomoćnog skladišta -// @description:hr 🤠 Veličina prikaza skladišta: Na GitHub-ovom pretraživanju koda, pretraživanju skladišta, stranici problema, korisničkom popisu skladišta i stranici spremišta, veličina skladišta bit će prikazana pored naziva skladišta, omogućujući korisnicima da brzo razumiju veličinu skladišta i optimiziraju svoje izbor. Upozorenje o neaktivnom razvoju: Ako repozitorij nije ažuriran u proteklih šest mjeseci, sustav će dodati upit na vrh repozitorija da podsjeti korisnike da je repozitorij neaktivan i prikazati vrijeme zadnjeg ažuriranja. Ovo pomaže korisnicima u određivanju aktivnosti i statusa održavanja skladišta. Brzi skok unutar skladišta: Prilikom pregledavanja skladišta, korisnik može jednostavno vidjeti popis svih skladišta korisnika, omogućavajući ulaz za brzo skakanje na različita skladišta. Korisnici mogu brzo pronaći i pristupiti drugim projektima od interesa, poboljšavajući radnu učinkovitost. Scenariji korištenja: Razvojni programeri: prikazivanjem veličine skladišta i aktivnih upozorenja, možete brzo filtrirati prikladne biblioteke za razvoj i izbjeći korištenje projekata koji se više ne održavaju. Voditelj projekta: Pomoću funkcije brzog skoka lako je upravljati i koordinirati više projekata i poboljšati radnu učinkovitost. Učenici: Kada uče nove tehnologije, mogu lakše pronaći relevantne projekte otvorenog koda i brzo provjeriti aktivnost i opseg projekata. 🤠 -// @name:hu 🤠 Github továbbfejlesztett asszisztens raktári kijelző mérete -// @description:hu 🤠 Raktár megjelenítési mérete: A GitHub kódkeresőjén, raktárkeresőjén, kiadási oldalán, felhasználói raktárlistáján és lerakatoldalán a raktár mérete megjelenik a raktár neve mellett, lehetővé téve a felhasználók számára, hogy gyorsan megértsék a raktár méretét és optimalizálhassák a raktárukat. kiválasztás. Inaktív fejlesztési figyelmeztetés: Ha egy lerakat az elmúlt hat hónapban nem frissítették, a rendszer a lerakat tetejére figyelmezteti a felhasználókat, hogy a lerakat inaktív, és megjelenítse az utolsó frissítés időpontját. Ez segít a felhasználóknak meghatározni a raktár tevékenységi és karbantartási állapotát. Gyors ugrás a raktáron belül: A raktár böngészése során a felhasználó könnyedén megtekintheti a felhasználó összes raktárának listáját, amely bejáratot biztosít a különböző raktárak gyors ugrásához. A felhasználók gyorsan megtalálhatják és hozzáférhetnek más érdekes projektekhez, javítva ezzel a munka hatékonyságát. Használati forgatókönyvek: Fejlesztők: A raktár méretének és az aktív figyelmeztetéseknek a megjelenítésével gyorsan kiszűrheti a fejlesztésre alkalmas könyvtárakat, és elkerülheti a már nem karbantartott projektek használatát. Projektmenedzser: A gyorsugrás funkciónak köszönhetően könnyen kezelhető és koordinálható több projekt, valamint javítható a munka hatékonysága. Tanulók: Amikor új technológiákat tanulnak, könnyebben megtalálhatják a releváns nyílt forráskódú projekteket, és gyorsan ellenőrizhetik a projektek tevékenységét és mértékét. 🤠 -// @name:id 🤠 Github meningkatkan ukuran tampilan asisten gudang -// @description:id 🤠 Ukuran tampilan gudang: Pada pencarian kode GitHub, pencarian gudang, halaman penerbitan, daftar gudang pengguna, dan halaman repositori, ukuran gudang akan ditampilkan di sebelah nama gudang, memungkinkan pengguna dengan cepat memahami skala gudang dan mengoptimalkannya pilihan. Peringatan pengembangan tidak aktif: Jika repositori belum diperbarui dalam enam bulan terakhir, sistem akan menambahkan perintah di bagian atas repositori untuk mengingatkan pengguna bahwa repositori tidak aktif dan menampilkan waktu pembaruan terakhir. Ini membantu pengguna menentukan aktivitas dan status pemeliharaan gudang. Lompatan cepat ke dalam gudang: Saat menelusuri gudang, pengguna dapat dengan mudah melihat daftar semua gudang pengguna, menyediakan pintu masuk untuk melompat ke gudang yang berbeda dengan cepat. Pengguna dapat dengan cepat menemukan dan mengakses proyek lain yang menarik, sehingga meningkatkan efisiensi kerja. Skenario penggunaan: Pengembang: Dengan menampilkan ukuran gudang dan peringatan aktif, Anda dapat dengan cepat menyaring perpustakaan yang sesuai untuk pengembangan dan menghindari penggunaan proyek yang tidak lagi dikelola. Manajer Proyek: Melalui fungsi lompat cepat, mudah untuk mengelola dan mengoordinasikan banyak proyek serta meningkatkan efisiensi kerja. Pelajar: Saat mempelajari teknologi baru, mereka dapat lebih mudah menemukan proyek sumber terbuka yang relevan dan dengan cepat memeriksa aktivitas dan skala proyek. 🤠 -// @name:it 🤠 Github ha migliorato le dimensioni di visualizzazione del magazzino dell’assistente -// @description:it 🤠 Dimensioni di visualizzazione del magazzino: nella ricerca del codice di GitHub, nella ricerca del magazzino, nella pagina dei problemi, nell’elenco dei magazzini degli utenti e nella pagina del repository, la dimensione del magazzino verrà visualizzata accanto al nome del magazzino, consentendo agli utenti di comprendere rapidamente le dimensioni del magazzino e ottimizzare la propria selezione. Avviso di sviluppo inattivo: se un repository non è stato aggiornato negli ultimi sei mesi, il sistema aggiungerà un messaggio nella parte superiore del repository per ricordare agli utenti che il repository è inattivo e visualizzerà l’ora dell’ultimo aggiornamento. Ciò aiuta gli utenti a determinare lo stato di attività e di manutenzione del magazzino. Salto rapido all’interno del magazzino: Durante la navigazione nel magazzino, l’utente può facilmente visualizzare l’elenco di tutti i magazzini dell’utente, fornendo un ingresso per passare rapidamente a diversi magazzini. Gli utenti possono trovare e accedere rapidamente ad altri progetti di interesse, migliorando l’efficienza del lavoro. Scenari di utilizzo: Sviluppatori: visualizzando le dimensioni del magazzino e gli avvisi attivi, è possibile filtrare rapidamente le librerie adatte per lo sviluppo ed evitare di utilizzare progetti che non vengono più gestiti. Project Manager: attraverso la funzione di salto rapido, è facile gestire e coordinare più progetti e migliorare l’efficienza del lavoro. Studenti: quando apprendono nuove tecnologie, possono trovare più facilmente progetti open source rilevanti e verificare rapidamente l’attività e la portata dei progetti. 🤠 -// @name:ja 🤠 Github の強化されたアシスタント ウェアハウスの表示サイズ -// @description:ja 🤠 ウェアハウスの表示サイズ: GitHub のコード検索、ウェアハウス検索、問題ページ、ユーザー ウェアハウス リスト、およびリポジトリ ページでは、ウェアハウスのサイズがウェアハウス名の横に表示されるため、ユーザーはウェアハウスの規模をすぐに理解し、ウェアハウスの最適化を行うことができます。選択。非アクティブな開発の警告: 過去 6 か月間リポジトリが更新されていない場合、システムはリポジトリの上部にプロンプ​​トを追加して、リポジトリが非アクティブであることをユーザーに通知し、最終更新時刻を表示します。これは、ユーザーが倉庫のアクティビティとメンテナンスのステータスを判断するのに役立ちます。倉庫内でのクイック ジャンプ: 倉庫を閲覧するときに、ユーザーはユーザーのすべての倉庫のリストを簡単に表示でき、別の倉庫にすばやくジャンプするための入り口を提供します。ユーザーは興味のある他のプロジェクトをすぐに見つけてアクセスできるため、作業効率が向上します。使用シナリオ: 開発者: ウェアハウスのサイズとアクティブな警告を表示することで、開発に適したライブラリを迅速に除外し、維持されなくなったプロジェクトの使用を避けることができます。プロジェクトマネージャー: クイックジャンプ機能により、複数のプロジェクトの管理と調整が容易になり、作業効率が向上します。学習者: 新しいテクノロジーを学習するときに、関連するオープンソース プロジェクトをより簡単に見つけて、プロジェクトのアクティビティと規模をすばやく確認できるようになります。 🤠 -// @name:ka 🤠 Github გაუმჯობესებული ასისტენტის საწყობის ჩვენების ზომა -// @description:ka 🤠 საწყობის ჩვენების ზომა: GitHub-ის კოდის ძიებაში, საწყობის ძიებაში, გამოშვების გვერდზე, მომხმარებელთა საწყობის სიაში და საცავის გვერდზე, საწყობის ზომა გამოჩნდება საწყობის სახელის გვერდით, რაც მომხმარებლებს საშუალებას მისცემს სწრაფად გაიგონ საწყობის მასშტაბები და ოპტიმიზაცია გაუკეთონ მათ. შერჩევა. არააქტიური განვითარების გაფრთხილება: თუ საცავი არ განახლებულა ბოლო ექვსი თვის განმავლობაში, სისტემა დაამატებს მოთხოვნას საცავის ზედა ნაწილში, რათა შეახსენოს მომხმარებლებს, რომ საცავი არააქტიურია და აჩვენებს ბოლო განახლების დროს. ეს ეხმარება მომხმარებლებს განსაზღვრონ საწყობის აქტივობა და ტექნიკური მდგომარეობა. სწრაფი გადახტომა საწყობში: საწყობის დათვალიერებისას მომხმარებელს შეუძლია ადვილად ნახოს მომხმარებლის ყველა საწყობის სია, რაც უზრუნველყოფს შესასვლელს სხვადასხვა საწყობში სწრაფად გადახტომისთვის. მომხმარებლებს შეუძლიათ სწრაფად იპოვონ და მიიღონ წვდომა სხვა საინტერესო პროექტებზე, რაც აუმჯობესებს მუშაობის ეფექტურობას. გამოყენების სცენარები: დეველოპერები: საწყობის ზომისა და აქტიური გაფრთხილებების ჩვენებით, შეგიძლიათ სწრაფად გაფილტროთ განვითარებისთვის შესაფერისი ბიბლიოთეკები და თავიდან აიცილოთ ისეთი პროექტების გამოყენება, რომლებიც აღარ არის შენახული. პროექტის მენეჯერი: სწრაფი ნახტომის ფუნქციის საშუალებით, ადვილია მრავალი პროექტის მართვა და კოორდინაცია და მუშაობის ეფექტურობის გაუმჯობესება. მოსწავლეები: ახალი ტექნოლოგიების შესწავლისას, მათ შეუძლიათ უფრო ადვილად იპოვონ შესაბამისი ღია კოდის პროექტები და სწრაფად შეამოწმონ პროექტების აქტივობა და მასშტაბები. 🤠 -// @name:ko 🤠 Github 향상된 보조 창고 디스플레이 크기 -// @description:ko 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 ​​옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 -// @name:nl 🤠 Github verbeterde weergavegrootte assistent-magazijn -// @description:nl 🤠 Weergavegrootte magazijn: op GitHub’s codezoekopdracht, magazijnzoekopdracht, probleempagina, gebruikersmagazijnlijst en repositorypagina wordt de grootte van het magazijn weergegeven naast de magazijnnaam, zodat gebruikers snel de schaal van het magazijn kunnen begrijpen en hun magazijn kunnen optimaliseren selectie. Waarschuwing voor inactieve ontwikkeling: Als een repository de afgelopen zes maanden niet is bijgewerkt, voegt het systeem een ​​prompt toe bovenaan de repository om gebruikers eraan te herinneren dat de repository inactief is en wordt het tijdstip van de laatste update weergegeven. Dit helpt gebruikers bij het bepalen van de activiteit en onderhoudsstatus van het magazijn. Snelle sprong binnen het magazijn: Tijdens het bladeren door het magazijn kan de gebruiker eenvoudig de lijst met alle magazijnen van de gebruiker bekijken, waardoor hij toegang krijgt om snel naar verschillende magazijnen te springen. Gebruikers kunnen snel andere interessante projecten vinden en openen, waardoor de werkefficiëntie wordt verbeterd. Gebruiksscenario’s: Ontwikkelaars: door de magazijngrootte en actieve waarschuwingen weer te geven, kunt u snel geschikte bibliotheken voor ontwikkeling filteren en voorkomen dat u projecten gebruikt die niet langer worden onderhouden. Projectmanager: Via de Quick Jump-functie is het eenvoudig om meerdere projecten te beheren en te coördineren en de werkefficiëntie te verbeteren. Leerlingen: wanneer ze nieuwe technologieën leren, kunnen ze gemakkelijker relevante open source-projecten vinden en snel de activiteit en schaal van de projecten controleren. 🤠 -// @name:nb 🤠 Github forbedret assistentlagervisningsstørrelse -// @description:nb 🤠 Lagervisningsstørrelse: På GitHubs kodesøk, lagersøk, problemside, brukerlagerliste og lagerside vil størrelsen på lageret vises ved siden av lagernavnet, slik at brukerne raskt kan forstå omfanget av lageret og optimere deres lager. utvalg. Advarsel om inaktiv utvikling: Hvis et depot ikke har blitt oppdatert i løpet av de siste seks månedene, vil systemet legge til en melding øverst i depotet for å minne brukere om at depotet er inaktivt og vise tidspunktet for siste oppdatering. Dette hjelper brukere med å bestemme aktiviteten og vedlikeholdsstatusen til lageret. Hurtighopp innenfor lageret: Når brukeren blar gjennom lageret, kan brukeren enkelt se listen over alle varehusene til brukeren, noe som gir en inngang for raskt å hoppe til forskjellige varehus. Brukere kan raskt finne og få tilgang til andre prosjekter av interesse, noe som forbedrer arbeidseffektiviteten. Bruksscenarier: Utviklere: Ved å vise lagerstørrelsen og aktive advarsler kan du raskt filtrere ut passende biblioteker for utvikling og unngå å bruke prosjekter som ikke lenger vedlikeholdes. Prosjektleder: Gjennom hurtighoppfunksjonen er det enkelt å administrere og koordinere flere prosjekter og forbedre arbeidseffektiviteten. Elever: Når de lærer nye teknologier, kan de lettere finne relevante åpen kildekode-prosjekter og raskt sjekke aktiviteten og omfanget av prosjektene. 🤠 -// @name:pl 🤠 Zwiększony rozmiar wyświetlacza magazynu asystenta Githuba -// @description:pl 🤠 Rozmiar wyświetlanego magazynu: przy wyszukiwaniu kodu w GitHubie, wyszukiwaniu magazynu, stronie wydania, liście magazynu użytkownika i stronie repozytorium, rozmiar magazynu będzie wyświetlany obok nazwy magazynu, umożliwiając użytkownikom szybkie zrozumienie skali magazynu i optymalizację jego wybór. Ostrzeżenie o nieaktywnym rozwoju: Jeśli repozytorium nie było aktualizowane w ciągu ostatnich sześciu miesięcy, system doda monit na górze repozytorium, aby przypomnieć użytkownikom, że repozytorium jest nieaktywne i wyświetlić czas ostatniej aktualizacji. Pomaga to użytkownikom określić aktywność i stan utrzymania magazynu. Szybki skok w obrębie magazynu: Podczas przeglądania magazynu użytkownik może łatwo przeglądać listę wszystkich magazynów użytkownika, umożliwiając szybkie przeskakiwanie do różnych magazynów. Użytkownicy mogą szybko znaleźć i uzyskać dostęp do innych interesujących projektów, poprawiając efektywność pracy. Scenariusze użycia: Programiści: Wyświetlając wielkość magazynu i aktywne ostrzeżenia, możesz szybko odfiltrować odpowiednie biblioteki do rozwoju i uniknąć korzystania z projektów, które nie są już utrzymywane. Kierownik projektu: Dzięki funkcji szybkiego skoku można łatwo zarządzać i koordynować wiele projektów oraz poprawiać wydajność pracy. Uczniowie: Ucząc się nowych technologii, mogą łatwiej znaleźć odpowiednie projekty open source i szybko sprawdzić aktywność i skalę projektów. 🤠 -// @name:pt-BR 🤠 Tamanho de exibição do armazém do assistente aprimorado do Github -// @description:pt-BR 🤠 Tamanho de exibição do armazém: na pesquisa de código do GitHub, pesquisa de armazém, página de problemas, lista de armazém do usuário e página de repositório, o tamanho do armazém será exibido ao lado do nome do armazém, permitindo aos usuários entender rapidamente a escala do armazém e otimizar seu seleção. Aviso de desenvolvimento inativo: se um repositório não tiver sido atualizado nos últimos seis meses, o sistema adicionará um prompt na parte superior do repositório para lembrar aos usuários que o repositório está inativo e exibirá a hora da última atualização. Isso ajuda os usuários a determinar a atividade e o status de manutenção do armazém. Salto rápido dentro do armazém: Ao navegar no armazém, o usuário pode visualizar facilmente a lista de todos os armazéns do usuário, proporcionando uma entrada para saltar rapidamente para diferentes armazéns. Os usuários podem encontrar e acessar rapidamente outros projetos de interesse, melhorando a eficiência do trabalho. Cenários de uso: Desenvolvedores: Ao exibir o tamanho do warehouse e os avisos ativos, você pode filtrar rapidamente bibliotecas adequadas para desenvolvimento e evitar o uso de projetos que não são mais mantidos. Gerente de Projetos: Através da função de salto rápido, é fácil gerenciar e coordenar vários projetos e melhorar a eficiência do trabalho. Alunos: Ao aprender novas tecnologias, eles podem encontrar mais facilmente projetos de código aberto relevantes e verificar rapidamente a atividade e a escala dos projetos. 🤠 -// @name:ro 🤠 Dimensiunea de afișare a depozitului a asistentului îmbunătățit Github -// @description:ro 🤠 Dimensiunea afișajului depozitului: în căutarea codului GitHub, căutarea depozitului, pagina de probleme, lista de depozit de utilizatori și pagina de depozit, dimensiunea depozitului va fi afișată lângă numele depozitului, permițând utilizatorilor să înțeleagă rapid dimensiunea depozitului și să își optimizeze selecţie. Avertisment de dezvoltare inactivă: Dacă un depozit nu a fost actualizat în ultimele șase luni, sistemul va adăuga o solicitare în partea de sus a magaziei pentru a le reaminti utilizatorilor că depozitul este inactiv și va afișa ora ultimei actualizări. Acest lucru ajută utilizatorii să determine activitatea și starea de întreținere a depozitului. Salt rapid în depozit: Când navighează în depozit, utilizatorul poate vizualiza cu ușurință lista tuturor depozitelor utilizatorului, oferind o intrare pentru a sări rapid la diferite depozite. Utilizatorii pot găsi și accesa rapid alte proiecte de interes, îmbunătățind eficiența muncii. Scenarii de utilizare: Dezvoltatori: prin afișarea dimensiunii depozitului și a avertismentelor active, puteți filtra rapid bibliotecile adecvate pentru dezvoltare și puteți evita utilizarea proiectelor care nu mai sunt întreținute. Manager de proiect: Prin intermediul funcției de salt rapid, este ușor să gestionați și să coordonați mai multe proiecte și să îmbunătățiți eficiența muncii. Cursanți: atunci când învață noi tehnologii, aceștia pot găsi mai ușor proiecte open source relevante și pot verifica rapid activitatea și amploarea proiectelor. 🤠 -// @name:ru 🤠 Расширенный размер отображения склада помощника Github -// @description:ru 🤠 Размер отображения склада: при поиске кода GitHub, поиске склада, странице задач, списке пользовательских складов и странице репозитория размер склада будет отображаться рядом с названием склада, что позволяет пользователям быстро понять масштаб склада и оптимизировать его. выбор. Предупреждение о неактивности разработки. Если репозиторий не обновлялся в течение последних шести месяцев, система добавит запрос в верхней части репозитория, чтобы напомнить пользователям, что репозиторий неактивен, и отобразит время последнего обновления. Это помогает пользователям определять активность и состояние обслуживания склада. Быстрый переход по складу: при просмотре склада пользователь может легко просмотреть список всех складов пользователя, предоставляя возможность быстрого перехода к различным складам. Пользователи могут быстро находить и получать доступ к другим интересующим проектам, повышая эффективность работы. Сценарии использования: Разработчики: отображая размер хранилища и активные предупреждения, вы можете быстро отфильтровать подходящие библиотеки для разработки и избежать использования проектов, которые больше не поддерживаются. Менеджер проекта: благодаря функции быстрого перехода можно легко управлять несколькими проектами и координировать их, а также повышать эффективность работы. Учащиеся: изучая новые технологии, им легче находить соответствующие проекты с открытым исходным кодом и быстро проверять активность и масштаб проектов. 🤠 -// @name:sk 🤠 Veľkosť displeja vylepšeného asistenta v sklade Github -// @description:sk 🤠 Veľkosť zobrazenia skladu: Na GitHub na vyhľadávanie kódu, vyhľadávanie skladu, stránku výdaja, zoznam skladov používateľov a stránku úložiska sa veľkosť skladu zobrazí vedľa názvu skladu, čo používateľom umožňuje rýchlo pochopiť rozsah skladu a optimalizovať ich výber. Upozornenie na neaktívny vývoj: Ak úložisko nebolo aktualizované za posledných šesť mesiacov, systém do hornej časti úložiska pridá výzvu, ktorá používateľom pripomenie, že úložisko je neaktívne, a zobrazí čas poslednej aktualizácie. To pomáha používateľom určiť aktivitu a stav údržby skladu. Rýchly skok v rámci skladu: Pri prehliadaní skladu môže používateľ jednoducho zobraziť zoznam všetkých skladov používateľa, čo poskytuje vstup na rýchly prechod do rôznych skladov. Používatelia môžu rýchlo nájsť a pristupovať k iným zaujímavým projektom, čo zvyšuje efektivitu práce. Scenáre použitia: Vývojári: Zobrazovaním veľkosti skladu a aktívnych upozornení môžete rýchlo odfiltrovať vhodné knižnice pre vývoj a vyhnúť sa používaniu projektov, ktoré už nie sú udržiavané. Projektový manažér: Vďaka funkcii rýchleho skoku je ľahké spravovať a koordinovať viacero projektov a zlepšiť efektivitu práce. Študenti: Keď sa učia nové technológie, môžu ľahšie nájsť relevantné open source projekty a rýchlo skontrolovať aktivitu a rozsah projektov. 🤠 -// @name:sr 🤠 Гитхуб побољшана величина приказа магацина помоћника -// @description:sr 🤠 Величина приказа складишта: На ГитХуб-овој претрази кода, претрази складишта, страници за издавање, корисничкој листи складишта и страници спремишта, величина складишта ће бити приказана поред назива складишта, омогућавајући корисницима да брзо схвате обим складишта и оптимизују своје селекција. Упозорење о неактивном развоју: Ако спремиште није ажурирано у последњих шест месеци, систем ће додати промпт на врх спремишта да подсети кориснике да је спремиште неактивно и прикаже време последњег ажурирања. Ово помаже корисницима да одреде активност и статус одржавања складишта. Брзи скок унутар складишта: Приликом претраживања складишта, корисник може лако да погледа листу свих складишта корисника, пружајући му приступ за брзи скок у различита складишта. Корисници могу брзо пронаћи и приступити другим пројектима од интереса, побољшавајући радну ефикасност. Сценарији коришћења: Програмери: Приказујући величину складишта и активна упозорења, можете брзо да филтрирате одговарајуће библиотеке за развој и избегавате коришћење пројеката који се више не одржавају. Менаџер пројекта: Кроз функцију брзог скока, лако је управљати и координирати више пројеката и побољшати радну ефикасност. Ученици: Када уче нове технологије, могу лакше да пронађу релевантне пројекте отвореног кода и брзо провере активност и обим пројеката. 🤠 -// @name:sv 🤠 Github förbättrad assistentlagerdisplaystorlek -// @description:sv 🤠 Lagervisningsstorlek: På GitHubs kodsökning, lagersökning, ärendesida, användarlagerlista och lagersida kommer storleken på lagret att visas bredvid lagernamnet, vilket gör att användare snabbt kan förstå lagrets skala och optimera sina lager. urval. Inaktiv utvecklingsvarning: Om ett arkiv inte har uppdaterats under de senaste sex månaderna kommer systemet att lägga till en uppmaning överst i arkivet för att påminna användarna om att arkivet är inaktivt och visa tidpunkten för den senaste uppdateringen. Detta hjälper användare att fastställa aktiviteten och underhållsstatusen för lagret. Snabbhopp inom lagret: När du bläddrar i lagret kan användaren enkelt se listan över användarens alla lager, vilket ger en ingång för att snabbt hoppa till olika lager. Användare kan snabbt hitta och komma åt andra intressanta projekt, vilket förbättrar arbetseffektiviteten. Användningsscenarier: Utvecklare: Genom att visa lagrets storlek och aktiva varningar kan du snabbt filtrera bort lämpliga bibliotek för utveckling och undvika att använda projekt som inte längre underhålls. Projektledare: Genom snabbhoppsfunktionen är det enkelt att hantera och koordinera flera projekt och förbättra arbetseffektiviteten. Elever: När de lär sig ny teknik kan de lättare hitta relevanta projekt med öppen källkod och snabbt kontrollera aktiviteten och omfattningen av projekten. 🤠 -// @name:th 🤠 ขนาดการแสดงผลคลังสินค้าผู้ช่วยที่ปรับปรุง Github -// @description:th 🤠 ขนาดการแสดงผลคลังสินค้า: ในการค้นหาโค้ดของ GitHub การค้นหาคลังสินค้า หน้าปัญหา รายชื่อคลังสินค้าของผู้ใช้ และหน้าพื้นที่เก็บข้อมูล ขนาดของคลังสินค้าจะแสดงถัดจากชื่อคลังสินค้า ทำให้ผู้ใช้สามารถเข้าใจขนาดของคลังสินค้าได้อย่างรวดเร็วและเพิ่มประสิทธิภาพของพวกเขา การเลือก คำเตือนการพัฒนาที่ไม่ใช้งาน: หากพื้นที่เก็บข้อมูลไม่ได้รับการอัพเดตในช่วงหกเดือนที่ผ่านมา ระบบจะเพิ่มข้อความเตือนที่ด้านบนของพื้นที่เก็บข้อมูลเพื่อเตือนผู้ใช้ว่าพื้นที่เก็บข้อมูลไม่ได้ใช้งานและแสดงเวลาของการอัปเดตครั้งล่าสุด ซึ่งจะช่วยให้ผู้ใช้ระบุกิจกรรมและสถานะการบำรุงรักษาของคลังสินค้า กระโดดภายในคลังสินค้าอย่างรวดเร็ว: เมื่อเรียกดูคลังสินค้า ผู้ใช้สามารถดูรายการคลังสินค้าทั้งหมดของผู้ใช้ได้อย่างง่ายดาย ทำให้มีทางเข้าเพื่อข้ามไปยังคลังสินค้าต่างๆ ได้อย่างรวดเร็ว ผู้ใช้สามารถค้นหาและเข้าถึงโครงการอื่น ๆ ที่น่าสนใจได้อย่างรวดเร็ว ซึ่งช่วยปรับปรุงประสิทธิภาพการทำงาน สถานการณ์การใช้งาน: นักพัฒนา: ด้วยการแสดงขนาดคลังสินค้าและคำเตือนที่ใช้งานอยู่ คุณสามารถกรองไลบรารีที่เหมาะสมสำหรับการพัฒนาได้อย่างรวดเร็ว และหลีกเลี่ยงการใช้โปรเจ็กต์ที่ไม่ได้รับการดูแลรักษาอีกต่อไป ผู้จัดการโครงการ: ด้วยฟังก์ชันการกระโดดอย่างรวดเร็ว ทำให้ง่ายต่อการจัดการและประสานงานหลายโครงการและปรับปรุงประสิทธิภาพการทำงาน ผู้เรียน: เมื่อเรียนรู้เทคโนโลยีใหม่ พวกเขาสามารถค้นหาโครงการโอเพ่นซอร์สที่เกี่ยวข้องได้ง่ายขึ้น และตรวจสอบกิจกรรมและขนาดของโครงการได้อย่างรวดเร็ว -// @name:tr 🤠 Github geliştirilmiş yardımcı depo ekran boyutu -// @description:tr 🤠 Depo görüntüleme boyutu: GitHub’un kod arama, depo arama, sorun sayfası, kullanıcı depo listesi ve depo sayfasında, deponun boyutu depo adının yanında görüntülenecek ve kullanıcıların deponun ölçeğini hızlı bir şekilde anlamalarına ve depolarını optimize etmelerine olanak tanıyacak. seçim. Etkin olmayan geliştirme uyarısı: Bir depo son altı ayda güncellenmediyse sistem, kullanıcılara havuzun etkin olmadığını hatırlatmak ve son güncellemenin zamanını görüntülemek için deponun üst kısmına bir bilgi istemi ekleyecektir. Bu, kullanıcıların deponun aktivite ve bakım durumunu belirlemesine yardımcı olur. Depo içinde hızlı geçiş: Kullanıcı, depoya göz atarken kullanıcının tüm depolarının listesini kolayca görüntüleyebilir, farklı depolara hızlı bir şekilde atlamak için bir giriş sağlar. Kullanıcılar ilgi duydukları diğer projeleri hızlı bir şekilde bulup bunlara erişebilir, böylece iş verimliliği artar. Kullanım senaryoları: Geliştiriciler: Depo boyutunu ve etkin uyarıları görüntüleyerek, geliştirme için uygun kitaplıkları hızla filtreleyebilir ve artık bakımı yapılmayan projeleri kullanmaktan kaçınabilirsiniz. Proje Yöneticisi: Hızlı atlama işlevi sayesinde birden fazla projeyi yönetmek ve koordine etmek ve iş verimliliğini artırmak kolaydır. Öğrenciler: Yeni teknolojileri öğrenirken ilgili açık kaynak projelerini daha kolay bulabilir ve projelerin etkinliğini ve ölçeğini hızlı bir şekilde kontrol edebilirler. 🤠 -// @name:ug 🤠 Github ياردەمچى ئامبارنىڭ كۆرسىتىش كۆلىمىنى كۈچەيتتى -// @description:ug 🤠 ئامبارنىڭ كۆرسىتىش چوڭلۇقى: GitHub نىڭ كود ئىزدەش ، ئامبار ئىزدەش ، تارقىتىش بېتى ، ئىشلەتكۈچى ئامبار تىزىملىكى ۋە ئامبار بېتىدە ، ئامبارنىڭ چوڭلۇقى ئامبار نامىنىڭ يېنىدا كۆرسىتىلىدۇ ، ئابونتلار ئامبارنىڭ كۆلىمىنى تېزرەك چۈشىنىدۇ ۋە ئۇلارنى ئەلالاشتۇرىدۇ. تاللاش. ئاكتىپ بولمىغان تەرەققىيات ئاگاھلاندۇرۇشى: ئەگەر يېقىنقى ئالتە ئاي ئىچىدە ئامبار يېڭىلانمىغان بولسا ، بۇ سىستېما ئامبارنىڭ ئۈستىگە تېزلىكتە ئەسكەرتىپ ، ئابونتلارغا ئامبارنىڭ ئاكتىپ ئەمەسلىكىنى ئەسكەرتىپ ، ئەڭ ئاخىرقى يېڭىلاش ۋاقتىنى كۆرسىتىدۇ. بۇ ئىشلەتكۈچىلەرنىڭ ئامبارنىڭ پائالىيىتى ۋە ئاسراش ئەھۋالىنى ئېنىقلىشىغا ياردەم بېرىدۇ. ئامباردا تېز سەكرەش: ئامبارنى كۆرگەندە ، ئىشلەتكۈچى بارلىق ئامبارلارنىڭ تىزىملىكىنى ئاسانلا كۆرەلەيدۇ ، ئوخشىمىغان ئامبارلارغا تېز سەكرەش ئېغىزى بىلەن تەمىنلەيدۇ. ئىشلەتكۈچىلەر باشقا قىزىقىدىغان تۈرلەرنى تېزلا تاپالايدۇ ۋە زىيارەت قىلالايدۇ ، خىزمەت ئۈنۈمىنى ئۆستۈرىدۇ. ئىشلىتىش سىنارىيەسى: ئاچقۇچىلار: ئامبارنىڭ چوڭ-كىچىكلىكى ۋە ئاكتىپ ئاگاھلاندۇرۇشلارنى كۆرسىتىش ئارقىلىق ، ماس كېلىدىغان كۈتۈپخانىلارنى تېزلىكتە سۈزۈپ ، ئاسرىمايدىغان تۈرلەرنى ئىشلىتىشتىن ساقلىنالايسىز. تۈر دېرىكتورى: تېز سەكرەش ئىقتىدارى ئارقىلىق ، كۆپ تۈرنى باشقۇرۇش ۋە ماسلاشتۇرۇش ۋە خىزمەت ئۈنۈمىنى ئاشۇرۇش ئاسان. ئۆگەنگۈچىلەر: يېڭى تېخنىكىلارنى ئۆگەنگەندە ، مۇناسىۋەتلىك ئوچۇق كود تۈرلىرىنى تېخىمۇ ئاسان تاپالايدۇ ۋە تۈرلەرنىڭ پائالىيىتى ۋە كۆلىمىنى تېز تەكشۈرەلەيدۇ. 🤠 -// @name:uk 🤠 Розширений розмір відображення складу помічника Github -// @description:uk 🤠 Розмір відображення складу: у пошуковому коді GitHub, пошуку в складі, на сторінці випуску, у списку сховищ користувачів і на сторінці сховища розмір сховища відображатиметься поруч із назвою сховища, що дозволить користувачам швидко зрозуміти масштаб сховища та оптимізувати свій вибір. Попередження про неактивну розробку: якщо репозиторій не оновлювався протягом останніх шести місяців, система додасть підказку у верхній частині сховища, щоб нагадати користувачам, що сховище неактивне, і відобразити час останнього оновлення. Це допомагає користувачам визначити активність і стан обслуговування складу. Швидкий перехід у межах складу: під час перегляду складу користувач може легко переглядати список усіх складів користувача, забезпечуючи вхід для швидкого переходу до різних складів. Користувачі можуть швидко знаходити та отримувати доступ до інших цікавих проектів, підвищуючи ефективність роботи. Сценарії використання: Розробники: відображаючи розмір сховища та активні попередження, ви можете швидко відфільтрувати відповідні бібліотеки для розробки та уникнути використання проектів, які більше не обслуговуються. Менеджер проекту: за допомогою функції швидкого переходу легко керувати кількома проектами та координувати їх, а також покращувати ефективність роботи. Учні: вивчаючи нові технології, їм легше знаходити відповідні проекти з відкритим кодом і швидко перевіряти активність і масштаб проектів. 🤠 -// @name:vi 🤠 Kích thước hiển thị kho trợ lý nâng cao của Github -// @description:vi 🤠 Kích thước hiển thị kho: Trên mã tìm kiếm, tìm kiếm kho, trang vấn đề, danh sách kho của người dùng và trang kho, kích thước của kho sẽ được hiển thị bên cạnh tên kho, giúp người dùng nhanh chóng hiểu được quy mô của kho và tối ưu hóa quy mô kho của mình. lựa chọn. Cảnh báo phát triển không hoạt động: Nếu kho lưu trữ không được cập nhật trong sáu tháng qua, hệ thống sẽ thêm lời nhắc ở đầu kho lưu trữ để nhắc nhở người dùng rằng kho lưu trữ không hoạt động và hiển thị thời gian cập nhật lần cuối. Điều này giúp người dùng xác định được tình trạng hoạt động và bảo trì của kho. Nhảy nhanh trong kho: Khi duyệt kho, người dùng có thể dễ dàng xem danh sách tất cả các kho của người dùng, cung cấp lối vào để nhanh chóng chuyển đến các kho khác nhau. Người dùng có thể nhanh chóng tìm và truy cập các dự án khác mà họ quan tâm, nâng cao hiệu quả công việc. Tình huống sử dụng: Nhà phát triển: Bằng cách hiển thị quy mô kho và cảnh báo đang hoạt động, bạn có thể nhanh chóng lọc ra các thư viện phù hợp để phát triển và tránh sử dụng các dự án không còn được bảo trì. Quản lý dự án: Thông qua chức năng nhảy nhanh, bạn có thể dễ dàng quản lý và điều phối nhiều dự án, đồng thời nâng cao hiệu quả công việc. Người học: Khi học các công nghệ mới, họ có thể dễ dàng tìm thấy các dự án nguồn mở có liên quan hơn và nhanh chóng kiểm tra hoạt động cũng như quy mô của dự án. 🤠 -// @name:zh-SG 🤠 Github 增强小助手 仓库显示大小 -// @description:zh-SG 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 -// @name:zh 🤠 Github 增强小助手 仓库显示大小 -// @description:zh 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 -// @name:zh-TW 🤠 Github 增強小助手 倉庫顯示大小 -// @description:zh-TW 🤠 倉庫顯示大小:在 GitHub 的程式碼搜尋、倉庫搜尋、議題頁面、使用者倉庫清單和儲存庫頁面上,倉庫名稱旁會顯示該倉庫的大小,方便使用者快速了解倉庫的規模,最佳化選擇。不活躍開發警告:如果某個倉庫在過去六個月內沒有更新,系統會在倉庫的頂部添加提示,提醒用戶該倉庫不活躍,並顯示最後一次更新的時間。這有助於使用者判斷倉庫的活躍程度和維護狀況。倉庫內快速跳轉:在瀏覽倉庫時,使用者可以方便地查看該使用者的所有倉庫列表,提供一個快速跳到不同倉庫的入口。用戶可以快速找到和存取感興趣的其他項目,提高工作效率。使用情境:開發者:可以透過顯示倉庫大小和活躍警告,快速篩選出適當的庫進行開發,避免使用不再維護的項目。專案管理者:透過快速跳轉功能,方便管理和協調多個項目,提高工作效率。學習者:在學習新科技時,可以更方便地找到相關的開源項目,快速查看專案的活躍程度和規模。 🤠 -// @name:zh-HK 🤠 Github 增強小助手 倉庫顯示大小 -// @description:zh-HK 🤠 倉庫顯示大小:在 GitHub 的程式碼搜尋、倉庫搜尋、議題頁面、使用者倉庫清單和儲存庫頁面上,倉庫名稱旁會顯示該倉庫的大小,方便使用者快速了解倉庫的規模,最佳化選擇。不活躍開發警告:如果某個倉庫在過去六個月內沒有更新,系統會在倉庫的頂部添加提示,提醒用戶該倉庫不活躍,並顯示最後一次更新的時間。這有助於使用者判斷倉庫的活躍程度和維護狀況。倉庫內快速跳轉:在瀏覽倉庫時,使用者可以方便地查看該使用者的所有倉庫列表,提供一個快速跳到不同倉庫的入口。用戶可以快速找到和存取感興趣的其他項目,提高工作效率。使用情境:開發者:可以透過顯示倉庫大小和活躍警告,快速篩選出適當的庫進行開發,避免使用不再維護的項目。專案管理者:透過快速跳轉功能,方便管理和協調多個項目,提高工作效率。學習者:在學習新科技時,可以更方便地找到相關的開源項目,快速查看專案的活躍程度和規模。 🤠 -// @name:fr-CA 🤠 Taille d’affichage de l’entrepôt de l’assistant amélioré Github -// @description:fr-CA 🤠 Taille d’affichage de l’entrepôt : sur la recherche de code, la recherche d’entrepôt, la page de problèmes, la liste d’entrepôts d’utilisateurs et la page de référentiel de GitHub, la taille de l’entrepôt sera affichée à côté du nom de l’entrepôt, permettant aux utilisateurs de comprendre rapidement l’échelle de l’entrepôt et d’optimiser leur sélection. Avertissement de développement inactif : si un référentiel n’a pas été mis à jour au cours des six derniers mois, le système ajoutera une invite en haut du référentiel pour rappeler aux utilisateurs que le référentiel est inactif et affichera l’heure de la dernière mise à jour. Cela aide les utilisateurs à déterminer l’activité et l’état de maintenance de l’entrepôt. Saut rapide dans l’entrepôt : lors de la navigation dans l’entrepôt, l’utilisateur peut facilement consulter la liste de tous les entrepôts de l’utilisateur, offrant ainsi une entrée pour accéder rapidement à différents entrepôts. Les utilisateurs peuvent trouver et accéder rapidement à d’autres projets d’intérêt, améliorant ainsi l’efficacité du travail. Scénarios d’utilisation : Développeurs : en affichant la taille de l’entrepôt et les avertissements actifs, vous pouvez rapidement filtrer les bibliothèques appropriées pour le développement et éviter d’utiliser des projets qui ne sont plus maintenus. Gestionnaire de projet : grâce à la fonction de saut rapide, il est facile de gérer et de coordonner plusieurs projets et d’améliorer l’efficacité du travail. Apprenants : lorsqu’ils apprennent de nouvelles technologies, ils peuvent plus facilement trouver des projets open source pertinents et vérifier rapidement l’activité et l’ampleur des projets. 🤠 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.1.3.7 -// @author mshll & 人民的勤务员 -// @match https://github.com/* -// @grant none -// @run-at document-start -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_addStyle -// @grant GM_registerMenuCommand -// @grant none -// @require https://update.greasyfork.org/scripts/511697/1460281/TOTP%20Generator.js -// @icon data:image/png;base64,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 -// @iconbak https://github.githubassets.com/pinned-octocat.svg -// @license MIT -// @source https://github.com/qinwuyuan-cn/UserScripts -// @run-at document-start -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @downloadURL https://update.greasyfork.org/scripts/502291/Github%20Repo%20Size%2B.user.js -// @updateURL https://update.greasyfork.org/scripts/502291/Github%20Repo%20Size%2B.meta.js -// ==/UserScript== -"use strict" -const userLang = - (navigator.languages && navigator.languages[0]) || - navigator.language || - "en" -const translations = { - en: { - save: "Save", - cancel: "Cancel", - modaltitle: "Set GitHub Token", - description: 'Enter your GitHub personal access token with "repo" scope.', - githubtokeninput: "Enter your GitHub personal access token", - newtoken: "Click here to create a new token", - warncheckbox: " Inactive Development Warning", - menu: "Set GitHub Token", - renderWarning: "WARNING: repo has not received an update in 1+ year(s)", - renderCaution: "Caution: repo has not received an update in 6+ months", - confirm: "You have not entered a Token, confirm to clear the GitHub Token?", - timediff: "Last commit was: {years} years, {months} months, {days} days ago ", - view: "View[", - allRepos: "]All repositories", - newTab: "Open in a new tab when quickly viewing repositories", - repoSize: "Repository size:", - repoDes: "Repository description:", - repoLang: "Primary language:", - repoCreated: "Initial creation time:", - repoUpdated: "Last updated:", - repoPushed: "Last pushed:", - repoForks: "Forks:", - repoStars: "Stars:", - ossinsight: "OSS Insight analysis page for the repository", - activeforks: "Active forks list for the repository", - activeforks_: "Active forks", - publicRepos: "Public repositories: ", - privateRepos: "Private repositories: ", - forkRepos: "Forked repositories: ", - deleteRepo_i: "You are trying to delete the repository:", - deleteRepo: "ChinaGodMan reminds you:\nDeleting a repository is an extremely dangerous operation.\nOnce you delete a repository, it cannot be recovered.\nPlease think twice! Data is priceless, cherish it.", - deleteRepo_ask: "Are you sure you want to delete the repository? (Confirmed", - deleteRepo_pass: "Deletion successful!", - deleteRepo_failed: "Deletion failed!\nIt is recommended to check whether the GitHub token has permission to delete the repository!", - deleteRepo_failed_status: "Status code:", - deleteRepo_btn: "Delete repository", - secret: "[Optional:] Enter your two-factor key for automatic input during GitHub's two-step verification.", - - }, - "zh-CN,zh,zh-SG": { - save: "保存", - cancel: "取消", - modaltitle: "设置 GitHub 令牌", - description: '请输入您的 GitHub 个人访问令牌,需具备 "repo" 权限。', - githubtokeninput: "请输入您的 GitHub 个人访问令牌", - newtoken: "点击此处创建新的令牌", - warncheckbox: " 非活跃开发警告", - menu: "设置 GitHub 令牌", - renderWarning: "警告:该仓库在 1 年以上未更新", - renderCaution: "注意:该仓库在 6 个月以上未更新", - confirm: "你没有输入Token,确认清空GitHub Token?", - timediff: "最后一次提交距现在:{years}年{months}个月{days}天 ", - view: "查看", - allRepos: "所有仓库", - newTab: "快速查看仓库时新窗口打开", - repoSize: "仓库大小:", - repoDes: "仓库简介:", - repoLang: "主要语言:", - repoCreated: "初始创建时间:", - repoUpdated: "最后一次更新:", - repoPushed: "最后一次推送:", - repoPushed: "最后一次推送:", - repoForks: "复刻:", - repoStars: "星标:", - ossinsight: "仓库对应的 OSS Insight 分析页面", - activeforks: "仓库对应的活跃复刻列表", - activeforks_: "活跃的复刻", - publicRepos: "公共仓库: ", - privateRepos: "私有仓库: ", - forkRepos: "分叉仓库: ", - deleteRepo_i: "你正在尝试删除仓库:", - deleteRepo: "人民的勤务员提醒你:\n删除仓库是一个极其危险的操作\n 你一旦删除仓库,将再也无法恢复。\n请三思而后行! 数据无价,且行且珍惜", - deleteRepo_ask: "你确定要删除仓库吗? (已确认", - deleteRepo_pass: " 删除成功!", - deleteRepo_failed: "删除失败!\n建议检查GitHub token 是否具有删除仓库的权限!", - deleteRepo_failed_status: "状态码:", - deleteRepo_btn: "删除仓库", - secret: "[可选项目:]输入你的双因素密钥用于在GitHub触发二次验证时自动输入", - }, - "zh-TW,zh-HK,zh-MO": { - save: "保存", - cancel: "取消", - modaltitle: "設定 GitHub 令牌", - description: '請輸入您的 GitHub 個人訪問令牌,需具備 "repo" 權限。', - githubtokeninput: "請輸入您的 GitHub 個人訪問令牌", - newtoken: "點擊此處創建新的令牌", - warncheckbox: " 非活躍開發警告", - menu: "設定 GitHub 令牌", - renderWarning: "警告:該倉庫在 1 年以上未更新", - renderCaution: "注意:該倉庫在 6 個月以上未更新", - confirm: "你沒有輸入Token,確認清空GitHub Token?", - timediff: "最後一次提交距現在:{years}年{months}個月{days}天 ", - }, - vi: { - save: "Lưu", - cancel: "Hủy", - modaltitle: "Đặt Token GitHub", - description: 'Nhập token truy cập cá nhân GitHub của bạn với phạm vi "repo".', - githubtokeninput: "Nhập token truy cập cá nhân GitHub của bạn", - newtoken: "Nhấn vào đây để tạo token mới", - warncheckbox: " Cảnh báo phát triển không hoạt động", - menu: "Đặt Token GitHub", - renderWarning: "CẢNH BÁO: kho lưu trữ đã không nhận được cập nhật trong hơn 1 năm", - renderCaution: "Cảnh báo: kho lưu trữ đã không nhận được cập nhật trong hơn 6 tháng", - confirm: "Bạn chưa nhập Token, xác nhận xóa GitHub Token?", - timediff: "Lần commit cuối cách đây: {years} năm, {months} tháng, {days} ngày ", - }, - ja: { - save: "保存", - cancel: "キャンセル", - modaltitle: "GitHubトークンの設定", - description: "「repo」スコープを持つGitHub個人アクセストークンを入力してください。", - githubtokeninput: "GitHub個人アクセストークンを入力してください", - newtoken: "新しいトークンを作成するにはここをクリックしてください", - warncheckbox: " 非アクティブ開発警告", - menu: "GitHubトークンの設定", - renderWarning: "警告:リポジトリは1年以上更新されていません", - renderCaution: "注意:リポジトリは6ヶ月以上更新されていません", - confirm: "トークンが入力されていません。GitHubトークンをクリアしてもよろしいですか?", - timediff: "最終コミットから現在まで:{years}年{months}ヶ月{days}日 ", - }, - ko: { - save: "저장", - cancel: "취소", - modaltitle: "GitHub 토큰 설정", - description: "“repo” 범위를 가진 GitHub 개인 액세스 토큰을 입력하세요.", - githubtokeninput: "GitHub 개인 액세스 토큰을 입력하세요", - newtoken: "여기를 클릭하여 새 토큰을 만드세요", - warncheckbox: " 비활성 개발 경고", - menu: "GitHub 토큰 설정", - renderWarning: "경고: 이 저장소는 1년 이상 업데이트되지 않았습니다", - renderCaution: "주의: 이 저장소는 6개월 이상 업데이트되지 않았습니다", - confirm: "토큰을 입력하지 않았습니다. GitHub 토큰을 지우시겠습니까?", - timediff: "마지막 커밋 이후 경과: {years}년 {months}개월 {days}일 ", - }, -} -const getTranslations = (lang) => { - for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { - return translations[key] - } - } - return translations["en"] -} -const translate = new Proxy( - function (key) { - const lang = userLang - const strings = getTranslations(lang) - return strings[key] || translations["en"][key] - }, - { - get(target, prop) { - const lang = userLang - const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, - } -) -//! Generate a new public access token from https://github.com/settings/tokens and insert it here -//*Note: to be able to see the size of your private repos, you need to select the `repo` scope when generating the token -let TOKEN = GM_getValue("githubToken", "") -let WARNING = GM_getValue("warn", true) -let openInNewTab = GM_getValue("openInNewTab", false) -let DELAY = GM_getValue("DELAY", "24h") -let USETIP = GM_getValue("USETIP", false)//为真时使用GitHub自带的TIP提示而不是用网页title -let SECRET = GM_getValue("SECRET", '') -GM_addStyle(` - .modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000;} - .modal-content{background:white;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 15px rgba(0,0,0,0.2);position:relative;} - .modal-title{margin:0 0 10px 0;font-size:20px;} - .modal-description{margin-bottom:20px;font-size:14px;color:#666;} - .modal-description a{color:#007bff;text-decoration:underline;} - .github-token-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;margin-bottom:20px;font-size:14px;} - #save-token{background-color:#28a745;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;margin-right:10px;} - #cancel-token{background-color:#dc3545;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;} -`) -function createModal() { - const modalHTML = ` - - ` - const modalContainer = document.createElement("div") - modalContainer.innerHTML = modalHTML - document.body.appendChild(modalContainer) - const elements = { - input: modalContainer.querySelector("#github-token-input"), - secretInput: modalContainer.querySelector("#two-factor-secret"), - warn: modalContainer.querySelector("#warn"), - newTab: modalContainer.querySelector("#openInNewTab"), - saveButton: modalContainer.querySelector("#save-token"), - cancelButton: modalContainer.querySelector("#cancel-token") - } - elements.warn.checked = GM_getValue("warn", true) - elements.newTab.checked = GM_getValue("openInNewTab", false) - elements.input.value = GM_getValue("githubToken", "") - elements.secretInput.value = GM_getValue("SECRET", "") - elements.saveButton.addEventListener("click", () => { - const token = elements.input.value.trim() - GM_setValue("warn", elements.warn.checked) - WARNING = elements.warn.checked - GM_setValue("openInNewTab", elements.newTab.checked) - openInNewTab = elements.newTab.checked - GM_setValue("SECRET", elements.secretInput.value.trim()) - - if (token) { - GM_setValue("githubToken", token) - modalContainer.remove() - TOKEN = token - } else { - const userConfirmed = confirm(translate("confirm")) //提示是否删除 - if (userConfirmed) { - GM_setValue("githubToken", token) - modalContainer.remove() - TOKEN = token - } - } - }) - - elements.cancelButton.addEventListener("click", () => modalContainer.remove()) -} - -GM_registerMenuCommand(translate("menu"), function () { - createModal() -}) -const getPageType = () => { - const { pathname, search } = window.location - const params = new URLSearchParams(search) - const [, username, repo] = pathname.split("/") - const q = params.get("q")?.toLocaleLowerCase() - const type = params.get("type")?.toLocaleLowerCase() - if (window.location.pathname.split("/").pop() === "repositories") return "list-view-container" - if (window.location.href.includes("?tab=repositories")) return "user-repositories" - if (window.location.href.includes("?tab=stars")) return "user-starred-repos" - if (username && repo) return "repo" - if (q && type === "code") return "code_search" - if (q) return "search" -} -const addSizeToRepos = () => { - - const pageType = getPageType() - // Get the repo selector based on the page type - let repoSelector - switch (pageType) { - case "repo": //仓库详情界面 - repoSelector = "#repository-container-header strong a" - break - case "list-view-container": //ORG下的仓库列表 - repoSelector = - 'div[data-testid="list-view-item-title-container"] h4 a' - break - case "user-repositories": //用户资料页面的仓库TAB - repoSelector = "#user-repositories-list h3 a" - break - case "user-starred-repos": //用户资料页面的已星标仓库 - repoSelector = "#user-starred-repos h3 a" - break - case "search": //搜索 - repoSelector = 'div[data-testid="results-list"] .search-title a' - break - case "code_search": //代码搜索 - repoSelector = 'div[data-testid="results-list"] .search-title a' - break - default: - return - } - function extractPath(input) { - const thirdSlashIndex = input.indexOf( - "/", - input.indexOf("/", input.indexOf("/") + 1) + 1 - ) - if (thirdSlashIndex !== -1) { - return input.substring(0, thirdSlashIndex) - } - return input - } - if (pageType === "user-repositories") { - const repoItems = document.querySelectorAll('li[itemprop="owns"]') - repoItems.forEach(item => { - const repoName = item.querySelector('a[itemprop="name codeRepository"]').textContent.trim() - const ownerName = window.location.pathname.split('/')[1] - const deleteButton = document.createElement('button') - deleteButton.textContent = 'Delete' - deleteButton.classList.add('delete-repo-btn') - deleteButton.onclick = function () { - } - insertDelBtn(ownerName, repoName, false, 'dialog-show-repo-delete-user-repositories', item) - }) - } - // Get all the repo links - let filterHref - document.querySelectorAll(repoSelector).forEach(async (elem) => { - // Get json data from github api to extract the size - const tkn = TOKEN - var href = elem.getAttribute("href") - href = extractPath(href) - if (filterHref == href) { - return - } else { - filterHref = href - } - if (pageType === "repo") { - const parts = href.split('/') - const owner = parts[1] - const name = parts[2] - insertActiveForks(owner, name, !isMobileDevice()) - insertOssInsightButton(owner, name, !isMobileDevice()) - if (isLoggedInUser_f()) insertDelBtn(owner, name, !isMobileDevice()) - } - console.log(href) - const headers = tkn ? { authorization: `token ${tkn}` } : {} - const jsn = await ( - await fetch(`https://api.github.com/repos${href}`, { - headers: headers, - }) - ).json() - // If JSON failed to load, skip - if (jsn.message) return - if (pageType === "repo" && WARNING) { - checkCommitDate(jsn.pushed_at) - } - - if (pageType === "repo") { - const reposApi = isLoggedInUser(jsn.owner.avatar_url) - ? (TOKEN ? 'https://api.github.com/user/repos' : jsn.owner.repos_url) - : jsn.owner.repos_url - function fetchReposWithCache(ownerKey, reposApi, headers) { - const localData = localStorage.getItem(ownerKey) - const currentTime = new Date().getTime() - if (localData) { - const parsedData = JSON.parse(localData) - const localTimeStamp = new Date(parsedData.timeStamp).getTime() - if (currentTime - localTimeStamp < timeToSeconds(DELAY) * 1000) { - console.log('本地缓存数据未过期,直接使用本地数据') - insertReposList(parsedData.reposArray, USETIP) - return - } - } - getUserAllRepos(reposApi, headers) - .then(data => { - const reposArray = data.map(repo => ({ - name: repo.name, - private: repo.private, - html_url: repo.html_url, - fork: repo.fork, - description: repo.description, - stargazers_count: repo.stargazers_count, - owner: repo.owner.login, - forks_count: repo.forks_count, - open_issues_count: repo.open_issues_count, - language: repo.language, - size: repo.size, - created_at: systemTime(repo.created_at), - updated_at: systemTime(repo.updated_at), - pushed_at: systemTime(repo.pushed_at), - })) - const timeStamp = new Date().toISOString() - const dataToStore = { - reposArray: reposArray, - timeStamp: timeStamp - } - localStorage.setItem(ownerKey, JSON.stringify(dataToStore)) - insertReposList(reposArray, USETIP) - }) - .catch(error => console.error('Error fetching data:', error)) - } - if (!document.querySelector('#view-user-repos')) { - - fetchReposWithCache(jsn.owner.login, reposApi, headers) - } - - } - - // Get parent element to append the size to - let parent = elem.parentElement - if (pageType === "repo") parent = elem.parentElement.parentElement - // Create the size container - let sizeContainer = parent.querySelector(`#mshll-repo-size`) - if (sizeContainer === null) { - sizeContainer = document.createElement("span") - sizeContainer.id = "mshll-repo-size" - sizeContainer.className = "tooltipped tooltipped-s" - sizeContainer.classList.add( - "Label", - "Label--info", - "v-align-middle", - "ml-1" - ) - sizeContainer.setAttribute("aria-label", "Repository size") - sizeContainer.innerText = "-" - // Create the size icon - let sizeSVG = document.createElementNS( - "http://www.w3.org/2000/svg", - "svg" - ) - sizeSVG.setAttribute("aria-hidden", "true") - sizeSVG.setAttribute("viewBox", "-4 -4 22 22") - sizeSVG.setAttribute("width", "16") - sizeSVG.setAttribute("height", "16") - sizeSVG.setAttribute("fill", "currentColor") - sizeSVG.setAttribute("data-view-component", "true") - sizeSVG.classList.add("octicon", "octicon-file-directory", "mr-1") - let sizeSVGPath = document.createElementNS( - "http://www.w3.org/2000/svg", - "path" - ) - sizeSVGPath.setAttribute("fill-rule", "evenodd") - sizeSVGPath.setAttribute( - "d", - "M1 3.5c0-.626.292-1.165.7-1.59.406-.422.956-.767 1.579-1.041C4.525.32 6.195 0 8 0c1.805 0 3.475.32 4.722.869.622.274 1.172.62 1.578 1.04.408.426.7.965.7 1.591v9c0 .626-.292 1.165-.7 1.59-.406.422-.956.767-1.579 1.041C11.476 15.68 9.806 16 8 16c-1.805 0-3.475-.32-4.721-.869-.623-.274-1.173-.62-1.579-1.04-.408-.426-.7-.965-.7-1.591Zm1.5 0c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 5.205 6.353 5.5 8 5.5c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55 0-.133-.058-.318-.282-.551-.227-.237-.591-.483-1.101-.707C11.102 1.795 9.647 1.5 8 1.5c-1.646 0-3.101.295-4.118.742-.508.224-.873.471-1.1.708-.224.232-.282.417-.282.55Zm0 4.5c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 9.705 6.353 10 8 10c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55V5.724c-.241.15-.503.286-.778.407C11.475 6.68 9.805 7 8 7c-1.805 0-3.475-.32-4.721-.869a6.15 6.15 0 0 1-.779-.407Zm0 2.225V12.5c0 .133.058.318.282.55.227.237.592.484 1.1.708 1.016.447 2.471.742 4.118.742 1.647 0 3.102-.295 4.117-.742.51-.224.874-.47 1.101-.707.224-.233.282-.418.282-.551v-2.275c-.241.15-.503.285-.778.406-1.247.549-2.917.869-4.722.869-1.805 0-3.475-.32-4.721-.869a6.327 6.327 0 0 1-.779-.406Z" - ) - sizeSVG.appendChild(sizeSVGPath) - const size = jsn.size * 1024 - const humanReadableSize = getHumanReadableSize(jsn.size) - // Insert the size into the size container - sizeContainer.innerHTML = `${humanReadableSize}` - sizeContainer.prepend(sizeSVG) - // Insert the size container into the DOM - if (pageType === "code_search") { - parent.style.direction = "ltr" - } - if (!size) { - sizeContainer.style.color = "red" - sizeContainer.style.border = "1px solid red" - } - parent.appendChild(sizeContainer) - } - - }) -} -window.addSizeToRepos = addSizeToRepos -// Add the size to the repos on the page -window.onload = function () { - //addSizeToRepos() -} -const selectors = [ - "#repository-container-header strong a", // 仓库详情界面 - 'div[data-testid="list-view-item-title-container"] h4 a', // ORG下的仓库列表 - "#user-repositories-list h3 a", // 用户资料页面的仓库TAB - "#user-starred-repos h3 a", // 用户资料页面的已星标仓库 - 'div[data-testid="results-list"] .search-title a', // 搜索 - // 'div[data-testid="results-list"] .search-title a' // 代码搜索 -] -document.addEventListener('DOMContentLoaded', () => { - main() - if (SECRET) { - waitForElement('#app_totp', false)// - .then(() => { - generateTOTP(SECRET).then(totp => { - const totpInput = document.querySelector("#app_totp") - const submitButton = totpInput.parentElement.querySelector("button[type='submit']") - totpInput.value = totp - submitButton.click() - }) - }) - .catch((error) => { - console.error(`totp发生了错误,找不到元素`) - }) - } -}) -/* document.addEventListener('turbo:load', () => { - addSizeToRepos() -}) */ //!SECTION-网络不顺畅时,加载太慢 -observeUrlChanges(main) -function main(delay = 0) { - Promise.race(selectors.map((selector) => waitForElement(selector))).then(() => { - setTimeout(() => { - addSizeToRepos() - }, delay) - }).catch((error) => { - console.error(error.message) - }) -} -function observeUrlChanges(callback, delay = 10) { - let lastUrl = location.href - const observer = new MutationObserver(() => { - const url = location.href - if (url !== lastUrl) { - lastUrl = url - setTimeout(() => { - callback() - }, delay) - } - }) - observer.observe(document, { subtree: true, childList: true }) - return observer -} -function waitForElement(selector, dis = true) { - return new Promise((resolve, reject) => { - const observer = new MutationObserver(() => { - if (document.querySelector(selector)) { - resolve() - observer.disconnect() - } - }) - if (dis) { - const timeout = setTimeout(() => { - observer.disconnect() - reject(new Error('超时:未找到指定元素')) - }, 10000) - } - observer.observe(document.body, { childList: true, subtree: true }) - }) -} - -function displayMessage(el) { - document - .querySelector("#js-repo-pjax-container") - .insertAdjacentElement("beforebegin", el) -} -function renderWarning(timediff) { - const banner = document.createElement("div") - banner.id = "zh-banner-warning" - banner.setAttribute( - "style", - ` - background-color: red; - height: 100px; - margin-bottom: 20px; - display: flex; - justify-content: center; - align-items: center; - color: white; - font-size: 36px; - position: relative; - ` - ) - banner.textContent = translate.renderWarning - const smallTag = document.createElement("div") - smallTag.setAttribute( - "style", - ` - position: absolute; - bottom: 0; - right: 0; - padding: 5px 10px; - font-size: 14px; - border-top-left-radius: 5px; - ` - ) - smallTag.textContent = timediff - banner.appendChild(smallTag) - displayMessage(banner) -} -function renderCaution(timediff) { - const banner = document.createElement("div") - banner.id = "zh-banner-warning" - banner.setAttribute( - "style", - ` - background-color: yellow; - height: 50px; - margin-bottom: 20px; - display: flex; - justify-content: center; - align-items: center; - font-size: 24px; - position: relative; - ` - ) - banner.textContent = translate.renderCaution - const smallTag = document.createElement("div") - smallTag.setAttribute( - "style", - ` - position: absolute; - bottom: 0; - right: 0; - padding: 5px 10px; - font-size: 14px; - border-top-left-radius: 5px; - ` - ) - smallTag.textContent = timediff - banner.appendChild(smallTag) - displayMessage(banner) -} -function checkCommitDate(datetimeString) { - if (document.querySelector("#zh-banner-warning")) return - const date = new Date(datetimeString) - const now = new Date() - const yearsDiff = now.getFullYear() - date.getFullYear() - const monthsDiff = now.getMonth() - date.getMonth() - const daysDiff = now.getDate() - date.getDate() - let adjustedMonths = monthsDiff - let adjustedDays = daysDiff - if (adjustedDays < 0) { - adjustedMonths-- - const lastMonth = new Date(now.getFullYear(), now.getMonth(), 0) - adjustedDays += lastMonth.getDate() - } - let finalYears = yearsDiff - if (adjustedMonths < 0) { - finalYears-- - adjustedMonths += 12 - } - let result = translate.timediff - if (finalYears === 0) { - result = result.replace(/{years}.*?(?={months})/, '') - } - result = result.replace('{years}', finalYears > 0 ? finalYears : '') - result = result.replace('{months}', adjustedMonths) - result = result.replace('{days}', adjustedDays) - const daysSinceLastCommit = (Date.now() - date.getTime()) / 1000 / 60 / 60 / 24 - if (daysSinceLastCommit > 365) { - renderWarning(result) - } else if (daysSinceLastCommit > 182.5) { - renderCaution(result) - } else { - /* noop */ - } -} -function insertReposList(links, tip = false) { - const gitHubStyle = ` -#view-user-repos { - order: 10; -} -#view-user-repos .dropdown-menu { - min-width: 170px; - width: auto; -} -#view-user-repos .dropdown-menu .dropdown-item .d-inline-flex { - vertical-align:sub; -}` - if (!document.head.querySelector('style[data-id="view-user-repos-css"]')) { - const globalStyle = document.createElement('style') - globalStyle.dataset.id = 'view-user-repos-css' - globalStyle.innerHTML = gitHubStyle - document.head.appendChild(globalStyle) - } - const selectors = [ - '.jxTzTd', // Repo main page - '.faNtbn .d-flex.gap-2', // Repo files page - '.gwHaUx .d-flex.gap-2' // Commits page - ] - //document.querySelector(selectors.join(', ')) - const existingButton = document.querySelector('.jxTzTd') - if (existingButton) { - const sortedLinks = links.sort((a, b) => {//!SECTION 排序 - // 首先比较 fork 下沉到数组的低端. - if (b.fork > 0 && a.fork <= 0) { - return -1 // a 在前 - } else if (a.fork > 0 && b.fork <= 0) { - return 1 // b 在前 - } else { - // 如果 fork 相同,比较 private - if (b.private === a.private) { - // 如果 private 相同,进一步判断 private 为 false 的情况 - if (!a.private && !b.private) { - return b.stargazers_count - a.stargazers_count // stargazers_count 大的在前 - } - return 0 // private 相同且不是 false 的情况下不排序 - } - return (b.private ? -1 : 1) // private 为 true 的在前 - } - }) - function getIconPath(link) { - var fillColor = null - if (link.private) fillColor = "green" - if (!link.private && !link.fork) fillColor = "red" - var svg = `` - if (fillColor) return svg - if (link.fork) return `` - } - let privateClassAdded = false - let forkClassAdded = false - const stats = { - privateTrue: 0, - privateFalse: 0, - forkTrue: 0, - forkFalse: 0, - } - const listItems = sortedLinks.map(link => { - stats.privateTrue += (link.private && !link.fork) ? 1 : 0 - stats.privateFalse += (link.private ? 0 : 1) && !link.fork ? 1 : 0 - stats.forkTrue += link.fork ? 1 : 0 - stats.forkFalse += link.fork ? 0 : 1 - let liClass = "" - if (link.private && !privateClassAdded) { - liClass += "border-top" - privateClassAdded = true - } - if (link.fork && !forkClassAdded) { - liClass += "border-top" - forkClassAdded = true - } - const starsAndForks = [ - link.stargazers_count > 0 ? `${translate.repoStars}${link.stargazers_count}` : '', - link.forks_count > 0 ? `${translate.repoForks}${link.forks_count}` : '' - ].filter(Boolean).join(' ') - const repoInfo = [ - (link.description ? `${translate.repoDes}${link.description}` : ''), - starsAndForks, - `${translate.repoSize}${getHumanReadableSize(link.size)}`, - link.language ? `${translate.repoLang}${link.language}` : '', - `${translate.repoCreated}${link.created_at}`, - `${translate.repoUpdated}${link.updated_at}`, - `${translate.repoPushed}${link.pushed_at}` - ].filter(Boolean).join('\n') - return ` -
  • - - - - ${getIconPath(link)} - - - ${link.name} - -
  • - ` - }).join('') - const ariaLabel = [ - ` ${translate.view}[${links[0].owner}]${translate.allRepos} `, - `${translate.allRepos} : ${sortedLinks.length}`, - stats.privateTrue > 0 ? `${translate.privateRepos} ${stats.privateTrue}` : '', - stats.privateFalse > 0 ? `${translate.publicRepos} ${stats.privateFalse}` : '', - stats.forkTrue > 0 ? `${translate.forkRepos} ${stats.forkTrue}` : '', - //stats.forkFalse > 0 ? `非分叉仓库: ${stats.forkFalse}` : '' - ].filter(Boolean).join('\n') - const detailsHTML = ` -
    - - - ${translate.view}[${links[0].owner}]${translate.allRepos} - - - - ${links[0].owner} - - - -
    - -
    -
    ` - - existingButton.insertAdjacentHTML('beforebegin', detailsHTML) - } else { - } -} -function isLoggedInUser(avatar_url) {//从返回的json判断 - const imgElement = document.querySelector(".AppHeader-user button span span img") - if (imgElement) { - const imgSrc = imgElement.src - return imgSrc === avatar_url - } else { - return false - } -} -function isLoggedInUser_f() {//NOTE - 比较仓库头像和登录头像中的ID - const imgElement = document.querySelector(".AppHeader-user button span span img") - const repoImgElement = document.querySelector("#repo-title-component > img") - if (imgElement && repoImgElement) { - const imgSrc = imgElement.src - const repoImgSrc = repoImgElement.src - - const userIdPattern = /\/u\/(\d+)/ - const imgUserIdMatch = imgSrc.match(userIdPattern) - const repoUserIdMatch = repoImgSrc.match(userIdPattern) - if (imgUserIdMatch && repoUserIdMatch) { - const imgUserId = imgUserIdMatch[1] - const repoUserId = repoUserIdMatch[1] - return imgUserId === repoUserId - } - } - return false -} -async function getUserRepos(href, header = {}) { - try { - const response = await fetch(`${href}`, { - headers: header, - }) - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`) - } - return await response.json() - } catch (error) { - console.error('Fetch error:', error) - throw error - } -} -async function getUserAllRepos(href, header = {}, getAll = false, maxPage = 0) { - try { - let allRepos = [] - let page = 1 - let perPage = 100 - do { - const url = getAll ? `${href}?per_page=${perPage}&page=${page}` : href//NOTE - false时,就获取前30个就行了 ,够用了 仓库没那么多,列表太长也不好。 - const response = await fetch(url, { headers: header }) - if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`) - const repos = await response.json() - if (repos.length === 0) break - allRepos = allRepos.concat(repos) - page++ - // 如果设定了最大页数并且已经达到了最大页数,结束战斗 - if (maxPage !== 0 && page > maxPage) break - } while (getAll) - return allRepos - } catch (error) { - console.error('Fetch error:', error) - throw error - } -} -function insertOssInsightButton(owner, repo, usePageHeadActions) { - if (document.getElementById('github-ossinsight')) return - const svgStr = ` -` - const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}` - const title = `${repo} ${translate.ossinsight}` - const el = usePageHeadActions - ? document.querySelector('.pagehead-actions') - : document.querySelector('#responsive-meta-container .d-flex.gap-2.mt-n3.mb-3.flex-wrap') - if (!el) { - console.log('github-ossinsight: 没有找到目标元素, 无法添加按钮') - return - } - const buttonHtml = `${svgStr}` - if (usePageHeadActions) { - el.insertAdjacentHTML('afterbegin', `
  • ${buttonHtml}
  • `) - } else { - el.insertAdjacentHTML('afterbegin', buttonHtml) - } -} -function insertActiveForks(owner, repo, usePageHeadActions) { - if (document.getElementById('github-active-forks')) return - const svgStr = `` - const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}` - const title = `${repo} ${translate.activeforks}` - const el = usePageHeadActions - ? document.querySelector('.pagehead-actions') - : document.querySelector('#responsive-meta-container .d-flex.gap-2.mt-n3.mb-3.flex-wrap') - if (!el) { - console.log('github-Active Forks: 没有找到目标元素, 无法添加按钮') - return - } - const buttonHtml = `
    ${svgStr} ${usePageHeadActions ? translate.activeforks_ : ""}
    ` - if (usePageHeadActions) { - el.insertAdjacentHTML('afterbegin', `
  • ${buttonHtml}
  • `) - } else { - el.insertAdjacentHTML('afterbegin', buttonHtml) - } -} - -function insertDelBtn(owner, repo, usePageHeadActions, cusClass = 'dialog-show-repo-delete-home', element) { - const svgStr = ` - -` - const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}` - const title = `[${repo}]\n ${translate.deleteRepo}` - if (element) { - var el = element - } else { - var el = usePageHeadActions - ? document.querySelector('.pagehead-actions') - : document.querySelector('#responsive-meta-container .d-flex.gap-2.mt-n3.mb-3.flex-wrap') - } - if (!el) { - console.log('github-Active Forks: 没有找到目标元素, 无法添加按钮') - return - } - if (el.querySelector(`#${cusClass}`)) return - const buttonHtml = `` - if (usePageHeadActions) { - el.insertAdjacentHTML('beforeend', `
  • ${buttonHtml}
  • `) - } else { - el.insertAdjacentHTML('beforeend', buttonHtml) - } - el.querySelector(`#${cusClass}`).addEventListener('click', function () { - showDeleteConfirmations(owner, repo) - }) -} -function showDeleteConfirmations(owner, repo, count = 3) { - const blacklist = ["ChinaGodMan/disk", "ChinaGodMan/LocalDev", "ChinaGodMan/Ebackup", "ChinaGodMan/portable-device", "ChinaGodMan/UserScripts"] - const repoIdentifier = `${owner}/${repo}` - if (blacklist.includes(repoIdentifier)) { - alert(`[${repoIdentifier}] 在黑名单中`) - return - } - for (let i = 0; i < count; i++) { - let confirmed = confirm(`${owner}:\n${translate.deleteRepo_i}[${repo}]\n${translate.deleteRepo}\n${translate.deleteRepo_ask} ${i + 1}/${count})`) - if (!confirmed) return - } - deleteRepository(owner, repo) -} -function deleteRepository(owner, repo) { - fetch(`https://api.github.com/repos/${owner}/${repo}`, { - method: 'DELETE', - headers: { - 'Authorization': `token ${TOKEN}`, - 'Accept': 'application/vnd.github.v3+json' - } - }) - .then(response => { - if (response.status === 204) { - alert(`"${repo}" ${translate.deleteRepo_pass}`) - location.reload() - } else { - alert(`"[${repo}]"\n${translate.deleteRepo_failed} ${translate.deleteRepo_failed_status}${response.status}`) - } - }) - .catch(error => { - alert(`An error occurred: ${error}`) - }) -} -//LINK - 帮助小子程序 -function getHumanReadableSize(sizeInKB) { - const sizes = ["B", "KB", "MB", "GB", "TB"] - const size = sizeInKB * 1024 - let i = parseInt(Math.floor(Math.log(size) / Math.log(1024))) - const humanReadableSize = (size / Math.pow(1024, i)).toFixed(1) + " " + sizes[i] - return humanReadableSize -} -function systemTime(isoString) { - const date = new Date(isoString) - return date.toLocaleString() -} -function timeToSeconds(timeStr) { - let hours = 0, minutes = 0, seconds = 0 - const hoursMatch = timeStr.match(/(\d+)h/) - const minutesMatch = timeStr.match(/(\d+)m/) - const secondsMatch = timeStr.match(/(\d+)s/) - if (hoursMatch) { - hours = parseInt(hoursMatch[1], 10) - } - if (minutesMatch) { - minutes = parseInt(minutesMatch[1], 10) - } - if (secondsMatch) { - seconds = parseInt(secondsMatch[1], 10) - } - let totalSeconds = (hours * 3600) + (minutes * 60) + seconds - return totalSeconds -} -function isMobileDevice() { - return /Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) -} diff --git a/Script details/github-repo-size-view/Change history/README.md b/github-repo-size-view/Change history/README.md similarity index 100% rename from Script details/github-repo-size-view/Change history/README.md rename to github-repo-size-view/Change history/README.md diff --git a/Script details/github-repo-size-view/README.md b/github-repo-size-view/README.md similarity index 56% rename from Script details/github-repo-size-view/README.md rename to github-repo-size-view/README.md index cb36e2ae5..b14bc09f2 100644 --- a/Script details/github-repo-size-view/README.md +++ b/github-repo-size-view/README.md @@ -1,3 +1,21 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + +
    @@ -26,11 +44,11 @@
    -

    🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠

    -

    「 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. 」

    +

    🤠 Github 增强小助手 仓库显示大小

    +

    「 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 」

    Views - -

    Download:Github | ⭐ +

    Download:Github | ⭐Greasy Fork

    更新记录

    🛠️ GitHub Repo Size+ 更新日志

    📅 2024/10/07 01:53 - Ver 0.1.3.7

    @@ -122,7 +140,7 @@

    📅 2024/8/1 03:43 - Ver 0.1.2

    修复: 修复在搜索页面失效的问题。
    修复: 修复查看其他仓库时不显示的问题(增加延时)。

    -
    +
    @@ -196,15 +214,16 @@ > ### 🔍你可能在找GitHub相关脚本 -> - [**GitHub提交信息显示HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 -> - [**GitHub文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub下载单文件和复制文件URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在Github查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 @@ -212,7 +231,7 @@ ## 感谢 -GitHub: 作者 **[zvizvi](https://github.com/zvizvi)** Chrome插件 [GitHub-Web-IDE](https://github.com/zvizvi/GitHub-Web-IDE)
    +GitHub: 作者 **[zvizvi](https://github.com/zvizvi)** Chrome插件 [GitHub-Web-IDE](https://github.com/zvizvi/GitHub-Web-IDE)
    作者 **[mshll](https://greasyfork.org/zh-CN/users/1010122)** 发布的脚本 [Github Repo Size](https://greasyfork.org/scripts/458048)
    作者 **[a1pha](https://greasyfork.org/zh-CN/users/1298296)** 发布的脚本 [Github 快捷查找活跃的 Forks 列表](https://greasyfork.org/zh-CN/scripts/494365)
    作者 **[lly-ke](https://greasyfork.org/zh-CN/users/902432)** 发布的脚本 [github-ossinsight](https://greasyfork.org/zh-CN/scripts/456878)
    @@ -220,7 +239,6 @@ GitHub: 作者 **[zvizvi](https://github.com/zvizvi)** Chrome插件 [GitHub-Web 作者 **[chen gang](https://greasyfork.org/zh-CN/users/720983)** 发布的脚本 [GitHub Delete Repositories](https://greasyfork.org/zh-CN/scripts/500173) - ## 使用帮助 @@ -235,91 +253,111 @@ GitHub: 作者 **[zvizvi](https://github.com/zvizvi)** Chrome插件 [GitHub-Web **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** -

    更多用户脚本 / -回到顶部↑

    - - - - - ### 查看所有发布脚本 + + + -> ### 🔍 你可能在找 ChatGPT 相关脚本 +> ### 🔍你可能在找ChatGPT相关脚本 > -> - [**ChatGPT 代码字体缩小**](https://greasyfork.org/scripts/505209): 让 ChatGPT 代码字体变小 -> - [**ChatGPT 聊天复制代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮 -> - [**ChatGPT 字符计数器**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。) -> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 自动折叠由你发送的长消息,节省屏幕空间。允许你设置聊天窗口的最大宽度,使得长消息不会超出指定范围。 +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + -> ### 🔍 你可能在找 网页相关脚本 +> ### 🔍你可能在找网页相关脚本 > -> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 禁止网页向剪辑版拉屎,绿色为放行,红色禁止,橙色临时方向 -> - [**解除 CSDN 登录复制限制**](https://greasyfork.org/scripts/505207): 去你妈的 CSDN 登录复制,无需登录即可复制代码框内容 -> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为网页上的表格所有列应用颜色渐变美化. -> - [**网页高亮关键字+(推荐)**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示 -> - [**高亮网页文本\_迷你版**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -> - [**小窗口预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果。 -> - [**去除链接下划线**](https://greasyfork.org/scripts/498625): 去除网页链接的下划线 -> - [**上下滚动小按钮**](https://greasyfork.org/scripts/497251): 页面右侧添加上下滚动按钮 -> - [**一键置顶和置底按钮**](https://greasyfork.org/scripts/500255): 修改自 Greasyfork 用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3 秒内无滚动自动停止 - +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + -> ### 🔍 你可能在找 GitHub 相关脚本 +> ### 🔍你可能在找GitHub相关脚本 > -> - [**GitHub 提交信息显示 HTML**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 -> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。 -> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在 “其他” 下 -> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在 GitHub 授权页面自动输入授权码与自动确认。 -> - [**GitHub 文件夹下载**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 -> - [**GitHub 下载单文件和复制文件 URL**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 -> - [**🤠 Github 增强小助手 仓库显示大小 不活跃开发警告 仓库内快捷跳转用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): 在 Github 查看仓库和搜索仓库时显示仓库大小 ,不活跃开发警告,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): 仓库列表文件排序方式改为日期降序,方便查看最新更新的文件。 - +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + -> ### 🔍 你可能在找 Google 相关脚本 +> ### 🔍你可能在找Google相关脚本 > -> - [**Google 高级搜索**](https://greasyfork.org/scripts/502652): 这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 -> - [**Google 搜索屏蔽指定站点**](https://greasyfork.org/scripts/500262): 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 自定义输入屏蔽站点。格式-zhihu -baidu 用于屏蔽谷歌搜索内容 +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + -> ### 🔍 你可能在找 GreasyFork 相关脚本 +> ### 🔍你可能在找GreasyFork相关脚本 > -> - [**GreasyFork 适用于增强**](https://greasyfork.org/scripts/497317): 脚本详情页增加适用于链接增加点击打开网页,复制网页,轮胎搜索 -> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用 Chart.js 获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -> - [**GreaysFork 增强 WebHook 同步设置**](https://greasyfork.org/scripts/506717): 这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏绍 -> - [**GreasyFork 显示脚本评分**](https://greasyfork.org/scripts/501119): 脚本列表添加评价分数 -> - [**GreasyFork 高级搜索**](https://greasyfork.org/scripts/505215): 使用谷歌搜索 GreasyFork 和 SleazyFork 上的脚本 -> - [**GreasyFork 导航栏增强**](https://greasyfork.org/scripts/501880): 增强 greasyfork 导航栏,增加用户列表,用户控制台等 -> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 增强 greasyfork,复制代码,脚本下载,精确时间到秒,主页清理,讨论一键举报,脚本列表跳转代码添加下载 美化查看代码显示代码引用文件,显示脚本图标,跳转成人脚本等等一些操作 -> - [**Greasyfork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 -> - [**Script Finder 油猴脚本查找器**](https://greasyfork.org/scripts/498904): Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本 - +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + -> ### 🔍 你可能在找 成人脚本 +> ### 🔍你可能在找成人脚本 > -> - [**MiSSAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MisssAV 状态,并且在未登录时自动登录 -> - [**MissAV 收藏管理器**](https://greasyfork.org/scripts/497682): miss 片单备份,支持下载图片保存视频信息.导出本地网页 支持导出到 webdav -> - [**TissAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 TissAV 状态,并且在未登录时自动登录 -> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + -> ### 🔍 你可能在找 自动翻译 +> ### 🔍你可能在找自动翻译 > -> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于 5 且翻译文本中不含中文,则替换为中文,需要可访问 google 的网络 -> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个 google 翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + -
    + + + +
    - + diff --git a/Script details/github-repo-size-view/README_en.md b/github-repo-size-view/README_en.md similarity index 55% rename from Script details/github-repo-size-view/README_en.md rename to github-repo-size-view/README_en.md index 1c1f261b9..613484ee6 100644 --- a/Script details/github-repo-size-view/README_en.md +++ b/github-repo-size-view/README_en.md @@ -1,10 +1,28 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + +
    @@ -26,11 +44,11 @@
    -

    🤠 Github Enhance assistant Warehouse display size Inactive development warning Quickly jump to the user’s other warehouses within the warehouse 🤠

    -

    「 existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,Quick jump within the warehouse. 」

    +

    🤠 Github enhanced assistant warehouse display size

    +

    「 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 」

    Views - -

    Download:Github | ⭐ +

    Download:Github | ⭐Greasy Fork

    Update record

    🛠️ GitHub Repo Size+ Change log

    📅 2024/10/07 01:53 - Ver 0.1.3.7

    @@ -122,7 +140,7 @@

    📅 2024/8/1 03:43 - Ver 0.1.2

    repair: Fix the problem of invalid search page。
    repair: Fixed the issue of not displaying when viewing other warehouses(increase delay)。

    -
    +
    @@ -194,23 +212,25 @@ This token will be used to pass Github API Authenticate。 -> ### 🔍you may be looking forGitHubRelated scripts -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down -> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubAutomatically enter the authorization code and confirm automatically on the authorization page。 -> - [**GitHubfolder下载**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub 文件夹。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouse用户其他仓库 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,仓库内快捷跳转. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 - +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 ## Thanks -GitHub: Author **[zvizvi](https://github.com/zvizvi)** Chrome extension [GitHub-Web-IDE](https://github.com/zvizvi/GitHub-Web-IDE)
    + +GitHub: Author **[zvizvi](https://github.com/zvizvi)** Chrome extension [GitHub-Web-IDE](https://github.com/zvizvi/GitHub-Web-IDE)
    Author **[mshll](https://greasyfork.org/zh-CN/users/1010122)** Published Script [Github Repo Size](https://greasyfork.org/scripts/458048)
    Author **[a1pha](https://greasyfork.org/zh-CN/users/1298296)** Published Script [Github Quickly find active Forks list](https://greasyfork.org/zh-CN/scripts/494365)
    Author **[lly-ke](https://greasyfork.org/zh-CN/users/902432)** Published Script [github-ossinsight](https://greasyfork.org/zh-CN/scripts/456878)
    @@ -218,7 +238,6 @@ Author **[Zach Hardesty](https://greasyfork.org/zh-CN/users/371100)** Published Author **[chen gang](https://greasyfork.org/zh-CN/users/720983)** Published Script [GitHub Delete Repositories](https://greasyfork.org/zh-CN/scripts/500173) - ## Help @@ -233,91 +252,111 @@ Recommended browsers and script managers: **If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** -

    More user scripts / -back to top↑

    - - - - - ### View all publish scripts + + + -> ### 🔍you may be looking for ChatGPTRelated scripts +> ### 🔍you may be looking forChatGPTRelated scripts > -> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): let ChatGPT Code font size becomes smaller -> - [**ChatGPT chatCopy codebutton**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button -> - [**ChatGPT character counter**](https://greasyfork.org/scripts/506166): add onecharactersCounter to input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) -> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): Automatically collapse long messages sent by you,Save screen space。Allows you to set the maximum width of the chat window,Keep long messages from exceeding the specified range。 +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + -> ### 🔍you may be looking for Web related scripts +> ### 🔍You may be looking for web related scripts > -> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Ban web pages from pooping on edited versions,green for release,red ban,orange temporary directions -> - [**LiftCSDNLoginCopylimit**](https://greasyfork.org/scripts/505207): fuck you CSDN LoginCopy,Copy code box content without logging in -> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradient beautification to all columns of tables on web pages. -> - [**Highlight keywords on web pages+(recommend)**](https://greasyfork.org/scripts/498906): Highlight text on web pages -> - [**Highlight web text_mini version**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll > - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove underline from web links -> - [**Small scroll button up and down**](https://greasyfork.org/scripts/497251): Add up and down scroll buttons on the right side of the page -> - [**One-touch top and bottom buttons**](https://greasyfork.org/scripts/500255): Modified fromGreasyforkuser script Add top and bottom buttons to web pages,Facilitates quick movement to the top or bottom of long pages。 Added button color change when scrolling down,3Automatically stops if there is no scrolling within seconds +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + -> ### 🔍you may be looking for GitHubRelated scripts +> ### 🔍你可能在找GitHub相关脚本 > -> - [**GitHubSubmit information displayHTML**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 -> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。 -> - [**Github List of code languages ​​show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages ​​on the repository,Show each language,Instead of hiding small parts in “other” Down +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down > - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 -> - [**GitHubfolderdownload**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 -> - [**GitHubDownload single files and copy filesURL**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files -> - [**🤠 Github Enhance assistant Warehouse display size Inactive development warning Quick jump within the warehouseUser’s other warehouses 🤠**](https://greasyfork.org/scripts/502291): existGithubShow warehouse size when viewing and searching warehouses ,Inactive development warning,Quick jump within the warehouse. -> - [**GitHub Sort by Date**](https://greasyfork.org/scripts/505218): Change the sorting method of warehouse list files to descending date order,Conveniently view the latest updated files。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + -> ### 🔍you may be looking for GoogleRelated scripts +> ### 🔍you may be looking forGoogleRelated scripts > -> - [**Google Advanced search**](https://greasyfork.org/scripts/502652): This is a for Google Add user script for advanced search form。It adds a hideable advanced search form at the top of the page,Enable you to search for information more precisely。 -> - [**Google Search and block specific sites**](https://greasyfork.org/scripts/500262): Block specific sites from search engine results,Help users filter out unwanted search results。 Custom input blocking site。Format-zhihu -baidu Used to block Google search content +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + -> ### 🔍you may be looking for GreasyForkRelated scripts +> ### 🔍you may be looking forGreasyForkRelated scripts > -> - [**GreasyForksuitable for enhancement**](https://greasyfork.org/scripts/497317): The script details page is added. It is suitable for links to be added. Click to open the web page.,Copy web page,tire search +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt > - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -> - [**GreaysFork Enhance WebHookSync settings**](https://greasyfork.org/scripts/506717): This script can help you quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 -> - [**GreasyFork Markdown toobar**](https://greasyfork.org/scripts/505164): Used by default in forums Markdown Format,Add format help link and Markdown Toolbar introduction -> - [**GreasyFork Show script ratings**](https://greasyfork.org/scripts/501119): Add evaluation scores to script list -> - [**GreasyFork Advanced search**](https://greasyfork.org/scripts/505215): Search using Google GreasyFork and SleazyFork upper script -> - [**GreasyFork Navigation barEnhance**](https://greasyfork.org/scripts/501880): EnhancegreasyforkNavigation bar,Add user list,User console etc. -> - [**GreasyforkGlue craftsman**](https://greasyfork.org/scripts/497346): Enhancegreasyfork,Copy code,Script download,Precise time to seconds,Home page cleanup,Discuss one-click reporting,Script list jump code added download Beautify view code and display code reference files,show script icon,Jump to adult scripts and other operations -> - [**Greasyfork Notification assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 -> - [**Script FinderGrease Monkey Script Finder**](https://greasyfork.org/scripts/498904): Script Finder is a user script(userscript),It helps you find and manage userscripts on any website - +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + -> ### 🔍you may be looking for adult script +> ### 🔍You may be looking for adult scripts > -> - [**MiSSAVAutomatic login**](https://greasyfork.org/scripts/505325): Detection MisssAV state,and automatically log in when not logged in -> - [**MissAVCollection manager**](https://greasyfork.org/scripts/497682): missPlaylist backup,Support downloading pictures and saving video information.Export local web page Support export towebdav -> - [**TissAVAutomatic login**](https://greasyfork.org/scripts/506528): Detection TissAV state,and automatically log in when not logged in -> - [**JableTVAutomatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + -> ### 🔍you may be looking for automatic translation +> ### 🔍You may be looking for automatic translation > -> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than 5 And the translated text does not contain Chinese,then replace it with Chinese,Need to be accessiblegooglenetwork -> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add a google Translate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + -
    + + + +
    - + diff --git a/Script details/github-repo-size-view/github-repo-size-view.user.js b/github-repo-size-view/github-repo-size-view.user.js similarity index 85% rename from Script details/github-repo-size-view/github-repo-size-view.user.js rename to github-repo-size-view/github-repo-size-view.user.js index 75fc33a37..eabb9a181 100644 --- a/Script details/github-repo-size-view/github-repo-size-view.user.js +++ b/github-repo-size-view/github-repo-size-view.user.js @@ -10,7 +10,7 @@ // @name:cs 🤠 Velikost displeje vylepšeného asistenta ve skladu Github // @description:cs 🤠 Velikost zobrazení skladu: Na GitHubu pro vyhledávání kódu, hledání skladu, stránku výdeje, seznam skladů uživatelů a stránku úložiště se velikost skladu zobrazí vedle názvu skladu, což uživatelům umožňuje rychle pochopit rozsah skladu a optimalizovat výběr. Upozornění na neaktivní vývoj: Pokud úložiště nebylo aktualizováno v posledních šesti měsících, systém přidá výzvu v horní části úložiště, která uživatelům připomene, že úložiště je neaktivní, a zobrazí čas poslední aktualizace. To pomáhá uživatelům určit aktivitu a stav údržby skladu. Rychlý skok ve skladu: Při procházení skladu může uživatel snadno zobrazit seznam všech skladů uživatele, což poskytuje vstup pro rychlý skok do různých skladů. Uživatelé mohou rychle najít další zajímavé projekty a získat k nim přístup, což zvyšuje efektivitu práce. Scénáře použití: Vývojáři: Zobrazením velikosti skladu a aktivních varování můžete rychle odfiltrovat vhodné knihovny pro vývoj a vyhnout se používání projektů, které již nejsou udržovány. Project Manager: Díky funkci rychlého skoku je snadné spravovat a koordinovat více projektů a zlepšit efektivitu práce. Studenti: Když se učí nové technologie, mohou snadněji najít relevantní open source projekty a rychle zkontrolovat aktivitu a rozsah projektů. 🤠 // @name:da 🤠 Github forbedret assistentlagerdisplaystørrelse -// @description:da 🤠 Lagervisningsstørrelse: På GitHubs kodesøgning, lagersøgning, problemside, brugerlagerliste og lagerside vil størrelsen af ​​lageret blive vist ved siden af ​​lagernavnet, hvilket giver brugerne mulighed for hurtigt at forstå lagerets skala og optimere deres lager. udvælgelse. Advarsel om inaktiv udvikling: Hvis et lager ikke er blevet opdateret inden for de seneste seks måneder, vil systemet tilføje en prompt øverst i lageret for at minde brugerne om, at lageret er inaktivt og vise tidspunktet for den sidste opdatering. Dette hjælper brugerne med at bestemme aktiviteten og vedligeholdelsesstatus for lageret. Hurtigt hop inden for lageret: Når brugeren gennemser lageret, kan brugeren nemt se listen over alle varehuse for brugeren, hvilket giver en adgang til hurtigt at hoppe til forskellige varehuse. Brugere kan hurtigt finde og få adgang til andre projekter af interesse, hvilket forbedrer arbejdseffektiviteten. Brugsscenarier: Udviklere: Ved at vise lagerstørrelsen og aktive advarsler kan du hurtigt filtrere egnede biblioteker fra til udvikling og undgå at bruge projekter, der ikke længere vedligeholdes. Projektleder: Gennem quick jump-funktionen er det nemt at administrere og koordinere flere projekter og forbedre arbejdseffektiviteten. Elever: Når de lærer nye teknologier, kan de nemmere finde relevante open source-projekter og hurtigt tjekke projekternes aktivitet og omfang. 🤠 +// @description:da 🤠 Lagervisningsstørrelse: På GitHubs kodesøgning, lagersøgning, problemside, brugerlagerliste og lagerside vil størrelsen af lageret blive vist ved siden af lagernavnet, hvilket giver brugerne mulighed for hurtigt at forstå lagerets skala og optimere deres lager. udvælgelse. Advarsel om inaktiv udvikling: Hvis et lager ikke er blevet opdateret inden for de seneste seks måneder, vil systemet tilføje en prompt øverst i lageret for at minde brugerne om, at lageret er inaktivt og vise tidspunktet for den sidste opdatering. Dette hjælper brugerne med at bestemme aktiviteten og vedligeholdelsesstatus for lageret. Hurtigt hop inden for lageret: Når brugeren gennemser lageret, kan brugeren nemt se listen over alle varehuse for brugeren, hvilket giver en adgang til hurtigt at hoppe til forskellige varehuse. Brugere kan hurtigt finde og få adgang til andre projekter af interesse, hvilket forbedrer arbejdseffektiviteten. Brugsscenarier: Udviklere: Ved at vise lagerstørrelsen og aktive advarsler kan du hurtigt filtrere egnede biblioteker fra til udvikling og undgå at bruge projekter, der ikke længere vedligeholdes. Projektleder: Gennem quick jump-funktionen er det nemt at administrere og koordinere flere projekter og forbedre arbejdseffektiviteten. Elever: Når de lærer nye teknologier, kan de nemmere finde relevante open source-projekter og hurtigt tjekke projekternes aktivitet og omfang. 🤠 // @name:de 🤠 Github hat die Anzeigegröße des Assistentenlagers verbessert // @description:de 🤠 Lageranzeigegröße: Auf GitHubs Codesuche, Lagersuche, Problemseite, Benutzerlagerliste und Repository-Seite wird die Größe des Lagers neben dem Lagernamen angezeigt, sodass Benutzer die Größe des Lagers schnell verstehen und optimieren können Auswahl. Warnung bei inaktiver Entwicklung: Wenn ein Repository in den letzten sechs Monaten nicht aktualisiert wurde, fügt das System oben im Repository eine Eingabeaufforderung hinzu, um Benutzer daran zu erinnern, dass das Repository inaktiv ist, und zeigt den Zeitpunkt der letzten Aktualisierung an. Dadurch können Benutzer den Aktivitäts- und Wartungsstatus des Lagers ermitteln. Schneller Sprung innerhalb des Lagers: Beim Durchsuchen des Lagers kann der Benutzer problemlos die Liste aller Lager des Benutzers anzeigen und so schnell zu verschiedenen Lagern springen. Benutzer können andere interessante Projekte schnell finden und darauf zugreifen und so die Arbeitseffizienz verbessern. Nutzungsszenarien: Entwickler: Durch die Anzeige der Warehouse-Größe und aktiver Warnungen können Sie schnell geeignete Bibliotheken für die Entwicklung herausfiltern und die Verwendung nicht mehr gepflegter Projekte vermeiden. Projektmanager: Durch die Schnellsprungfunktion ist es einfach, mehrere Projekte zu verwalten und zu koordinieren und die Arbeitseffizienz zu verbessern. Lernende: Beim Erlernen neuer Technologien können sie relevante Open-Source-Projekte leichter finden und die Aktivität und den Umfang der Projekte schneller überprüfen. 🤠 // @name:el 🤠 Βελτιωμένο μέγεθος οθόνης αποθήκης βοηθού Github @@ -36,13 +36,13 @@ // @name:it 🤠 Github ha migliorato le dimensioni di visualizzazione del magazzino dell’assistente // @description:it 🤠 Dimensioni di visualizzazione del magazzino: nella ricerca del codice di GitHub, nella ricerca del magazzino, nella pagina dei problemi, nell’elenco dei magazzini degli utenti e nella pagina del repository, la dimensione del magazzino verrà visualizzata accanto al nome del magazzino, consentendo agli utenti di comprendere rapidamente le dimensioni del magazzino e ottimizzare la propria selezione. Avviso di sviluppo inattivo: se un repository non è stato aggiornato negli ultimi sei mesi, il sistema aggiungerà un messaggio nella parte superiore del repository per ricordare agli utenti che il repository è inattivo e visualizzerà l’ora dell’ultimo aggiornamento. Ciò aiuta gli utenti a determinare lo stato di attività e di manutenzione del magazzino. Salto rapido all’interno del magazzino: Durante la navigazione nel magazzino, l’utente può facilmente visualizzare l’elenco di tutti i magazzini dell’utente, fornendo un ingresso per passare rapidamente a diversi magazzini. Gli utenti possono trovare e accedere rapidamente ad altri progetti di interesse, migliorando l’efficienza del lavoro. Scenari di utilizzo: Sviluppatori: visualizzando le dimensioni del magazzino e gli avvisi attivi, è possibile filtrare rapidamente le librerie adatte per lo sviluppo ed evitare di utilizzare progetti che non vengono più gestiti. Project Manager: attraverso la funzione di salto rapido, è facile gestire e coordinare più progetti e migliorare l’efficienza del lavoro. Studenti: quando apprendono nuove tecnologie, possono trovare più facilmente progetti open source rilevanti e verificare rapidamente l’attività e la portata dei progetti. 🤠 // @name:ja 🤠 Github の強化されたアシスタント ウェアハウスの表示サイズ -// @description:ja 🤠 ウェアハウスの表示サイズ: GitHub のコード検索、ウェアハウス検索、問題ページ、ユーザー ウェアハウス リスト、およびリポジトリ ページでは、ウェアハウスのサイズがウェアハウス名の横に表示されるため、ユーザーはウェアハウスの規模をすぐに理解し、ウェアハウスの最適化を行うことができます。選択。非アクティブな開発の警告: 過去 6 か月間リポジトリが更新されていない場合、システムはリポジトリの上部にプロンプ​​トを追加して、リポジトリが非アクティブであることをユーザーに通知し、最終更新時刻を表示します。これは、ユーザーが倉庫のアクティビティとメンテナンスのステータスを判断するのに役立ちます。倉庫内でのクイック ジャンプ: 倉庫を閲覧するときに、ユーザーはユーザーのすべての倉庫のリストを簡単に表示でき、別の倉庫にすばやくジャンプするための入り口を提供します。ユーザーは興味のある他のプロジェクトをすぐに見つけてアクセスできるため、作業効率が向上します。使用シナリオ: 開発者: ウェアハウスのサイズとアクティブな警告を表示することで、開発に適したライブラリを迅速に除外し、維持されなくなったプロジェクトの使用を避けることができます。プロジェクトマネージャー: クイックジャンプ機能により、複数のプロジェクトの管理と調整が容易になり、作業効率が向上します。学習者: 新しいテクノロジーを学習するときに、関連するオープンソース プロジェクトをより簡単に見つけて、プロジェクトのアクティビティと規模をすばやく確認できるようになります。 🤠 +// @description:ja 🤠 ウェアハウスの表示サイズ: GitHub のコード検索、ウェアハウス検索、問題ページ、ユーザー ウェアハウス リスト、およびリポジトリ ページでは、ウェアハウスのサイズがウェアハウス名の横に表示されるため、ユーザーはウェアハウスの規模をすぐに理解し、ウェアハウスの最適化を行うことができます。選択。非アクティブな開発の警告: 過去 6 か月間リポジトリが更新されていない場合、システムはリポジトリの上部にプロンプトを追加して、リポジトリが非アクティブであることをユーザーに通知し、最終更新時刻を表示します。これは、ユーザーが倉庫のアクティビティとメンテナンスのステータスを判断するのに役立ちます。倉庫内でのクイック ジャンプ: 倉庫を閲覧するときに、ユーザーはユーザーのすべての倉庫のリストを簡単に表示でき、別の倉庫にすばやくジャンプするための入り口を提供します。ユーザーは興味のある他のプロジェクトをすぐに見つけてアクセスできるため、作業効率が向上します。使用シナリオ: 開発者: ウェアハウスのサイズとアクティブな警告を表示することで、開発に適したライブラリを迅速に除外し、維持されなくなったプロジェクトの使用を避けることができます。プロジェクトマネージャー: クイックジャンプ機能により、複数のプロジェクトの管理と調整が容易になり、作業効率が向上します。学習者: 新しいテクノロジーを学習するときに、関連するオープンソース プロジェクトをより簡単に見つけて、プロジェクトのアクティビティと規模をすばやく確認できるようになります。 🤠 // @name:ka 🤠 Github გაუმჯობესებული ასისტენტის საწყობის ჩვენების ზომა // @description:ka 🤠 საწყობის ჩვენების ზომა: GitHub-ის კოდის ძიებაში, საწყობის ძიებაში, გამოშვების გვერდზე, მომხმარებელთა საწყობის სიაში და საცავის გვერდზე, საწყობის ზომა გამოჩნდება საწყობის სახელის გვერდით, რაც მომხმარებლებს საშუალებას მისცემს სწრაფად გაიგონ საწყობის მასშტაბები და ოპტიმიზაცია გაუკეთონ მათ. შერჩევა. არააქტიური განვითარების გაფრთხილება: თუ საცავი არ განახლებულა ბოლო ექვსი თვის განმავლობაში, სისტემა დაამატებს მოთხოვნას საცავის ზედა ნაწილში, რათა შეახსენოს მომხმარებლებს, რომ საცავი არააქტიურია და აჩვენებს ბოლო განახლების დროს. ეს ეხმარება მომხმარებლებს განსაზღვრონ საწყობის აქტივობა და ტექნიკური მდგომარეობა. სწრაფი გადახტომა საწყობში: საწყობის დათვალიერებისას მომხმარებელს შეუძლია ადვილად ნახოს მომხმარებლის ყველა საწყობის სია, რაც უზრუნველყოფს შესასვლელს სხვადასხვა საწყობში სწრაფად გადახტომისთვის. მომხმარებლებს შეუძლიათ სწრაფად იპოვონ და მიიღონ წვდომა სხვა საინტერესო პროექტებზე, რაც აუმჯობესებს მუშაობის ეფექტურობას. გამოყენების სცენარები: დეველოპერები: საწყობის ზომისა და აქტიური გაფრთხილებების ჩვენებით, შეგიძლიათ სწრაფად გაფილტროთ განვითარებისთვის შესაფერისი ბიბლიოთეკები და თავიდან აიცილოთ ისეთი პროექტების გამოყენება, რომლებიც აღარ არის შენახული. პროექტის მენეჯერი: სწრაფი ნახტომის ფუნქციის საშუალებით, ადვილია მრავალი პროექტის მართვა და კოორდინაცია და მუშაობის ეფექტურობის გაუმჯობესება. მოსწავლეები: ახალი ტექნოლოგიების შესწავლისას, მათ შეუძლიათ უფრო ადვილად იპოვონ შესაბამისი ღია კოდის პროექტები და სწრაფად შეამოწმონ პროექტების აქტივობა და მასშტაბები. 🤠 // @name:ko 🤠 Github 향상된 보조 창고 디스플레이 크기 -// @description:ko 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 ​​옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 +// @description:ko 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 // @name:nl 🤠 Github verbeterde weergavegrootte assistent-magazijn -// @description:nl 🤠 Weergavegrootte magazijn: op GitHub’s codezoekopdracht, magazijnzoekopdracht, probleempagina, gebruikersmagazijnlijst en repositorypagina wordt de grootte van het magazijn weergegeven naast de magazijnnaam, zodat gebruikers snel de schaal van het magazijn kunnen begrijpen en hun magazijn kunnen optimaliseren selectie. Waarschuwing voor inactieve ontwikkeling: Als een repository de afgelopen zes maanden niet is bijgewerkt, voegt het systeem een ​​prompt toe bovenaan de repository om gebruikers eraan te herinneren dat de repository inactief is en wordt het tijdstip van de laatste update weergegeven. Dit helpt gebruikers bij het bepalen van de activiteit en onderhoudsstatus van het magazijn. Snelle sprong binnen het magazijn: Tijdens het bladeren door het magazijn kan de gebruiker eenvoudig de lijst met alle magazijnen van de gebruiker bekijken, waardoor hij toegang krijgt om snel naar verschillende magazijnen te springen. Gebruikers kunnen snel andere interessante projecten vinden en openen, waardoor de werkefficiëntie wordt verbeterd. Gebruiksscenario’s: Ontwikkelaars: door de magazijngrootte en actieve waarschuwingen weer te geven, kunt u snel geschikte bibliotheken voor ontwikkeling filteren en voorkomen dat u projecten gebruikt die niet langer worden onderhouden. Projectmanager: Via de Quick Jump-functie is het eenvoudig om meerdere projecten te beheren en te coördineren en de werkefficiëntie te verbeteren. Leerlingen: wanneer ze nieuwe technologieën leren, kunnen ze gemakkelijker relevante open source-projecten vinden en snel de activiteit en schaal van de projecten controleren. 🤠 +// @description:nl 🤠 Weergavegrootte magazijn: op GitHub’s codezoekopdracht, magazijnzoekopdracht, probleempagina, gebruikersmagazijnlijst en repositorypagina wordt de grootte van het magazijn weergegeven naast de magazijnnaam, zodat gebruikers snel de schaal van het magazijn kunnen begrijpen en hun magazijn kunnen optimaliseren selectie. Waarschuwing voor inactieve ontwikkeling: Als een repository de afgelopen zes maanden niet is bijgewerkt, voegt het systeem een prompt toe bovenaan de repository om gebruikers eraan te herinneren dat de repository inactief is en wordt het tijdstip van de laatste update weergegeven. Dit helpt gebruikers bij het bepalen van de activiteit en onderhoudsstatus van het magazijn. Snelle sprong binnen het magazijn: Tijdens het bladeren door het magazijn kan de gebruiker eenvoudig de lijst met alle magazijnen van de gebruiker bekijken, waardoor hij toegang krijgt om snel naar verschillende magazijnen te springen. Gebruikers kunnen snel andere interessante projecten vinden en openen, waardoor de werkefficiëntie wordt verbeterd. Gebruiksscenario’s: Ontwikkelaars: door de magazijngrootte en actieve waarschuwingen weer te geven, kunt u snel geschikte bibliotheken voor ontwikkeling filteren en voorkomen dat u projecten gebruikt die niet langer worden onderhouden. Projectmanager: Via de Quick Jump-functie is het eenvoudig om meerdere projecten te beheren en te coördineren en de werkefficiëntie te verbeteren. Leerlingen: wanneer ze nieuwe technologieën leren, kunnen ze gemakkelijker relevante open source-projecten vinden en snel de activiteit en schaal van de projecten controleren. 🤠 // @name:nb 🤠 Github forbedret assistentlagervisningsstørrelse // @description:nb 🤠 Lagervisningsstørrelse: På GitHubs kodesøk, lagersøk, problemside, brukerlagerliste og lagerside vil størrelsen på lageret vises ved siden av lagernavnet, slik at brukerne raskt kan forstå omfanget av lageret og optimere deres lager. utvalg. Advarsel om inaktiv utvikling: Hvis et depot ikke har blitt oppdatert i løpet av de siste seks månedene, vil systemet legge til en melding øverst i depotet for å minne brukere om at depotet er inaktivt og vise tidspunktet for siste oppdatering. Dette hjelper brukere med å bestemme aktiviteten og vedlikeholdsstatusen til lageret. Hurtighopp innenfor lageret: Når brukeren blar gjennom lageret, kan brukeren enkelt se listen over alle varehusene til brukeren, noe som gir en inngang for raskt å hoppe til forskjellige varehus. Brukere kan raskt finne og få tilgang til andre prosjekter av interesse, noe som forbedrer arbeidseffektiviteten. Bruksscenarier: Utviklere: Ved å vise lagerstørrelsen og aktive advarsler kan du raskt filtrere ut passende biblioteker for utvikling og unngå å bruke prosjekter som ikke lenger vedlikeholdes. Prosjektleder: Gjennom hurtighoppfunksjonen er det enkelt å administrere og koordinere flere prosjekter og forbedre arbeidseffektiviteten. Elever: Når de lærer nye teknologier, kan de lettere finne relevante åpen kildekode-prosjekter og raskt sjekke aktiviteten og omfanget av prosjektene. 🤠 // @name:pl 🤠 Zwiększony rozmiar wyświetlacza magazynu asystenta Githuba @@ -81,7 +81,7 @@ // @description:fr-CA 🤠 Taille d’affichage de l’entrepôt : sur la recherche de code, la recherche d’entrepôt, la page de problèmes, la liste d’entrepôts d’utilisateurs et la page de référentiel de GitHub, la taille de l’entrepôt sera affichée à côté du nom de l’entrepôt, permettant aux utilisateurs de comprendre rapidement l’échelle de l’entrepôt et d’optimiser leur sélection. Avertissement de développement inactif : si un référentiel n’a pas été mis à jour au cours des six derniers mois, le système ajoutera une invite en haut du référentiel pour rappeler aux utilisateurs que le référentiel est inactif et affichera l’heure de la dernière mise à jour. Cela aide les utilisateurs à déterminer l’activité et l’état de maintenance de l’entrepôt. Saut rapide dans l’entrepôt : lors de la navigation dans l’entrepôt, l’utilisateur peut facilement consulter la liste de tous les entrepôts de l’utilisateur, offrant ainsi une entrée pour accéder rapidement à différents entrepôts. Les utilisateurs peuvent trouver et accéder rapidement à d’autres projets d’intérêt, améliorant ainsi l’efficacité du travail. Scénarios d’utilisation : Développeurs : en affichant la taille de l’entrepôt et les avertissements actifs, vous pouvez rapidement filtrer les bibliothèques appropriées pour le développement et éviter d’utiliser des projets qui ne sont plus maintenus. Gestionnaire de projet : grâce à la fonction de saut rapide, il est facile de gérer et de coordonner plusieurs projets et d’améliorer l’efficacité du travail. Apprenants : lorsqu’ils apprennent de nouvelles technologies, ils peuvent plus facilement trouver des projets open source pertinents et vérifier rapidement l’activité et l’ampleur des projets. 🤠 // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.1.3.7 -// @author mshll & 人民的勤务员 +// @author mshll & 人民的勤务员 // @match https://github.com/* // @grant none // @run-at document-start @@ -101,179 +101,178 @@ // @downloadURL https://update.greasyfork.org/scripts/502291/Github%20Repo%20Size%2B.user.js // @updateURL https://update.greasyfork.org/scripts/502291/Github%20Repo%20Size%2B.meta.js // ==/UserScript== -"use strict" +'use strict' const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || - "en" + 'en' const translations = { en: { - save: "Save", - cancel: "Cancel", - modaltitle: "Set GitHub Token", + save: 'Save', + cancel: 'Cancel', + modaltitle: 'Set GitHub Token', description: 'Enter your GitHub personal access token with "repo" scope.', - githubtokeninput: "Enter your GitHub personal access token", - newtoken: "Click here to create a new token", - warncheckbox: " Inactive Development Warning", - menu: "Set GitHub Token", - renderWarning: "WARNING: repo has not received an update in 1+ year(s)", - renderCaution: "Caution: repo has not received an update in 6+ months", - confirm: "You have not entered a Token, confirm to clear the GitHub Token?", - timediff: "Last commit was: {years} years, {months} months, {days} days ago ", - view: "View[", - allRepos: "]All repositories", - newTab: "Open in a new tab when quickly viewing repositories", - repoSize: "Repository size:", - repoDes: "Repository description:", - repoLang: "Primary language:", - repoCreated: "Initial creation time:", - repoUpdated: "Last updated:", - repoPushed: "Last pushed:", - repoForks: "Forks:", - repoStars: "Stars:", - ossinsight: "OSS Insight analysis page for the repository", - activeforks: "Active forks list for the repository", - activeforks_: "Active forks", - publicRepos: "Public repositories: ", - privateRepos: "Private repositories: ", - forkRepos: "Forked repositories: ", - deleteRepo_i: "You are trying to delete the repository:", - deleteRepo: "ChinaGodMan reminds you:\nDeleting a repository is an extremely dangerous operation.\nOnce you delete a repository, it cannot be recovered.\nPlease think twice! Data is priceless, cherish it.", - deleteRepo_ask: "Are you sure you want to delete the repository? (Confirmed", - deleteRepo_pass: "Deletion successful!", - deleteRepo_failed: "Deletion failed!\nIt is recommended to check whether the GitHub token has permission to delete the repository!", - deleteRepo_failed_status: "Status code:", - deleteRepo_btn: "Delete repository", - secret: "[Optional:] Enter your two-factor key for automatic input during GitHub's two-step verification.", + githubtokeninput: 'Enter your GitHub personal access token', + newtoken: 'Click here to create a new token', + warncheckbox: ' Inactive Development Warning', + menu: 'Set GitHub Token', + renderWarning: 'WARNING: repo has not received an update in 1+ year(s)', + renderCaution: 'Caution: repo has not received an update in 6+ months', + confirm: 'You have not entered a Token, confirm to clear the GitHub Token?', + timediff: 'Last commit was: {years} years, {months} months, {days} days ago ', + view: 'View[', + allRepos: ']All repositories', + newTab: 'Open in a new tab when quickly viewing repositories', + repoSize: 'Repository size:', + repoDes: 'Repository description:', + repoLang: 'Primary language:', + repoCreated: 'Initial creation time:', + repoUpdated: 'Last updated:', + repoPushed: 'Last pushed:', + repoForks: 'Forks:', + repoStars: 'Stars:', + ossinsight: 'OSS Insight analysis page for the repository', + activeforks: 'Active forks list for the repository', + activeforks_: 'Active forks', + publicRepos: 'Public repositories: ', + privateRepos: 'Private repositories: ', + forkRepos: 'Forked repositories: ', + deleteRepo_i: 'You are trying to delete the repository:', + deleteRepo: 'ChinaGodMan reminds you:\nDeleting a repository is an extremely dangerous operation.\nOnce you delete a repository, it cannot be recovered.\nPlease think twice! Data is priceless, cherish it.', + deleteRepo_ask: 'Are you sure you want to delete the repository? (Confirmed', + deleteRepo_pass: 'Deletion successful!', + deleteRepo_failed: 'Deletion failed!\nIt is recommended to check whether the GitHub token has permission to delete the repository!', + deleteRepo_failed_status: 'Status code:', + deleteRepo_btn: 'Delete repository', + secret: '[Optional:] Enter your two-factor key for automatic input during GitHub\'s two-step verification.' }, - "zh-CN,zh,zh-SG": { - save: "保存", - cancel: "取消", - modaltitle: "设置 GitHub 令牌", + 'zh-CN,zh,zh-SG': { + save: '保存', + cancel: '取消', + modaltitle: '设置 GitHub 令牌', description: '请输入您的 GitHub 个人访问令牌,需具备 "repo" 权限。', - githubtokeninput: "请输入您的 GitHub 个人访问令牌", - newtoken: "点击此处创建新的令牌", - warncheckbox: " 非活跃开发警告", - menu: "设置 GitHub 令牌", - renderWarning: "警告:该仓库在 1 年以上未更新", - renderCaution: "注意:该仓库在 6 个月以上未更新", - confirm: "你没有输入Token,确认清空GitHub Token?", - timediff: "最后一次提交距现在:{years}年{months}个月{days}天 ", - view: "查看", - allRepos: "所有仓库", - newTab: "快速查看仓库时新窗口打开", - repoSize: "仓库大小:", - repoDes: "仓库简介:", - repoLang: "主要语言:", - repoCreated: "初始创建时间:", - repoUpdated: "最后一次更新:", - repoPushed: "最后一次推送:", - repoPushed: "最后一次推送:", - repoForks: "复刻:", - repoStars: "星标:", - ossinsight: "仓库对应的 OSS Insight 分析页面", - activeforks: "仓库对应的活跃复刻列表", - activeforks_: "活跃的复刻", - publicRepos: "公共仓库: ", - privateRepos: "私有仓库: ", - forkRepos: "分叉仓库: ", - deleteRepo_i: "你正在尝试删除仓库:", - deleteRepo: "人民的勤务员提醒你:\n删除仓库是一个极其危险的操作\n 你一旦删除仓库,将再也无法恢复。\n请三思而后行! 数据无价,且行且珍惜", - deleteRepo_ask: "你确定要删除仓库吗? (已确认", - deleteRepo_pass: " 删除成功!", - deleteRepo_failed: "删除失败!\n建议检查GitHub token 是否具有删除仓库的权限!", - deleteRepo_failed_status: "状态码:", - deleteRepo_btn: "删除仓库", - secret: "[可选项目:]输入你的双因素密钥用于在GitHub触发二次验证时自动输入", + githubtokeninput: '请输入您的 GitHub 个人访问令牌', + newtoken: '点击此处创建新的令牌', + warncheckbox: ' 非活跃开发警告', + menu: '设置 GitHub 令牌', + renderWarning: '警告:该仓库在 1 年以上未更新', + renderCaution: '注意:该仓库在 6 个月以上未更新', + confirm: '你没有输入Token,确认清空GitHub Token?', + timediff: '最后一次提交距现在:{years}年{months}个月{days}天 ', + view: '查看', + allRepos: '所有仓库', + newTab: '快速查看仓库时新窗口打开', + repoSize: '仓库大小:', + repoDes: '仓库简介:', + repoLang: '主要语言:', + repoCreated: '初始创建时间:', + repoUpdated: '最后一次更新:', + repoPushed: '最后一次推送:', + repoForks: '复刻:', + repoStars: '星标:', + ossinsight: '仓库对应的 OSS Insight 分析页面', + activeforks: '仓库对应的活跃复刻列表', + activeforks_: '活跃的复刻', + publicRepos: '公共仓库: ', + privateRepos: '私有仓库: ', + forkRepos: '分叉仓库: ', + deleteRepo_i: '你正在尝试删除仓库:', + deleteRepo: '人民的勤务员提醒你:\n删除仓库是一个极其危险的操作\n 你一旦删除仓库,将再也无法恢复。\n请三思而后行! 数据无价,且行且珍惜', + deleteRepo_ask: '你确定要删除仓库吗? (已确认', + deleteRepo_pass: ' 删除成功!', + deleteRepo_failed: '删除失败!\n建议检查GitHub token 是否具有删除仓库的权限!', + deleteRepo_failed_status: '状态码:', + deleteRepo_btn: '删除仓库', + secret: '[可选项目:]输入你的双因素密钥用于在GitHub触发二次验证时自动输入' }, - "zh-TW,zh-HK,zh-MO": { - save: "保存", - cancel: "取消", - modaltitle: "設定 GitHub 令牌", + 'zh-TW,zh-HK,zh-MO': { + save: '保存', + cancel: '取消', + modaltitle: '設定 GitHub 令牌', description: '請輸入您的 GitHub 個人訪問令牌,需具備 "repo" 權限。', - githubtokeninput: "請輸入您的 GitHub 個人訪問令牌", - newtoken: "點擊此處創建新的令牌", - warncheckbox: " 非活躍開發警告", - menu: "設定 GitHub 令牌", - renderWarning: "警告:該倉庫在 1 年以上未更新", - renderCaution: "注意:該倉庫在 6 個月以上未更新", - confirm: "你沒有輸入Token,確認清空GitHub Token?", - timediff: "最後一次提交距現在:{years}年{months}個月{days}天 ", + githubtokeninput: '請輸入您的 GitHub 個人訪問令牌', + newtoken: '點擊此處創建新的令牌', + warncheckbox: ' 非活躍開發警告', + menu: '設定 GitHub 令牌', + renderWarning: '警告:該倉庫在 1 年以上未更新', + renderCaution: '注意:該倉庫在 6 個月以上未更新', + confirm: '你沒有輸入Token,確認清空GitHub Token?', + timediff: '最後一次提交距現在:{years}年{months}個月{days}天 ' }, vi: { - save: "Lưu", - cancel: "Hủy", - modaltitle: "Đặt Token GitHub", + save: 'Lưu', + cancel: 'Hủy', + modaltitle: 'Đặt Token GitHub', description: 'Nhập token truy cập cá nhân GitHub của bạn với phạm vi "repo".', - githubtokeninput: "Nhập token truy cập cá nhân GitHub của bạn", - newtoken: "Nhấn vào đây để tạo token mới", - warncheckbox: " Cảnh báo phát triển không hoạt động", - menu: "Đặt Token GitHub", - renderWarning: "CẢNH BÁO: kho lưu trữ đã không nhận được cập nhật trong hơn 1 năm", - renderCaution: "Cảnh báo: kho lưu trữ đã không nhận được cập nhật trong hơn 6 tháng", - confirm: "Bạn chưa nhập Token, xác nhận xóa GitHub Token?", - timediff: "Lần commit cuối cách đây: {years} năm, {months} tháng, {days} ngày ", + githubtokeninput: 'Nhập token truy cập cá nhân GitHub của bạn', + newtoken: 'Nhấn vào đây để tạo token mới', + warncheckbox: ' Cảnh báo phát triển không hoạt động', + menu: 'Đặt Token GitHub', + renderWarning: 'CẢNH BÁO: kho lưu trữ đã không nhận được cập nhật trong hơn 1 năm', + renderCaution: 'Cảnh báo: kho lưu trữ đã không nhận được cập nhật trong hơn 6 tháng', + confirm: 'Bạn chưa nhập Token, xác nhận xóa GitHub Token?', + timediff: 'Lần commit cuối cách đây: {years} năm, {months} tháng, {days} ngày ' }, ja: { - save: "保存", - cancel: "キャンセル", - modaltitle: "GitHubトークンの設定", - description: "「repo」スコープを持つGitHub個人アクセストークンを入力してください。", - githubtokeninput: "GitHub個人アクセストークンを入力してください", - newtoken: "新しいトークンを作成するにはここをクリックしてください", - warncheckbox: " 非アクティブ開発警告", - menu: "GitHubトークンの設定", - renderWarning: "警告:リポジトリは1年以上更新されていません", - renderCaution: "注意:リポジトリは6ヶ月以上更新されていません", - confirm: "トークンが入力されていません。GitHubトークンをクリアしてもよろしいですか?", - timediff: "最終コミットから現在まで:{years}年{months}ヶ月{days}日 ", + save: '保存', + cancel: 'キャンセル', + modaltitle: 'GitHubトークンの設定', + description: '「repo」スコープを持つGitHub個人アクセストークンを入力してください。', + githubtokeninput: 'GitHub個人アクセストークンを入力してください', + newtoken: '新しいトークンを作成するにはここをクリックしてください', + warncheckbox: ' 非アクティブ開発警告', + menu: 'GitHubトークンの設定', + renderWarning: '警告:リポジトリは1年以上更新されていません', + renderCaution: '注意:リポジトリは6ヶ月以上更新されていません', + confirm: 'トークンが入力されていません。GitHubトークンをクリアしてもよろしいですか?', + timediff: '最終コミットから現在まで:{years}年{months}ヶ月{days}日 ' }, ko: { - save: "저장", - cancel: "취소", - modaltitle: "GitHub 토큰 설정", - description: "“repo” 범위를 가진 GitHub 개인 액세스 토큰을 입력하세요.", - githubtokeninput: "GitHub 개인 액세스 토큰을 입력하세요", - newtoken: "여기를 클릭하여 새 토큰을 만드세요", - warncheckbox: " 비활성 개발 경고", - menu: "GitHub 토큰 설정", - renderWarning: "경고: 이 저장소는 1년 이상 업데이트되지 않았습니다", - renderCaution: "주의: 이 저장소는 6개월 이상 업데이트되지 않았습니다", - confirm: "토큰을 입력하지 않았습니다. GitHub 토큰을 지우시겠습니까?", - timediff: "마지막 커밋 이후 경과: {years}년 {months}개월 {days}일 ", - }, + save: '저장', + cancel: '취소', + modaltitle: 'GitHub 토큰 설정', + description: '“repo” 범위를 가진 GitHub 개인 액세스 토큰을 입력하세요.', + githubtokeninput: 'GitHub 개인 액세스 토큰을 입력하세요', + newtoken: '여기를 클릭하여 새 토큰을 만드세요', + warncheckbox: ' 비활성 개발 경고', + menu: 'GitHub 토큰 설정', + renderWarning: '경고: 이 저장소는 1년 이상 업데이트되지 않았습니다', + renderCaution: '주의: 이 저장소는 6개월 이상 업데이트되지 않았습니다', + confirm: '토큰을 입력하지 않았습니다. GitHub 토큰을 지우시겠습니까?', + timediff: '마지막 커밋 이후 경과: {years}년 {months}개월 {days}일 ' + } } const getTranslations = (lang) => { for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { + if (key === lang || key.split(',').includes(lang)) { return translations[key] } } - return translations["en"] + return translations['en'] } const translate = new Proxy( function (key) { const lang = userLang const strings = getTranslations(lang) - return strings[key] || translations["en"][key] + return strings[key] || translations['en'][key] }, { get(target, prop) { const lang = userLang const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, + return strings[prop] || translations['en'][prop] + } } ) //! Generate a new public access token from https://github.com/settings/tokens and insert it here //*Note: to be able to see the size of your private repos, you need to select the `repo` scope when generating the token -let TOKEN = GM_getValue("githubToken", "") -let WARNING = GM_getValue("warn", true) -let openInNewTab = GM_getValue("openInNewTab", false) -let DELAY = GM_getValue("DELAY", "24h") -let USETIP = GM_getValue("USETIP", false)//为真时使用GitHub自带的TIP提示而不是用网页title -let SECRET = GM_getValue("SECRET", '') +let TOKEN = GM_getValue('githubToken', '') +let WARNING = GM_getValue('warn', true) +let openInNewTab = GM_getValue('openInNewTab', false) +let DELAY = GM_getValue('DELAY', '24h') +let USETIP = GM_getValue('USETIP', false)//为真时使用GitHub自带的TIP提示而不是用网页title +let SECRET = GM_getValue('SECRET', '') GM_addStyle(` .modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000;} .modal-content{background:white;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 15px rgba(0,0,0,0.2);position:relative;} @@ -313,61 +312,61 @@ function createModal() { ` - const modalContainer = document.createElement("div") + const modalContainer = document.createElement('div') modalContainer.innerHTML = modalHTML document.body.appendChild(modalContainer) const elements = { - input: modalContainer.querySelector("#github-token-input"), - secretInput: modalContainer.querySelector("#two-factor-secret"), - warn: modalContainer.querySelector("#warn"), - newTab: modalContainer.querySelector("#openInNewTab"), - saveButton: modalContainer.querySelector("#save-token"), - cancelButton: modalContainer.querySelector("#cancel-token") + input: modalContainer.querySelector('#github-token-input'), + secretInput: modalContainer.querySelector('#two-factor-secret'), + warn: modalContainer.querySelector('#warn'), + newTab: modalContainer.querySelector('#openInNewTab'), + saveButton: modalContainer.querySelector('#save-token'), + cancelButton: modalContainer.querySelector('#cancel-token') } - elements.warn.checked = GM_getValue("warn", true) - elements.newTab.checked = GM_getValue("openInNewTab", false) - elements.input.value = GM_getValue("githubToken", "") - elements.secretInput.value = GM_getValue("SECRET", "") - elements.saveButton.addEventListener("click", () => { + elements.warn.checked = GM_getValue('warn', true) + elements.newTab.checked = GM_getValue('openInNewTab', false) + elements.input.value = GM_getValue('githubToken', '') + elements.secretInput.value = GM_getValue('SECRET', '') + elements.saveButton.addEventListener('click', () => { const token = elements.input.value.trim() - GM_setValue("warn", elements.warn.checked) + GM_setValue('warn', elements.warn.checked) WARNING = elements.warn.checked - GM_setValue("openInNewTab", elements.newTab.checked) + GM_setValue('openInNewTab', elements.newTab.checked) openInNewTab = elements.newTab.checked - GM_setValue("SECRET", elements.secretInput.value.trim()) + GM_setValue('SECRET', elements.secretInput.value.trim()) if (token) { - GM_setValue("githubToken", token) + GM_setValue('githubToken', token) modalContainer.remove() TOKEN = token } else { - const userConfirmed = confirm(translate("confirm")) //提示是否删除 + const userConfirmed = confirm(translate('confirm')) //提示是否删除 if (userConfirmed) { - GM_setValue("githubToken", token) + GM_setValue('githubToken', token) modalContainer.remove() TOKEN = token } } }) - elements.cancelButton.addEventListener("click", () => modalContainer.remove()) + elements.cancelButton.addEventListener('click', () => modalContainer.remove()) } -GM_registerMenuCommand(translate("menu"), function () { +GM_registerMenuCommand(translate('menu'), function () { createModal() }) const getPageType = () => { const { pathname, search } = window.location const params = new URLSearchParams(search) - const [, username, repo] = pathname.split("/") - const q = params.get("q")?.toLocaleLowerCase() - const type = params.get("type")?.toLocaleLowerCase() - if (window.location.pathname.split("/").pop() === "repositories") return "list-view-container" - if (window.location.href.includes("?tab=repositories")) return "user-repositories" - if (window.location.href.includes("?tab=stars")) return "user-starred-repos" - if (username && repo) return "repo" - if (q && type === "code") return "code_search" - if (q) return "search" + const [, username, repo] = pathname.split('/') + const q = params.get('q')?.toLocaleLowerCase() + const type = params.get('type')?.toLocaleLowerCase() + if (window.location.pathname.split('/').pop() === 'repositories') return 'list-view-container' + if (window.location.href.includes('?tab=repositories')) return 'user-repositories' + if (window.location.href.includes('?tab=stars')) return 'user-starred-repos' + if (username && repo) return 'repo' + if (q && type === 'code') return 'code_search' + if (q) return 'search' } const addSizeToRepos = () => { @@ -375,23 +374,23 @@ const addSizeToRepos = () => { // Get the repo selector based on the page type let repoSelector switch (pageType) { - case "repo": //仓库详情界面 - repoSelector = "#repository-container-header strong a" + case 'repo': //仓库详情界面 + repoSelector = '#repository-container-header strong a' break - case "list-view-container": //ORG下的仓库列表 + case 'list-view-container': //ORG下的仓库列表 repoSelector = 'div[data-testid="list-view-item-title-container"] h4 a' break - case "user-repositories": //用户资料页面的仓库TAB - repoSelector = "#user-repositories-list h3 a" + case 'user-repositories': //用户资料页面的仓库TAB + repoSelector = '#user-repositories-list h3 a' break - case "user-starred-repos": //用户资料页面的已星标仓库 - repoSelector = "#user-starred-repos h3 a" + case 'user-starred-repos': //用户资料页面的已星标仓库 + repoSelector = '#user-starred-repos h3 a' break - case "search": //搜索 + case 'search': //搜索 repoSelector = 'div[data-testid="results-list"] .search-title a' break - case "code_search": //代码搜索 + case 'code_search': //代码搜索 repoSelector = 'div[data-testid="results-list"] .search-title a' break default: @@ -399,15 +398,15 @@ const addSizeToRepos = () => { } function extractPath(input) { const thirdSlashIndex = input.indexOf( - "/", - input.indexOf("/", input.indexOf("/") + 1) + 1 + '/', + input.indexOf('/', input.indexOf('/') + 1) + 1 ) if (thirdSlashIndex !== -1) { return input.substring(0, thirdSlashIndex) } return input } - if (pageType === "user-repositories") { + if (pageType === 'user-repositories') { const repoItems = document.querySelectorAll('li[itemprop="owns"]') repoItems.forEach(item => { const repoName = item.querySelector('a[itemprop="name codeRepository"]').textContent.trim() @@ -425,14 +424,14 @@ const addSizeToRepos = () => { document.querySelectorAll(repoSelector).forEach(async (elem) => { // Get json data from github api to extract the size const tkn = TOKEN - var href = elem.getAttribute("href") + var href = elem.getAttribute('href') href = extractPath(href) if (filterHref == href) { return } else { filterHref = href } - if (pageType === "repo") { + if (pageType === 'repo') { const parts = href.split('/') const owner = parts[1] const name = parts[2] @@ -444,16 +443,16 @@ const addSizeToRepos = () => { const headers = tkn ? { authorization: `token ${tkn}` } : {} const jsn = await ( await fetch(`https://api.github.com/repos${href}`, { - headers: headers, + headers: headers }) ).json() // If JSON failed to load, skip if (jsn.message) return - if (pageType === "repo" && WARNING) { + if (pageType === 'repo' && WARNING) { checkCommitDate(jsn.pushed_at) } - if (pageType === "repo") { + if (pageType === 'repo') { const reposApi = isLoggedInUser(jsn.owner.avatar_url) ? (TOKEN ? 'https://api.github.com/user/repos' : jsn.owner.repos_url) : jsn.owner.repos_url @@ -485,7 +484,7 @@ const addSizeToRepos = () => { size: repo.size, created_at: systemTime(repo.created_at), updated_at: systemTime(repo.updated_at), - pushed_at: systemTime(repo.pushed_at), + pushed_at: systemTime(repo.pushed_at) })) const timeStamp = new Date().toISOString() const dataToStore = { @@ -506,41 +505,41 @@ const addSizeToRepos = () => { // Get parent element to append the size to let parent = elem.parentElement - if (pageType === "repo") parent = elem.parentElement.parentElement + if (pageType === 'repo') parent = elem.parentElement.parentElement // Create the size container - let sizeContainer = parent.querySelector(`#mshll-repo-size`) + let sizeContainer = parent.querySelector('#mshll-repo-size') if (sizeContainer === null) { - sizeContainer = document.createElement("span") - sizeContainer.id = "mshll-repo-size" - sizeContainer.className = "tooltipped tooltipped-s" + sizeContainer = document.createElement('span') + sizeContainer.id = 'mshll-repo-size' + sizeContainer.className = 'tooltipped tooltipped-s' sizeContainer.classList.add( - "Label", - "Label--info", - "v-align-middle", - "ml-1" + 'Label', + 'Label--info', + 'v-align-middle', + 'ml-1' ) - sizeContainer.setAttribute("aria-label", "Repository size") - sizeContainer.innerText = "-" + sizeContainer.setAttribute('aria-label', 'Repository size') + sizeContainer.innerText = '-' // Create the size icon let sizeSVG = document.createElementNS( - "http://www.w3.org/2000/svg", - "svg" + 'http://www.w3.org/2000/svg', + 'svg' ) - sizeSVG.setAttribute("aria-hidden", "true") - sizeSVG.setAttribute("viewBox", "-4 -4 22 22") - sizeSVG.setAttribute("width", "16") - sizeSVG.setAttribute("height", "16") - sizeSVG.setAttribute("fill", "currentColor") - sizeSVG.setAttribute("data-view-component", "true") - sizeSVG.classList.add("octicon", "octicon-file-directory", "mr-1") + sizeSVG.setAttribute('aria-hidden', 'true') + sizeSVG.setAttribute('viewBox', '-4 -4 22 22') + sizeSVG.setAttribute('width', '16') + sizeSVG.setAttribute('height', '16') + sizeSVG.setAttribute('fill', 'currentColor') + sizeSVG.setAttribute('data-view-component', 'true') + sizeSVG.classList.add('octicon', 'octicon-file-directory', 'mr-1') let sizeSVGPath = document.createElementNS( - "http://www.w3.org/2000/svg", - "path" + 'http://www.w3.org/2000/svg', + 'path' ) - sizeSVGPath.setAttribute("fill-rule", "evenodd") + sizeSVGPath.setAttribute('fill-rule', 'evenodd') sizeSVGPath.setAttribute( - "d", - "M1 3.5c0-.626.292-1.165.7-1.59.406-.422.956-.767 1.579-1.041C4.525.32 6.195 0 8 0c1.805 0 3.475.32 4.722.869.622.274 1.172.62 1.578 1.04.408.426.7.965.7 1.591v9c0 .626-.292 1.165-.7 1.59-.406.422-.956.767-1.579 1.041C11.476 15.68 9.806 16 8 16c-1.805 0-3.475-.32-4.721-.869-.623-.274-1.173-.62-1.579-1.04-.408-.426-.7-.965-.7-1.591Zm1.5 0c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 5.205 6.353 5.5 8 5.5c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55 0-.133-.058-.318-.282-.551-.227-.237-.591-.483-1.101-.707C11.102 1.795 9.647 1.5 8 1.5c-1.646 0-3.101.295-4.118.742-.508.224-.873.471-1.1.708-.224.232-.282.417-.282.55Zm0 4.5c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 9.705 6.353 10 8 10c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55V5.724c-.241.15-.503.286-.778.407C11.475 6.68 9.805 7 8 7c-1.805 0-3.475-.32-4.721-.869a6.15 6.15 0 0 1-.779-.407Zm0 2.225V12.5c0 .133.058.318.282.55.227.237.592.484 1.1.708 1.016.447 2.471.742 4.118.742 1.647 0 3.102-.295 4.117-.742.51-.224.874-.47 1.101-.707.224-.233.282-.418.282-.551v-2.275c-.241.15-.503.285-.778.406-1.247.549-2.917.869-4.722.869-1.805 0-3.475-.32-4.721-.869a6.327 6.327 0 0 1-.779-.406Z" + 'd', + 'M1 3.5c0-.626.292-1.165.7-1.59.406-.422.956-.767 1.579-1.041C4.525.32 6.195 0 8 0c1.805 0 3.475.32 4.722.869.622.274 1.172.62 1.578 1.04.408.426.7.965.7 1.591v9c0 .626-.292 1.165-.7 1.59-.406.422-.956.767-1.579 1.041C11.476 15.68 9.806 16 8 16c-1.805 0-3.475-.32-4.721-.869-.623-.274-1.173-.62-1.579-1.04-.408-.426-.7-.965-.7-1.591Zm1.5 0c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 5.205 6.353 5.5 8 5.5c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55 0-.133-.058-.318-.282-.551-.227-.237-.591-.483-1.101-.707C11.102 1.795 9.647 1.5 8 1.5c-1.646 0-3.101.295-4.118.742-.508.224-.873.471-1.1.708-.224.232-.282.417-.282.55Zm0 4.5c0 .133.058.318.282.551.227.237.591.483 1.101.707C4.898 9.705 6.353 10 8 10c1.646 0 3.101-.295 4.118-.742.508-.224.873-.471 1.1-.708.224-.232.282-.417.282-.55V5.724c-.241.15-.503.286-.778.407C11.475 6.68 9.805 7 8 7c-1.805 0-3.475-.32-4.721-.869a6.15 6.15 0 0 1-.779-.407Zm0 2.225V12.5c0 .133.058.318.282.55.227.237.592.484 1.1.708 1.016.447 2.471.742 4.118.742 1.647 0 3.102-.295 4.117-.742.51-.224.874-.47 1.101-.707.224-.233.282-.418.282-.551v-2.275c-.241.15-.503.285-.778.406-1.247.549-2.917.869-4.722.869-1.805 0-3.475-.32-4.721-.869a6.327 6.327 0 0 1-.779-.406Z' ) sizeSVG.appendChild(sizeSVGPath) const size = jsn.size * 1024 @@ -549,12 +548,12 @@ const addSizeToRepos = () => { sizeContainer.innerHTML = `${humanReadableSize}` sizeContainer.prepend(sizeSVG) // Insert the size container into the DOM - if (pageType === "code_search") { - parent.style.direction = "ltr" + if (pageType === 'code_search') { + parent.style.direction = 'ltr' } if (!size) { - sizeContainer.style.color = "red" - sizeContainer.style.border = "1px solid red" + sizeContainer.style.color = 'red' + sizeContainer.style.border = '1px solid red' } parent.appendChild(sizeContainer) } @@ -567,11 +566,11 @@ window.onload = function () { //addSizeToRepos() } const selectors = [ - "#repository-container-header strong a", // 仓库详情界面 + '#repository-container-header strong a', // 仓库详情界面 'div[data-testid="list-view-item-title-container"] h4 a', // ORG下的仓库列表 - "#user-repositories-list h3 a", // 用户资料页面的仓库TAB - "#user-starred-repos h3 a", // 用户资料页面的已星标仓库 - 'div[data-testid="results-list"] .search-title a', // 搜索 + '#user-repositories-list h3 a', // 用户资料页面的仓库TAB + '#user-starred-repos h3 a', // 用户资料页面的已星标仓库 + 'div[data-testid="results-list"] .search-title a' // 搜索 // 'div[data-testid="results-list"] .search-title a' // 代码搜索 ] document.addEventListener('DOMContentLoaded', () => { @@ -580,14 +579,14 @@ document.addEventListener('DOMContentLoaded', () => { waitForElement('#app_totp', false)// .then(() => { generateTOTP(SECRET).then(totp => { - const totpInput = document.querySelector("#app_totp") - const submitButton = totpInput.parentElement.querySelector("button[type='submit']") + const totpInput = document.querySelector('#app_totp') + const submitButton = totpInput.parentElement.querySelector('button[type=\'submit\']') totpInput.value = totp submitButton.click() }) }) .catch((error) => { - console.error(`totp发生了错误,找不到元素`) + console.error('totp发生了错误,找不到元素') }) } }) @@ -638,14 +637,14 @@ function waitForElement(selector, dis = true) { function displayMessage(el) { document - .querySelector("#js-repo-pjax-container") - .insertAdjacentElement("beforebegin", el) + .querySelector('#js-repo-pjax-container') + .insertAdjacentElement('beforebegin', el) } function renderWarning(timediff) { - const banner = document.createElement("div") - banner.id = "zh-banner-warning" + const banner = document.createElement('div') + banner.id = 'zh-banner-warning' banner.setAttribute( - "style", + 'style', ` background-color: red; height: 100px; @@ -659,9 +658,9 @@ function renderWarning(timediff) { ` ) banner.textContent = translate.renderWarning - const smallTag = document.createElement("div") + const smallTag = document.createElement('div') smallTag.setAttribute( - "style", + 'style', ` position: absolute; bottom: 0; @@ -676,10 +675,10 @@ function renderWarning(timediff) { displayMessage(banner) } function renderCaution(timediff) { - const banner = document.createElement("div") - banner.id = "zh-banner-warning" + const banner = document.createElement('div') + banner.id = 'zh-banner-warning' banner.setAttribute( - "style", + 'style', ` background-color: yellow; height: 50px; @@ -692,9 +691,9 @@ function renderCaution(timediff) { ` ) banner.textContent = translate.renderCaution - const smallTag = document.createElement("div") + const smallTag = document.createElement('div') smallTag.setAttribute( - "style", + 'style', ` position: absolute; bottom: 0; @@ -709,7 +708,7 @@ function renderCaution(timediff) { displayMessage(banner) } function checkCommitDate(datetimeString) { - if (document.querySelector("#zh-banner-warning")) return + if (document.querySelector('#zh-banner-warning')) return const date = new Date(datetimeString) const now = new Date() const yearsDiff = now.getFullYear() - date.getFullYear() @@ -789,11 +788,11 @@ function insertReposList(links, tip = false) { }) function getIconPath(link) { var fillColor = null - if (link.private) fillColor = "green" - if (!link.private && !link.fork) fillColor = "red" + if (link.private) fillColor = 'green' + if (!link.private && !link.fork) fillColor = 'red' var svg = `` if (fillColor) return svg - if (link.fork) return `` + if (link.fork) return '' } let privateClassAdded = false let forkClassAdded = false @@ -801,20 +800,20 @@ function insertReposList(links, tip = false) { privateTrue: 0, privateFalse: 0, forkTrue: 0, - forkFalse: 0, + forkFalse: 0 } const listItems = sortedLinks.map(link => { stats.privateTrue += (link.private && !link.fork) ? 1 : 0 stats.privateFalse += (link.private ? 0 : 1) && !link.fork ? 1 : 0 stats.forkTrue += link.fork ? 1 : 0 stats.forkFalse += link.fork ? 0 : 1 - let liClass = "" + let liClass = '' if (link.private && !privateClassAdded) { - liClass += "border-top" + liClass += 'border-top' privateClassAdded = true } if (link.fork && !forkClassAdded) { - liClass += "border-top" + liClass += 'border-top' forkClassAdded = true } const starsAndForks = [ @@ -831,8 +830,8 @@ function insertReposList(links, tip = false) { `${translate.repoPushed}${link.pushed_at}` ].filter(Boolean).join('\n') return ` -
  • - +
  • + ${getIconPath(link)} @@ -848,7 +847,7 @@ function insertReposList(links, tip = false) { `${translate.allRepos} : ${sortedLinks.length}`, stats.privateTrue > 0 ? `${translate.privateRepos} ${stats.privateTrue}` : '', stats.privateFalse > 0 ? `${translate.publicRepos} ${stats.privateFalse}` : '', - stats.forkTrue > 0 ? `${translate.forkRepos} ${stats.forkTrue}` : '', + stats.forkTrue > 0 ? `${translate.forkRepos} ${stats.forkTrue}` : '' //stats.forkFalse > 0 ? `非分叉仓库: ${stats.forkFalse}` : '' ].filter(Boolean).join('\n') const detailsHTML = ` @@ -875,7 +874,7 @@ function insertReposList(links, tip = false) { } } function isLoggedInUser(avatar_url) {//从返回的json判断 - const imgElement = document.querySelector(".AppHeader-user button span span img") + const imgElement = document.querySelector('.AppHeader-user button span span img') if (imgElement) { const imgSrc = imgElement.src return imgSrc === avatar_url @@ -884,8 +883,8 @@ function isLoggedInUser(avatar_url) {//从返回的json判断 } } function isLoggedInUser_f() {//NOTE - 比较仓库头像和登录头像中的ID - const imgElement = document.querySelector(".AppHeader-user button span span img") - const repoImgElement = document.querySelector("#repo-title-component > img") + const imgElement = document.querySelector('.AppHeader-user button span span img') + const repoImgElement = document.querySelector('#repo-title-component > img') if (imgElement && repoImgElement) { const imgSrc = imgElement.src const repoImgSrc = repoImgElement.src @@ -904,7 +903,7 @@ function isLoggedInUser_f() {//NOTE - 比较仓库头像和登录头像中的ID async function getUserRepos(href, header = {}) { try { const response = await fetch(`${href}`, { - headers: header, + headers: header }) if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`) @@ -959,7 +958,7 @@ function insertOssInsightButton(owner, repo, usePageHeadActions) { } function insertActiveForks(owner, repo, usePageHeadActions) { if (document.getElementById('github-active-forks')) return - const svgStr = `` + const svgStr = '' const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}` const title = `${repo} ${translate.activeforks}` const el = usePageHeadActions @@ -969,7 +968,7 @@ function insertActiveForks(owner, repo, usePageHeadActions) { console.log('github-Active Forks: 没有找到目标元素, 无法添加按钮') return } - const buttonHtml = `
    ${svgStr} ${usePageHeadActions ? translate.activeforks_ : ""}
    ` + const buttonHtml = `
    ${svgStr} ${usePageHeadActions ? translate.activeforks_ : ''}
    ` if (usePageHeadActions) { el.insertAdjacentHTML('afterbegin', `
  • ${buttonHtml}
  • `) } else { @@ -978,15 +977,14 @@ function insertActiveForks(owner, repo, usePageHeadActions) { } function insertDelBtn(owner, repo, usePageHeadActions, cusClass = 'dialog-show-repo-delete-home', element) { - const svgStr = ` - -` + const svgStr = '
    ' const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}` const title = `[${repo}]\n ${translate.deleteRepo}` + var el = null if (element) { - var el = element + el = element } else { - var el = usePageHeadActions + el = usePageHeadActions ? document.querySelector('.pagehead-actions') : document.querySelector('#responsive-meta-container .d-flex.gap-2.mt-n3.mb-3.flex-wrap') } @@ -999,7 +997,7 @@ function insertDelBtn(owner, repo, usePageHeadActions, cusClass = 'dialog-show-r data-view-component="true" class="js-repo-delete-button Button--danger Button--medium Button float-none float-sm-right "> - ${svgStr}${usePageHeadActions ? translate.deleteRepo_btn : ""} + ${svgStr}${usePageHeadActions ? translate.deleteRepo_btn : ''} ` if (usePageHeadActions) { @@ -1012,7 +1010,7 @@ function insertDelBtn(owner, repo, usePageHeadActions, cusClass = 'dialog-show-r }) } function showDeleteConfirmations(owner, repo, count = 3) { - const blacklist = ["ChinaGodMan/disk", "ChinaGodMan/LocalDev", "ChinaGodMan/Ebackup", "ChinaGodMan/portable-device", "ChinaGodMan/UserScripts"] + const blacklist = ['ChinaGodMan/disk', 'ChinaGodMan/LocalDev', 'ChinaGodMan/Ebackup', 'ChinaGodMan/portable-device', 'ChinaGodMan/UserScripts'] const repoIdentifier = `${owner}/${repo}` if (blacklist.includes(repoIdentifier)) { alert(`[${repoIdentifier}] 在黑名单中`) @@ -1046,10 +1044,10 @@ function deleteRepository(owner, repo) { } //LINK - 帮助小子程序 function getHumanReadableSize(sizeInKB) { - const sizes = ["B", "KB", "MB", "GB", "TB"] + const sizes = ['B', 'KB', 'MB', 'GB', 'TB'] const size = sizeInKB * 1024 let i = parseInt(Math.floor(Math.log(size) / Math.log(1024))) - const humanReadableSize = (size / Math.pow(1024, i)).toFixed(1) + " " + sizes[i] + const humanReadableSize = (size / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i] return humanReadableSize } function systemTime(isoString) { diff --git a/Script details/github-repo-size-view/preview/6months.png b/github-repo-size-view/preview/6months.png similarity index 100% rename from Script details/github-repo-size-view/preview/6months.png rename to github-repo-size-view/preview/6months.png diff --git a/Script details/github-repo-size-view/preview/GIF 2024-10-5 07-21-25.gif b/github-repo-size-view/preview/GIF 2024-10-5 07-21-25.gif similarity index 100% rename from Script details/github-repo-size-view/preview/GIF 2024-10-5 07-21-25.gif rename to github-repo-size-view/preview/GIF 2024-10-5 07-21-25.gif diff --git a/Script details/github-repo-size-view/preview/Snipaste_2024-10-05_07-22-09.png b/github-repo-size-view/preview/Snipaste_2024-10-05_07-22-09.png similarity index 100% rename from Script details/github-repo-size-view/preview/Snipaste_2024-10-05_07-22-09.png rename to github-repo-size-view/preview/Snipaste_2024-10-05_07-22-09.png diff --git a/Script details/github-repo-size-view/preview/delonpro.png b/github-repo-size-view/preview/delonpro.png similarity index 100% rename from Script details/github-repo-size-view/preview/delonpro.png rename to github-repo-size-view/preview/delonpro.png diff --git a/Script details/github-repo-size-view/preview/he.png b/github-repo-size-view/preview/he.png similarity index 100% rename from Script details/github-repo-size-view/preview/he.png rename to github-repo-size-view/preview/he.png diff --git a/Script details/github-repo-size-view/preview/preview1.png b/github-repo-size-view/preview/preview1.png similarity index 100% rename from Script details/github-repo-size-view/preview/preview1.png rename to github-repo-size-view/preview/preview1.png diff --git a/Script details/github-repo-size-view/preview/preview2.png b/github-repo-size-view/preview/preview2.png similarity index 100% rename from Script details/github-repo-size-view/preview/preview2.png rename to github-repo-size-view/preview/preview2.png diff --git a/Script details/github-repo-size-view/preview/years.png b/github-repo-size-view/preview/years.png similarity index 100% rename from Script details/github-repo-size-view/preview/years.png rename to github-repo-size-view/preview/years.png diff --git a/github-repository-navigator/Change history/README.md b/github-repository-navigator/Change history/README.md new file mode 100644 index 000000000..c5a0b5e66 --- /dev/null +++ b/github-repository-navigator/Change history/README.md @@ -0,0 +1 @@ +初始版本,欢迎使用 diff --git a/github-repository-navigator/README.md b/github-repository-navigator/README.md new file mode 100644 index 000000000..9f65dbee0 --- /dev/null +++ b/github-repository-navigator/README.md @@ -0,0 +1,211 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 仓库快速跳转助手

    +

    「 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    初始版本,欢迎使用

    + +
    + + + +# GitHub 快速跳转助手 + +## 功能简介 + +GitHub 快速跳转助手是一款专为帮助用户快速访问自己在 GitHub 上的仓库而设计。它可以大幅提高开发者在使用 GitHub 时的效率。 + +## 主要功能 + +1. **快速跳转按钮**:在 GitHub 的页面上添加一个方便的按钮,让用户一键跳转到自己的所有仓库。 +2. **自定义仓库列表**:自动获取并显示用户的仓库列表,支持筛选和排序,用户可以快速找到目标仓库。 +3. **易于使用**:简单的用户界面,方便用户快速上手,无需复杂配置。 +4. **在移动设备上可用**:适配移动设备,让用户在手机上也能轻松访问自己的仓库。(需要点击左上角的小猫咪图标) + +## 使用说明 + +1. 安装 Tampermonkey 或其他用户脚本管理器。 +2. 点击上方的 "安装" 按钮,将脚本添加到你的浏览器中。 +3. 在 GitHub 页面上点击新增的快速跳转按钮,即可查看自己的仓库列表并快速访问。 + +## 注意事项 + +- 如需访问私人仓库,请添加自己的 GitHub Token 到脚本设置中。 +- 请确保在 GitHub 上有足够的权限来访问自己的仓库。 +- 脚本适用于所有常见浏览器,但在不同设备上可能会有些许差异。 + +![Snipaste_2024-11-01_19-50-13.png](https://s2.loli.net/2024/11/01/AWopjtOVhEcYKxC.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + diff --git a/github-repository-navigator/README_en.md b/github-repository-navigator/README_en.md new file mode 100644 index 000000000..6836886d9 --- /dev/null +++ b/github-repository-navigator/README_en.md @@ -0,0 +1,211 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub warehouse quick jump assistant

    +

    「 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    初始版本,欢迎使用

    + +
    + + + +# GitHub Quick jump assistant + +## Function introduction + +GitHub Quick Jump Assistant is a tool designed to help users quickly access their GitHub Designed for warehouses。It can greatly improve developers’ ability to use GitHub time efficiency。 + +## Main functions + +1. **Quick jump button**:exist GitHub Add a convenient button to the page,Allow users to jump to all their warehouses with one click。 +2. **Custom warehouse list**:Automatically obtain and display the user’s warehouse list,Supports filtering and sorting,Users can quickly find the target warehouse。 +3. **Easy to use**:Simple user interface,Convenient for users to get started quickly,No complicated configuration required。 +4. **Available on mobile devices**:Adapted to mobile devices,Allow users to easily access their warehouses on their mobile phones。(You need to click on the kitten icon in the upper left corner) + +## Instructions for use + +1. Install Tampermonkey or other userscript manager。 +2. Click above "Install" button,Add the script to your browser。 +3. exist GitHub Click the new quick jump button on the page,You can view your own warehouse list and quickly access。 + +## Things to note + +- To access a private repository,Please add your own GitHub Token Go to script settings。 +- Please make sure to GitHub Have sufficient permissions to access your own repository。 +- Script works in all common browsers,But there may be slight differences on different devices。 + +![Snipaste_2024-11-01_19-50-13.png](https://s2.loli.net/2024/11/01/AWopjtOVhEcYKxC.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + diff --git a/github-repository-navigator/github-repository-navigator.user.js b/github-repository-navigator/github-repository-navigator.user.js new file mode 100644 index 000000000..c1b2424ee --- /dev/null +++ b/github-repository-navigator/github-repository-navigator.user.js @@ -0,0 +1,633 @@ +// ==UserScript== +// @name GitHub warehouse quick jump assistant +// @description 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +// @name:zh-CN GitHub 仓库快速跳转助手 +// @description:zh-CN 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +// @name:ar مساعد القفز السريع لمستودع GitHub +// @description:ar 🤠 مساعد القفز السريع لمستودعات GitHub، مصمم خصيصًا لمساعدة المستخدمين على الوصول بسرعة إلى مستودعاتهم الخاصة على GitHub. يقوم بإنشاء زر أعلى شريط التنقل. انقر لتوسيع جميع مستودعاتك والانتقال بسهولة إلى صفحة مستودع GitHub الخاصة بك دون استخدام قائمة GitHub الثانوية. +// @name:bg Асистент за бързо прескачане в склада на GitHub +// @description:bg 🤠 Асистент за бързо прескачане на склад GitHub, специално проектиран да помага на потребителите бързо да имат достъп до собствените си складове в GitHub. Той генерира бутон в горната част на навигационната лента, за да разгънете всичките си хранилища и лесно да преминете към страницата на вашето собствено хранилище на GitHub, без да използвате второстепенното меню на GitHub. +// @name:cs Asistent rychlého skoku ve skladu GitHub +// @description:cs 🤠 Asistent rychlého skoku do skladu GitHub, speciálně navržený tak, aby uživatelům pomohl rychle získat přístup k vlastním skladům na GitHubu. Vygeneruje tlačítko v horní části navigačního panelu Kliknutím rozbalíte všechna úložiště a snadno přejdete na stránku vlastního úložiště GitHub bez použití sekundární nabídky GitHubu. +// @name:da GitHub-lagerets hurtigspringsassistent +// @description:da 🤠 GitHub warehouse quick jump assistent, specielt designet til at hjælpe brugere med hurtigt at få adgang til deres egne varehuse på GitHub. Den genererer en knap øverst på navigationslinjen Klik for at udvide alle dine lagre og nemt springe til din egen GitHub-lagerside uden at bruge GitHubs sekundære menu. +// @name:de GitHub Warehouse-Schnellsprungassistent +// @description:de 🤠 GitHub-Warehouse-Schnellsprung-Assistent, der speziell entwickelt wurde, um Benutzern den schnellen Zugriff auf ihre eigenen Warehouses auf GitHub zu erleichtern. Es generiert eine Schaltfläche oben in der Navigationsleiste. Klicken Sie darauf, um alle Ihre Repositorys zu erweitern und einfach zu Ihrer eigenen GitHub-Repository-Seite zu springen, ohne das sekundäre Menü von GitHub zu verwenden. +// @name:el Βοηθός γρήγορου άλματος αποθήκης GitHub +// @description:el 🤠 Βοηθός γρήγορου άλματος αποθήκης GitHub, ειδικά σχεδιασμένος για να βοηθά τους χρήστες να έχουν γρήγορη πρόσβαση στις δικές τους αποθήκες στο GitHub. Δημιουργεί ένα κουμπί στο επάνω μέρος της γραμμής πλοήγησης Κάντε κλικ για να επεκτείνετε όλα τα αποθετήρια σας και να μεταβείτε εύκολα στη δική σας σελίδα αποθετηρίου GitHub χωρίς να χρησιμοποιήσετε το δευτερεύον μενού του GitHub. +// @name:en GitHub warehouse quick jump assistant +// @description:en 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +// @name:eo GitHub magazena rapida salta asistanto +// @description:eo 🤠 GitHub magazena rapida salta asistanto, speciale desegnita por helpi uzantojn rapide aliri siajn proprajn stokejojn sur GitHub. Ĝi generas butonon ĉe la supro de la navigadbreto Alklaku por vastigi ĉiujn viajn deponejojn kaj facile salti al via propra GitHub-deponeja paĝo sen uzi la sekundaran menuon de GitHub. +// @name:es Asistente de salto rápido del almacén de GitHub +// @description:es 🤠 Asistente de salto rápido del almacén de GitHub, especialmente diseñado para ayudar a los usuarios a acceder rápidamente a sus propios almacenes en GitHub. Genera un botón en la parte superior de la barra de navegación. Haga clic para expandir todos sus repositorios y saltar fácilmente a su propia página de repositorio de GitHub sin usar el menú secundario de GitHub. +// @name:fi GitHub-varaston pikahypyn avustaja +// @description:fi 🤠 GitHub-varaston pika-apulainen, joka on erityisesti suunniteltu auttamaan käyttäjiä pääsemään nopeasti omiin varastoihinsa GitHubissa. Se luo painikkeen navigointipalkin yläosaan. Napsauta laajentaaksesi kaikki tietovarastot ja siirtyäksesi helposti omalle GitHub-tietovarastosivullesi ilman GitHubin toissijaista valikkoa. +// @name:fr Assistant de saut rapide de l’entrepôt GitHub +// @description:fr 🤠 Assistant de saut rapide d’entrepôt GitHub, spécialement conçu pour aider les utilisateurs à accéder rapidement à leurs propres entrepôts sur GitHub. Il génère un bouton en haut de la barre de navigation. Cliquez pour développer tous vos référentiels et accéder facilement à votre propre page de référentiel GitHub sans utiliser le menu secondaire de GitHub. +// @name:he עוזר קפיצה מהירה במחסן GitHub +// @description:he 🤠 עוזר קפיצה מהירה במחסן GitHub, תוכנן במיוחד כדי לעזור למשתמשים לגשת במהירות למחסנים שלהם ב-GitHub. זה יוצר כפתור בחלק העליון של סרגל הניווט לחץ כדי להרחיב את כל המאגרים שלך ולקפוץ בקלות לדף מאגר GitHub שלך מבלי להשתמש בתפריט המשני של GitHub. +// @name:hr Pomoćnik za brzi skok u skladište GitHub +// @description:hr 🤠 Pomoćnik za brzi skok u skladište GitHub, posebno dizajniran da pomogne korisnicima da brzo pristupe vlastitim skladištima na GitHubu. Generira gumb na vrhu navigacijske trake Kliknite da biste proširili sva svoja spremišta i jednostavno skočili na svoju stranicu GitHub spremišta bez korištenja sekundarnog izbornika GitHuba. +// @name:hu GitHub raktári gyorsugrási asszisztens +// @description:hu 🤠 GitHub raktári gyorsugrási asszisztens, amelyet kifejezetten arra terveztek, hogy a felhasználók gyorsan hozzáférhessenek saját raktáraikhoz a GitHubon. Létrehoz egy gombot a navigációs sáv tetején. Kattintson az összes adattár kibontásához, és egyszerűen a GitHub másodlagos menüjének használata nélkül ugorjon a saját GitHub adattároldalára. +// @name:id Asisten lompat cepat gudang GitHub +// @description:id 🤠 Asisten lompat cepat gudang GitHub, dirancang khusus untuk membantu pengguna mengakses gudang mereka sendiri dengan cepat di GitHub. Ini menghasilkan tombol di bagian atas bilah navigasi. Klik untuk memperluas semua repositori Anda dan dengan mudah melompat ke halaman repositori GitHub Anda sendiri tanpa menggunakan menu sekunder GitHub. +// @name:it Assistente di salto rapido del magazzino GitHub +// @description:it 🤠 Assistente di salto rapido del magazzino GitHub, appositamente progettato per aiutare gli utenti ad accedere rapidamente ai propri magazzini su GitHub. Genera un pulsante nella parte superiore della barra di navigazione. Fai clic per espandere tutti i tuoi repository e passare facilmente alla pagina del tuo repository GitHub senza utilizzare il menu secondario di GitHub. +// @name:ja GitHub ウェアハウスのクイック ジャンプ アシスタント +// @description:ja 🤠 GitHub ウェアハウス クイック ジャンプ アシスタント。ユーザーが GitHub 上の自分のウェアハウスにすばやくアクセスできるように特別に設計されています。ナビゲーション バーの上部にボタンが生成され、クリックするとすべてのリポジトリが展開され、GitHub の 2 番目のメニューを使用せずに独自の GitHub リポジトリ ページに簡単にジャンプできます。 +// @name:ka GitHub საწყობის სწრაფი ნახტომის ასისტენტი +// @description:ka 🤠 GitHub საწყობის სწრაფი გადახტომის ასისტენტი, სპეციალურად შექმნილი, რათა დაეხმაროს მომხმარებლებს სწრაფად წვდომა საკუთარ საწყობებზე GitHub-ზე. ის ქმნის ღილაკს ნავიგაციის ზოლის ზედა ნაწილში. +// @name:ko GitHub 창고 빠른 점프 도우미 +// @description:ko 🤠 GitHub 창고 빠른 점프 도우미는 사용자가 GitHub에서 자신의 창고에 빠르게 액세스할 수 있도록 특별히 설계되었습니다. 탐색 모음 상단에 버튼이 생성됩니다. 클릭하면 모든 저장소가 확장되고 GitHub의 보조 메뉴를 사용하지 않고도 자신의 GitHub 저장소 페이지로 쉽게 이동할 수 있습니다. +// @name:nl GitHub magazijn snelle sprong-assistent +// @description:nl 🤠 GitHub magazijn snelle sprong-assistent, speciaal ontworpen om gebruikers te helpen snel toegang te krijgen tot hun eigen magazijnen op GitHub. Het genereert een knop bovenaan de navigatiebalk. Klik om al je repository’s uit te vouwen en eenvoudig naar je eigen GitHub-repositorypagina te gaan zonder het secundaire menu van GitHub te gebruiken. +// @name:nb GitHub-varehus hurtighoppassistent +// @description:nb 🤠 GitHub-varehus-hurtighoppassistent, spesialdesignet for å hjelpe brukere raskt å få tilgang til sine egne varehus på GitHub. Den genererer en knapp på toppen av navigasjonslinjen Klikk for å utvide alle lagrene dine og enkelt hoppe til din egen GitHub-depotside uten å bruke GitHubs sekundære meny. +// @name:pl Asystent szybkiego skoku do magazynu GitHub +// @description:pl 🤠 Asystent szybkiego skoku do magazynu GitHub, specjalnie zaprojektowany, aby pomóc użytkownikom szybko uzyskać dostęp do własnych magazynów w GitHub. Generuje przycisk na górze paska nawigacyjnego. Kliknij, aby rozwinąć wszystkie swoje repozytoria i łatwo przejść do własnej strony repozytorium GitHub bez korzystania z dodatkowego menu GitHub. +// @name:pt-BR Assistente de salto rápido do GitHub Warehouse +// @description:pt-BR 🤠 Assistente de salto rápido do GitHub Warehouse, especialmente projetado para ajudar os usuários a acessar rapidamente seus próprios armazéns no GitHub. Ele gera um botão na parte superior da barra de navegação. Clique para expandir todos os seus repositórios e ir facilmente para a página do seu próprio repositório GitHub sem usar o menu secundário do GitHub. +// @name:ro GitHub warehouse quick jump assistant +// @description:ro 🤠 GitHub warehouse quick jump assistant, special conceput pentru a ajuta utilizatorii să-și acceseze rapid propriile depozite pe GitHub. Acesta generează un buton în partea de sus a barei de navigare Faceți clic pentru a vă extinde toate depozitele și pentru a sări cu ușurință la propria pagină de depozit GitHub, fără a utiliza meniul secundar al GitHub. +// @name:ru Помощник по быстрому переходу на склад GitHub +// @description:ru 🤠 Помощник по быстрому переходу на склады GitHub, специально разработанный, чтобы помочь пользователям быстро получить доступ к собственным складам на GitHub. Он создает кнопку в верхней части панели навигации. Нажмите, чтобы развернуть все ваши репозитории и легко перейти на страницу собственного репозитория GitHub, не используя вторичное меню GitHub. +// @name:sk Asistent rýchleho skoku do skladu GitHub +// @description:sk 🤠 Asistent rýchleho skoku do skladu GitHub, špeciálne navrhnutý tak, aby pomohol používateľom rýchlo získať prístup k vlastným skladom na GitHub. Vygeneruje tlačidlo v hornej časti navigačného panela. Kliknutím rozbalíte všetky svoje úložiská a jednoducho prejdete na svoju vlastnú stránku úložiska GitHub bez použitia sekundárnej ponuky GitHub. +// @name:sr ГитХуб помоћник за брзи скок у складишту +// @description:sr 🤠 ГитХуб помоћник за брзо прескакање складишта, специјално дизајниран да помогне корисницима да брзо приступе сопственим складиштима на ГитХуб-у. Генерише дугме на врху траке за навигацију. Кликните да бисте проширили сва своја спремишта и лако прешли на своју страницу ГитХуб спремишта без коришћења секундарног менија ГитХуб-а. +// @name:sv GitHub lager snabbhoppsassistent +// @description:sv 🤠 GitHub lager snabbhoppsassistent, speciellt designad för att hjälpa användare att snabbt komma åt sina egna lager på GitHub. Den genererar en knapp högst upp i navigeringsfältet Klicka för att expandera alla dina förråd och enkelt hoppa till din egen GitHub-förrådssida utan att använda GitHubs sekundära meny. +// @name:th GitHub ผู้ช่วยกระโดดด่วนคลังสินค้า +// @description:th 🤠 ตัวช่วยกระโดดด่วนคลังสินค้า GitHub ออกแบบมาเป็นพิเศษเพื่อช่วยให้ผู้ใช้เข้าถึงคลังสินค้าของตนเองบน GitHub ได้อย่างรวดเร็ว โดยจะสร้างปุ่มที่ด้านบนของแถบนำทาง คลิกเพื่อขยายพื้นที่เก็บข้อมูลทั้งหมดของคุณและข้ามไปยังหน้าพื้นที่เก็บข้อมูล GitHub ของคุณได้อย่างง่ายดายโดยไม่ต้องใช้เมนูรองของ GitHub +// @name:tr GitHub deposu hızlı atlama asistanı +// @description:tr 🤠 GitHub depo hızlı atlama asistanı, kullanıcıların GitHub’da kendi depolarına hızlı bir şekilde erişmelerine yardımcı olmak için özel olarak tasarlanmıştır. Gezinme çubuğunun üst kısmında bir düğme oluşturur. Tüm depolarınızı genişletmek ve GitHub’un ikincil menüsünü kullanmadan kendi GitHub depo sayfanıza kolayca atlamak için tıklayın. +// @name:ug GitHub ئامبىرى تېز سەكرەش ياردەمچىسى +// @description:ug It GitHub ئامبىرىنىڭ تېز سەكرەش ياردەمچىسى ، ئالاھىدە لايىھەلەنگەن بولۇپ ، ئابونتلارنىڭ GitHub دىكى ئامبارلىرىغا تېزرەك كىرىشىگە ياردەم بېرىدۇ. ئۇ يولباشچى ستونىنىڭ ئۈستى تەرىپىدە بىر كۇنۇپكا ھاسىل قىلىدۇ ، بارلىق ئامبارلىرىڭىزنى كېڭەيتىپ ، GitHub نىڭ ئىككىلەمچى تىزىملىكىنى ئىشلەتمەي تۇرۇپلا ئۆزىڭىزنىڭ GitHub ئامبىرى بېتىگە سەكرەپ چىقىڭ. +// @name:uk Помічник швидкого переходу зі складу GitHub +// @description:uk 🤠 Помічник швидкого переходу зі складу GitHub, спеціально розроблений, щоб допомогти користувачам швидко отримати доступ до власних складів на GitHub. Він генерує кнопку у верхній частині навігаційної панелі, щоб розгорнути всі ваші сховища та легко перейти до власної сторінки сховища GitHub без використання додаткового меню GitHub. +// @name:vi Trợ lý nhảy nhanh kho GitHub +// @description:vi 🤠 Trợ lý nhảy nhanh kho GitHub, được thiết kế đặc biệt để giúp người dùng truy cập nhanh vào kho của họ trên GitHub. Nó tạo ra một nút ở đầu thanh điều hướng. Nhấp để mở rộng tất cả các kho lưu trữ của bạn và dễ dàng chuyển đến trang kho lưu trữ GitHub của riêng bạn mà không cần sử dụng menu phụ của GitHub. +// @name:zh-SG GitHub 仓库快速跳转助手 +// @description:zh-SG 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +// @name:zh GitHub 仓库快速跳转助手 +// @description:zh 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +// @name:zh-TW GitHub 倉庫快速跳轉助手 +// @description:zh-TW 🤠 GitHub 倉庫快速跳轉助手,專為幫助用戶快速存取自己在 GitHub 上的倉庫而設計 。它在導覽列頂部產生一個按鈕,點擊展開自己的所有倉庫,輕鬆跳到自己的 GitHub 倉庫頁面,而無需使用 GitHub 的二級選單 +// @name:zh-HK GitHub 倉庫快速跳轉助手 +// @description:zh-HK 🤠 GitHub 倉庫快速跳轉助手,專為幫助用戶快速存取自己在 GitHub 上的倉庫而設計 。它在導覽列頂部產生一個按鈕,點擊展開自己的所有倉庫,輕鬆跳到自己的 GitHub 倉庫頁面,而無需使用 GitHub 的二級選單 +// @name:fr-CA Assistant de saut rapide de l’entrepôt GitHub +// @description:fr-CA 🤠 Assistant de saut rapide d’entrepôt GitHub, spécialement conçu pour aider les utilisateurs à accéder rapidement à leurs propres entrepôts sur GitHub. Il génère un bouton en haut de la barre de navigation. +// @namespace https://github.com/ChinaGodMan/UserScripts +// @version 2024.11.6.21 +// @author mshll & 人民的勤务员 +// @match https://github.com/* +// @grant none +// @run-at document-start +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_addStyle +// @grant GM_registerMenuCommand +// @grant none +// @require https://update.greasyfork.org/scripts/511697/1460281/TOTP%20Generator.js +// @icon data:image/png;base64,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 +// @iconbak https://github.githubassets.com/pinned-octocat.svg +// @license MIT +// @source https://github.com/qinwuyuan-cn/UserScripts +// @run-at document-start +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts +// @downloadURL https://update.greasyfork.org/scripts/502291/Github%20Repo%20Size%2B.user.js +// @updateURL https://update.greasyfork.org/scripts/502291/Github%20Repo%20Size%2B.meta.js +// ==/UserScript== +'use strict' +const userLang = + (navigator.languages && navigator.languages[0]) || + navigator.language || + 'en' +const translations = { + en: { + save: 'Save', + cancel: 'Cancel', + modaltitle: 'Set GitHub Token', + description: 'Enter your GitHub personal access token with "repo" scope.', + githubtokeninput: 'Enter your GitHub personal access token', + newtoken: 'Click here to create a new token', + warncheckbox: ' Inactive Development Warning', + menu: 'Set GitHub Token', + renderWarning: 'WARNING: repo has not received an update in 1+ year(s)', + renderCaution: 'Caution: repo has not received an update in 6+ months', + confirm: 'You have not entered a Token, confirm to clear the GitHub Token?', + timediff: 'Last commit was: {years} years, {months} months, {days} days ago ', + view: 'View[', + allRepos: ']All repositories', + newTab: 'Open in a new tab when quickly viewing repositories', + repoSize: 'Repository size:', + repoDes: 'Repository description:', + repoLang: 'Primary language:', + repoCreated: 'Initial creation time:', + repoUpdated: 'Last updated:', + repoPushed: 'Last pushed:', + repoForks: 'Forks:', + repoStars: 'Stars:', + ossinsight: 'OSS Insight analysis page for the repository', + activeforks: 'Active forks list for the repository', + activeforks_: 'Active forks', + publicRepos: 'Public repositories: ', + privateRepos: 'Private repositories: ', + forkRepos: 'Forked repositories: ', + deleteRepo_i: 'You are trying to delete the repository:', + deleteRepo: 'ChinaGodMan reminds you:\nDeleting a repository is an extremely dangerous operation.\nOnce you delete a repository, it cannot be recovered.\nPlease think twice! Data is priceless, cherish it.', + deleteRepo_ask: 'Are you sure you want to delete the repository? (Confirmed', + deleteRepo_pass: 'Deletion successful!', + deleteRepo_failed: 'Deletion failed!\nIt is recommended to check whether the GitHub token has permission to delete the repository!', + deleteRepo_failed_status: 'Status code:', + deleteRepo_btn: 'Delete repository', + secret: '[Optional:] Enter your two-factor key for automatic input during GitHub\'s two-step verification.' + + }, + 'zh-CN,zh,zh-SG': { + save: '保存', + cancel: '取消', + modaltitle: '设置 GitHub 令牌', + description: '请输入您的 GitHub 个人访问令牌,需具备 "repo" 权限。', + githubtokeninput: '请输入您的 GitHub 个人访问令牌', + newtoken: '点击此处创建新的令牌', + warncheckbox: ' 非活跃开发警告', + menu: '设置 GitHub 令牌', + renderWarning: '警告:该仓库在 1 年以上未更新', + renderCaution: '注意:该仓库在 6 个月以上未更新', + confirm: '你没有输入Token,确认清空GitHub Token?', + timediff: '最后一次提交距现在:{years}年{months}个月{days}天 ', + view: '查看', + allRepos: '所有仓库', + newTab: '快速查看仓库时新窗口打开', + repoSize: '仓库大小:', + repoDes: '仓库简介:', + repoLang: '主要语言:', + repoCreated: '初始创建时间:', + repoUpdated: '最后一次更新:', + repoPushed: '最后一次推送:', + repoForks: '复刻:', + repoStars: '星标:', + ossinsight: '仓库对应的 OSS Insight 分析页面', + activeforks: '仓库对应的活跃复刻列表', + activeforks_: '活跃的复刻', + publicRepos: '公共仓库: ', + privateRepos: '私有仓库: ', + forkRepos: '分叉仓库: ', + deleteRepo_i: '你正在尝试删除仓库:', + deleteRepo: '人民的勤务员提醒你:\n删除仓库是一个极其危险的操作\n 你一旦删除仓库,将再也无法恢复。\n请三思而后行! 数据无价,且行且珍惜', + deleteRepo_ask: '你确定要删除仓库吗? (已确认', + deleteRepo_pass: ' 删除成功!', + deleteRepo_failed: '删除失败!\n建议检查GitHub token 是否具有删除仓库的权限!', + deleteRepo_failed_status: '状态码:', + deleteRepo_btn: '删除仓库', + secret: '[可选项目:]输入你的双因素密钥用于在GitHub触发二次验证时自动输入' + }, + 'zh-TW,zh-HK,zh-MO': { + save: '保存', + cancel: '取消', + modaltitle: '設定 GitHub 令牌', + description: '請輸入您的 GitHub 個人訪問令牌,需具備 "repo" 權限。', + githubtokeninput: '請輸入您的 GitHub 個人訪問令牌', + newtoken: '點擊此處創建新的令牌', + warncheckbox: ' 非活躍開發警告', + menu: '設定 GitHub 令牌', + renderWarning: '警告:該倉庫在 1 年以上未更新', + renderCaution: '注意:該倉庫在 6 個月以上未更新', + confirm: '你沒有輸入Token,確認清空GitHub Token?', + timediff: '最後一次提交距現在:{years}年{months}個月{days}天 ' + }, + vi: { + save: 'Lưu', + cancel: 'Hủy', + modaltitle: 'Đặt Token GitHub', + description: 'Nhập token truy cập cá nhân GitHub của bạn với phạm vi "repo".', + githubtokeninput: 'Nhập token truy cập cá nhân GitHub của bạn', + newtoken: 'Nhấn vào đây để tạo token mới', + warncheckbox: ' Cảnh báo phát triển không hoạt động', + menu: 'Đặt Token GitHub', + renderWarning: 'CẢNH BÁO: kho lưu trữ đã không nhận được cập nhật trong hơn 1 năm', + renderCaution: 'Cảnh báo: kho lưu trữ đã không nhận được cập nhật trong hơn 6 tháng', + confirm: 'Bạn chưa nhập Token, xác nhận xóa GitHub Token?', + timediff: 'Lần commit cuối cách đây: {years} năm, {months} tháng, {days} ngày ' + }, + ja: { + save: '保存', + cancel: 'キャンセル', + modaltitle: 'GitHubトークンの設定', + description: '「repo」スコープを持つGitHub個人アクセストークンを入力してください。', + githubtokeninput: 'GitHub個人アクセストークンを入力してください', + newtoken: '新しいトークンを作成するにはここをクリックしてください', + warncheckbox: ' 非アクティブ開発警告', + menu: 'GitHubトークンの設定', + renderWarning: '警告:リポジトリは1年以上更新されていません', + renderCaution: '注意:リポジトリは6ヶ月以上更新されていません', + confirm: 'トークンが入力されていません。GitHubトークンをクリアしてもよろしいですか?', + timediff: '最終コミットから現在まで:{years}年{months}ヶ月{days}日 ' + }, + ko: { + save: '저장', + cancel: '취소', + modaltitle: 'GitHub 토큰 설정', + description: '“repo” 범위를 가진 GitHub 개인 액세스 토큰을 입력하세요.', + githubtokeninput: 'GitHub 개인 액세스 토큰을 입력하세요', + newtoken: '여기를 클릭하여 새 토큰을 만드세요', + warncheckbox: ' 비활성 개발 경고', + menu: 'GitHub 토큰 설정', + renderWarning: '경고: 이 저장소는 1년 이상 업데이트되지 않았습니다', + renderCaution: '주의: 이 저장소는 6개월 이상 업데이트되지 않았습니다', + confirm: '토큰을 입력하지 않았습니다. GitHub 토큰을 지우시겠습니까?', + timediff: '마지막 커밋 이후 경과: {years}년 {months}개월 {days}일 ' + } +} +const getTranslations = (lang) => { + for (const key in translations) { + if (key === lang || key.split(',').includes(lang)) { + return translations[key] + } + } + return translations['en'] +} +const translate = new Proxy( + function (key) { + const lang = userLang + const strings = getTranslations(lang) + return strings[key] || translations['en'][key] + }, + { + get(target, prop) { + const lang = userLang + const strings = getTranslations(lang) + return strings[prop] || translations['en'][prop] + } + } +) +let TOKEN = GM_getValue('githubToken', '') +let openInNewTab = GM_getValue('openInNewTab', false) +let DELAY = GM_getValue('DELAY', '24h') +let USETIP = GM_getValue('USETIP', false)//为真时使用GitHub自带的TIP提示而不是用网页title +GM_addStyle(` + .modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000;} + .modal-content{background:white;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 15px rgba(0,0,0,0.2);position:relative;} + .modal-title{margin:0 0 10px 0;font-size:20px;} + .modal-description{margin-bottom:20px;font-size:14px;color:#666;} + .modal-description a{color:#007bff;text-decoration:underline;} + .github-token-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;margin-bottom:20px;font-size:14px;} + #save-token{background-color:#28a745;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;margin-right:10px;} + #cancel-token{background-color:#dc3545;color:white;border:none;padding:10px 20px;cursor:pointer;border-radius:4px;} +`) +function createModal() { + const modalHTML = ` + + ` + const modalContainer = document.createElement('div') + modalContainer.innerHTML = modalHTML + document.body.appendChild(modalContainer) + const elements = { + input: modalContainer.querySelector('#github-token-input'), + saveButton: modalContainer.querySelector('#save-token'), + cancelButton: modalContainer.querySelector('#cancel-token') + } + elements.input.value = GM_getValue('githubToken', '') + elements.saveButton.addEventListener('click', () => { + const token = elements.input.value.trim() + if (token) { + GM_setValue('githubToken', token) + modalContainer.remove() + TOKEN = token + } else { + const userConfirmed = confirm(translate('confirm')) //提示是否删除 + if (userConfirmed) { + GM_setValue('githubToken', token) + modalContainer.remove() + TOKEN = token + } + } + }) + elements.cancelButton.addEventListener('click', () => modalContainer.remove()) +} +GM_registerMenuCommand(translate('menu'), function () { + createModal() +}) +document.addEventListener('DOMContentLoaded', () => { + main() +}) +observeUrlChanges(main) +function main(delay = 0) { + waitForElement('#global-create-menu-anchor', false)// + .then(() => { + if (!document.querySelector('#view-global-user-repos')) { + const headers = TOKEN ? { authorization: `token ${TOKEN}` } : {} + const metaElement = document.querySelector('meta[name="octolytics-actor-login"]') + const loginUserName = metaElement.getAttribute('content') + const targetSelector = isMobileDevice() ? '.AppHeader-search button' : '#global-create-menu-anchor' + fetchReposWithCache(loginUserName, 'https://api.github.com/user/repos', headers) + } + }) +} +function observeUrlChanges(callback, delay = 10) { + let lastUrl = location.href + const observer = new MutationObserver(() => { + const url = location.href + if (url !== lastUrl) { + lastUrl = url + setTimeout(() => { + callback() + }, delay) + } + }) + observer.observe(document, { subtree: true, childList: true }) + return observer +} +function waitForElement(selector, dis = true) { + return new Promise((resolve, reject) => { + const observer = new MutationObserver(() => { + if (document.querySelector(selector)) { + resolve() + observer.disconnect() + } + }) + if (dis) { + const timeout = setTimeout(() => { + observer.disconnect() + reject(new Error('超时:未找到指定元素')) + }, 10000) + } + observer.observe(document.body, { childList: true, subtree: true }) + }) +} +function insertReposList(links, tip = false) { + const gitHubStyle = ` +#view-global-user-repos { +order: 10; +} +#view-global-user-repos .dropdown-menu { +min-width: 170px; +width: auto; +} +#view-global-user-repos .dropdown-menu .dropdown-item .d-inline-flex { +vertical-align:sub; +` + // + if (!document.head.querySelector('style[data-id="view-global-user-repos-css"]')) { + const globalStyle = document.createElement('style') + globalStyle.dataset.id = 'view-user-repos-css' + globalStyle.innerHTML = gitHubStyle + document.head.appendChild(globalStyle) + } + const targetSelector = isMobileDevice() ? '.AppHeader-search button' : '#global-create-menu-anchor' + const existingButton = document.querySelector(targetSelector) + existingButton.parentNode.style.display = 'flex' + if (existingButton) { + const sortedLinks = links.sort((a, b) => {//!SECTION 排序 + // 首先比较 fork 下沉到数组的低端. + if (b.fork > 0 && a.fork <= 0) { + return -1 // a 在前 + } else if (a.fork > 0 && b.fork <= 0) { + return 1 // b 在前 + } else { + // 如果 fork 相同,比较 private + if (b.private === a.private) { + // 如果 private 相同,进一步判断 private 为 false 的情况 + if (!a.private && !b.private) { + return b.stargazers_count - a.stargazers_count // stargazers_count 大的在前 + } + return 0 // private 相同且不是 false 的情况下不排序 + } + return (b.private ? -1 : 1) // private 为 true 的在前 + } + }) + function getIconPath(link) { + var fillColor = null + if (link.private) fillColor = 'green' + if (!link.private && !link.fork) fillColor = 'red' + var svg = `` + if (fillColor) return svg + if (link.fork) return '' + } + let privateClassAdded = false + let forkClassAdded = false + const stats = { + privateTrue: 0, + privateFalse: 0, + forkTrue: 0, + forkFalse: 0 + } + const listItems = sortedLinks.map(link => { + stats.privateTrue += (link.private && !link.fork) ? 1 : 0 + stats.privateFalse += (link.private ? 0 : 1) && !link.fork ? 1 : 0 + stats.forkTrue += link.fork ? 1 : 0 + stats.forkFalse += link.fork ? 0 : 1 + let liClass = '' + if (link.private && !privateClassAdded) { + liClass += 'border-top' + privateClassAdded = true + } + if (link.fork && !forkClassAdded) { + liClass += 'border-top' + forkClassAdded = true + } + const starsAndForks = [ + link.stargazers_count > 0 ? `${translate.repoStars}${link.stargazers_count}` : '', + link.forks_count > 0 ? `${translate.repoForks}${link.forks_count}` : '' + ].filter(Boolean).join(' ') + const repoInfo = [ + (link.description ? `${translate.repoDes}${link.description}` : ''), + starsAndForks, + `${translate.repoSize}${getHumanReadableSize(link.size)}`, + link.language ? `${translate.repoLang}${link.language}` : '', + `${translate.repoCreated}${link.created_at}`, + `${translate.repoUpdated}${link.updated_at}`, + `${translate.repoPushed}${link.pushed_at}` + ].filter(Boolean).join('\n') + return ` +
  • + + + + ${getIconPath(link)} + + + ${link.name} + +
  • + ` + }).join('') + const ariaLabel = [ + ` ${translate.view}[${links[0].owner}]${translate.allRepos} `, + `${translate.allRepos} : ${sortedLinks.length}`, + stats.privateTrue > 0 ? `${translate.privateRepos} ${stats.privateTrue}` : '', + stats.privateFalse > 0 ? `${translate.publicRepos} ${stats.privateFalse}` : '', + stats.forkTrue > 0 ? `${translate.forkRepos} ${stats.forkTrue}` : '' + ].filter(Boolean).join('\n') + const hide = isMobileDevice() ? ' style="display: none' : '' + const detailsHTML = ` +
    + + + [${links[0].owner}] + + + + [${links[0].owner}] + + + +
    + +
    +
    ` + existingButton.insertAdjacentHTML('beforebegin', detailsHTML) + } else { + } + if (isMobileDevice()) { + const svgElement = document.querySelector('.AppHeader-globalBar-start > a') + svgElement.addEventListener('click', function (event) { + event.preventDefault() + const summary = document.getElementById('hideSummary') + summary.click() + }) + } +} +async function getUserRepos(href, header = {}) { + try { + const response = await fetch(`${href}`, { + headers: header + }) + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`) + } + return await response.json() + } catch (error) { + console.error('Fetch error:', error) + throw error + } +} +async function getUserAllRepos(href, header = {}, getAll = false, maxPage = 0) { + try { + let allRepos = [] + let page = 1 + const perPage = 100 + + if (!getAll) { + + const url = `${href}?per_page=${perPage}&page=1`//如果不需要获取所有仓库,直接请求第一页数据 + const response = await fetch(url, { headers: header }) + if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`) + const repos = await response.json() + return repos.length > 0 ? repos : allRepos // 返回第一页数据 + } + + while (true) { + const url = `${href}?per_page=${perPage}&page=${page}` + const response = await fetch(url, { headers: header }) + if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`) + const repos = await response.json() + + if (repos.length === 0) break // 如果没有更多数据,退出循环 + + allRepos = allRepos.concat(repos) + page++ // 增加页数 + + // 如果设定了最大页数并且已经达到了最大页数,结束循环 + if (maxPage !== 0 && page > maxPage) break + } + + return allRepos + } catch (error) { + console.error('Fetch error:', error) + throw error + } +} + +function fetchReposWithCache(ownerKey, reposApi, headers) { + const localData = localStorage.getItem(ownerKey) + const currentTime = new Date().getTime() + if (localData) { + const parsedData = JSON.parse(localData) + const localTimeStamp = new Date(parsedData.timeStamp).getTime() + if (currentTime - localTimeStamp < timeToSeconds(DELAY) * 1000) { + console.log('本地缓存数据未过期,直接使用本地数据') + insertReposList(parsedData.reposArray, USETIP) + return + } + } + getUserAllRepos(reposApi, headers) + .then(data => { + const reposArray = data.map(repo => ({ + name: repo.name, + private: repo.private, + html_url: repo.html_url, + fork: repo.fork, + description: repo.description, + stargazers_count: repo.stargazers_count, + owner: repo.owner.login, + forks_count: repo.forks_count, + open_issues_count: repo.open_issues_count, + language: repo.language, + size: repo.size, + created_at: systemTime(repo.created_at), + updated_at: systemTime(repo.updated_at), + pushed_at: systemTime(repo.pushed_at) + })) + const timeStamp = new Date().toISOString() + const dataToStore = { + reposArray: reposArray, + timeStamp: timeStamp + } + localStorage.setItem(ownerKey, JSON.stringify(dataToStore)) + insertReposList(reposArray, USETIP) + }) + .catch(error => console.error('Error fetching data:', error)) +} +//LINK - 帮助小子程序 +function getHumanReadableSize(sizeInKB) { + const sizes = ['B', 'KB', 'MB', 'GB', 'TB'] + const size = sizeInKB * 1024 + let i = parseInt(Math.floor(Math.log(size) / Math.log(1024))) + const humanReadableSize = (size / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i] + return humanReadableSize +} +function systemTime(isoString) { + const date = new Date(isoString) + return date.toLocaleString() +} +function timeToSeconds(timeStr) { + let hours = 0, minutes = 0, seconds = 0 + const hoursMatch = timeStr.match(/(\d{1,2})h/) + const minutesMatch = timeStr.match(/(\d{1,2})m/) + const secondsMatch = timeStr.match(/(\d{1,2})s/) + if (hoursMatch) { + hours = parseInt(hoursMatch[1], 10) + } + if (minutesMatch) { + minutes = parseInt(minutesMatch[1], 10) + } + if (secondsMatch) { + seconds = parseInt(secondsMatch[1], 10) + } + let totalSeconds = (hours * 3600) + (minutes * 60) + seconds + return totalSeconds +} +function isMobileDevice() { + return /Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) +} diff --git a/github-repository-navigator/preview/Snipaste_2024-11-01_19-50-13.png b/github-repository-navigator/preview/Snipaste_2024-11-01_19-50-13.png new file mode 100644 index 000000000..50934e967 Binary files /dev/null and b/github-repository-navigator/preview/Snipaste_2024-11-01_19-50-13.png differ diff --git a/github-sort-by-date/README.md b/github-sort-by-date/README.md new file mode 100644 index 000000000..e69000da2 --- /dev/null +++ b/github-sort-by-date/README.md @@ -0,0 +1,226 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + Tiếng Việt +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 按日期排序

    +

    「 将文件排序方式改为日期降序,方便查看最新更新的文件。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GitHub 按日期排序 + +此用户脚本将 GitHub 仓库中的文件自动按日期降序排列,方便查看最新更新的文件。 + + + +## 特性 + +- 页面加载时自动按更新日期排序文件。 +- 适用于所有 GitHub 仓库。 + + + +## 使用 + +- 脚本将在页面加载时自动按日期排序文件,无需手动干预。 + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + +## 修改来源 + +作者[androidcn](https://greasyfork.org/zh-CN/users/18158)的脚本[Github 按文件更新日期排序](https://greasyfork.org/scripts/492514),感谢作者的勤劳智慧 + +![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/github-sort-by-date/README_en.md b/github-sort-by-date/README_en.md new file mode 100644 index 000000000..2d25cf4fd --- /dev/null +++ b/github-sort-by-date/README_en.md @@ -0,0 +1,224 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + Tiếng Việt +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GitHub Sort by date

    +

    「 Change file sorting to descending by date,Conveniently view the latest updated files。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GitHub Sort by date + +This userscript will GitHub Files in the warehouse are automatically sorted in descending order by date,Conveniently view the latest updated files。 + + + +## characteristic + +- Automatically sort files by updated date when page loads。 +- Applies to all GitHub storehouse。 + + + +## use + +- Script will automatically sort files by date on page load,No manual intervention required。 + + + +## Modify source + +author[androidcn](https://greasyfork.org/zh-CN/users/18158)script[Github Sort by file update date](https://greasyfork.org/scripts/492514),FeelingThanksauthorofdiligentlaborwisdomWisdom +![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/github-sort-by-date/README_ko.md b/github-sort-by-date/README_ko.md new file mode 100644 index 000000000..538ae99ce --- /dev/null +++ b/github-sort-by-date/README_ko.md @@ -0,0 +1,231 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + Tiếng Việt +
    + 👆️입장GitHub 더 나은 경험을 위한 앱의 Readme 파일。 +
    +
    + + + +
    + + + + + +
    +

    GitHub 날짜순으로 정렬

    +

    「 파일 정렬을 날짜별 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GitHub 날짜별로 정렬 + +이 사용자 스크립트는 GitHub 창고에 있는 파일은 날짜별로 내림차순으로 자동 정렬됩니다.,최신 업데이트 파일을 편리하게 확인하세요。 + + + +## 특성 + +- 페이지가 로드될 때 업데이트된 날짜별로 파일을 자동으로 정렬합니다.。 +- 모두에게 적용됩니다 GitHub 창고。 + + + +## 사용 + +- 스크립트는 페이지 로드 시 날짜별로 파일을 자동으로 정렬합니다.,수동 개입이 필요하지 않습니다.。 + + + +## 소스 수정 + +작가[androidcn](https://greasyfork.org/zh-CN/users/18158)적각본[Github 파일 업데이트 날짜별로 정렬](https://greasyfork.org/scripts/492514),느낌감사해요작가~의성실한노동지혜지혜 +![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) + + +## 만들다사용돕다돕다 + + + +## 돕다 + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 정보 표시 웹뷰 제출**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 +> - [**GitHub 창고 빠른 점프 도우미**](https://greasyfork.org/scripts/515205): 🤠 GitHub 창고 빠른 점프 도우미는 사용자가 GitHub에서 자신의 창고에 빠르게 액세스할 수 있도록 특별히 설계되었습니다. 탐색 모음 상단에 버튼이 생성됩니다. 클릭하면 모든 저장소가 확장되고 GitHub의 보조 메뉴를 사용하지 않고도 자신의 GitHub 저장소 페이지로 쉽게 이동할 수 있습니다. +> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。유형별로 파일에 색상 및 아이콘 추가,저장소 소스 트리의 파일 유형 아이콘 대신 작은 이미지 표시 +> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다“다른”아래에 +> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 +> - [**GitHub 폴더 다운로더**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 +> - [**Github 원본 파일 복사 URL 다운로드 파일 포함**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 +> - [**🤠 Github 향상된 보조 창고 디스플레이 크기**](https://greasyfork.org/scripts/502291): 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 +> - [**GitHub 날짜순으로 정렬**](https://greasyfork.org/scripts/505218): 파일 정렬을 날짜별 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 + + + + + +## 돕다 + +권장 브라우저 및 스크립트 관리자: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**사용자 스크립트 설치 방법에 대해 더 알고 싶다면,[나를 클릭하세요](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)그래픽 교육 보기!** + + + +### 모든 게시 스크립트 보기 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다ChatGPT관련 스크립트 +> +> - [**ChatGPT코드 글꼴 크기 감소**](https://greasyfork.org/scripts/505209): ChatGPT 코드 글꼴을 더 작게 만들기 자동으로 포장 +> - [**ChatGPT 채팅 코드 복사 및 코드 내보내기 버튼**](https://greasyfork.org/scripts/509598): 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“코드 복사”버튼과 ChatGPT 응답으로 코드 블록에 내보내기 버튼이 추가됩니다.,코드 블록의 클래스 이름으로 감지된 프로그래밍 언어를 기반으로 파일에 코드를 저장하라는 메시지를 사용자에게 표시합니다.。 +> - [**ChatGPT 문자 카운터 제한 (CCCL)**](https://greasyfork.org/scripts/506166): 입력 상자에 문자 카운터 추가,로 제한됨 32732 문자。(ChatGPT 한도는 32732 문자。) +> - [**ChatGPT 자체 메시지 및 최대 너비 축소**](https://greasyfork.org/scripts/504901): 겹ChatGPT중간 및 긴“너”정보,그리고 최대 너비를 설정하세요 + + + + + + +> ### 🔍웹 관련 스크립트를 찾고 있을 수도 있습니다. +> +> - [**웹 페이지 작성 클립 버전 권한 관리자**](https://greasyfork.org/scripts/497403): 웹페이지의 클립보드 쓰기 동작을 관리하여 무단 자동 복사를 방지하고 오디오 및 비디오 콘텐츠 사전 로드 및 자동 재생을 비활성화합니다. +> - [**승강기CSDN로그인복사**](https://greasyfork.org/scripts/505207): 엿 먹어라CSDN로그인복사,로그인하지 않고 복사 +> - [**화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요**](https://greasyfork.org/scripts/507036): 테이블의 모든 열에 색상 그라디언트를 자동으로 적용하여 아름답게 만듭니다. +> - [**웹페이지에서 키워드 강조표시**](https://greasyfork.org/scripts/498906): 웹페이지의 텍스트 강조표시,그것이 당신에게 도움이 된다면,마음대로 수정하여 사용할 수 있습니다. +> - [**웹페이지 키워드 강조**](https://greasyfork.org/scripts/498905): 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 +> - [**작은 창 미리보기**](https://greasyfork.org/scripts/504880): 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 +> - [**링크 밑줄 제거**](https://greasyfork.org/scripts/498625): 모든 사이트의 링크 밑줄 제거,새 링크를 동적으로 처리합니다. +> - [**스크롤 버튼**](https://greasyfork.org/scripts/497251): 페이지 스크롤을 위해 페이지 오른쪽에 두 개의 버튼을 생성합니다. +> - [**상단 및 하단 버튼에 고정**](https://greasyfork.org/scripts/500255): 모든 페이지에 두 개의 버튼 생성,하나는 위쪽으로 부드럽게 하기 위한 것입니다.,하나는 아래쪽으로 계속 스크롤하기 위한 것입니다.,취소하려면 다시 클릭하세요. 맨 아래로 스크롤 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 정보 표시 웹뷰 제출**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 +> - [**GitHub 창고 빠른 점프 도우미**](https://greasyfork.org/scripts/515205): 🤠 GitHub 창고 빠른 점프 도우미는 사용자가 GitHub에서 자신의 창고에 빠르게 액세스할 수 있도록 특별히 설계되었습니다. 탐색 모음 상단에 버튼이 생성됩니다. 클릭하면 모든 저장소가 확장되고 GitHub의 보조 메뉴를 사용하지 않고도 자신의 GitHub 저장소 페이지로 쉽게 이동할 수 있습니다. +> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。유형별로 파일에 색상 및 아이콘 추가,저장소 소스 트리의 파일 유형 아이콘 대신 작은 이미지 표시 +> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다“다른”아래에 +> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 +> - [**GitHub 폴더 다운로더**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 +> - [**Github 원본 파일 복사 URL 다운로드 파일 포함**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 +> - [**🤠 Github 향상된 보조 창고 디스플레이 크기**](https://greasyfork.org/scripts/502291): 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 +> - [**GitHub 날짜순으로 정렬**](https://greasyfork.org/scripts/505218): 파일 정렬을 날짜별 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다Google관련 스크립트 +> +> - [**Google 고급 검색 도우미**](https://greasyfork.org/scripts/502652): Google 검색 페이지 상단에 고급 검색 양식을 추가하세요. +> - [**Google 검색 사이트 차단**](https://greasyfork.org/scripts/500262): 존재하다google특정 사이트 검색 및 차단 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 +> +> - [**Greasy fork스크립트 페이지는 URL 향상에 적합합니다.**](https://greasyfork.org/scripts/497317): 스크립트 세부정보 페이지는 기본적으로 검색으로 이동하지 않는 URL에 적합합니다. 클릭 가능한 텍스트 링크로 변환 및 팝업 프롬프트 +> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. +> - [**GreaysFork 향상시키다WebHook동기화 설정**](https://greasyfork.org/scripts/506717): GreaysFork 스크립트 동기화 정보를 빠르게 입력하세요,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 포럼에서 사용되는 기본 형식은 다음과 같습니다.Markdown,형식 도움말 링크 추가 및 새 스크립트 게시,빠른 편집이 활성화된 응답 시간 도구 모음 +> - [**Greasyfork 평점을 표시하는 스크립트**](https://greasyfork.org/scripts/501119): 스크립트 목록 탐색 시 스크립트 이름 뒤에 스크립트 등급 추가 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색GreasyFork그리고SleazyFork상적 각본 +> - [**GreasyFork: 탐색 표시줄 개선**](https://greasyfork.org/scripts/501880): 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. +> - [**Greasyfork 프레이머**](https://greasyfork.org/scripts/497346): ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 +> - [**GreasyFork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 +> - [**Script Finder 그리스 원숭이 스크립트 조회**](https://greasyfork.org/scripts/498904): Script Finder 해당 웹사이트에 적용되는 웹사이트를 찾으세요. 그리스 원숭이 스크립트。 + + + + + + +> ### 🔍성인용 스크립트를 찾고 있을 수도 있습니다. +> +> - [**MissAV 자동 로그인**](https://greasyfork.org/scripts/505325): 발각 MissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +> - [**MissAv즐겨찾는 동영상 일괄 백업**](https://greasyfork.org/scripts/497682): 현재부터missav이미지 파일 및 비디오 정보를 얻는 페이지,그리고 그 결과를 병합한 후 생성된 웹페이지 파일을 다운로드할 수 있도록 제공합니다. +> - [**ThisAV 자동 로그인**](https://greasyfork.org/scripts/506528): 발각 ThisAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +> - [**JableTV 자동 로그인**](https://greasyfork.org/scripts/506730): 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. + + + + + + +> ### 🔍자동 번역을 찾고 계실 수도 있습니다 +> +> - [**외국어 터미네이터**](https://greasyfork.org/scripts/504890): 중국어가 아닌 문자 인식,길이가 그 이상인 경우5그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그런 다음 원본 텍스트를 중국어로 번역하고 바꿉니다. +> - [**웹페이지 번역——중국어로 자동 번역됨**](https://greasyfork.org/scripts/505208): 중국어가 아닌 웹페이지의 오른쪽 하단에 표시(왼쪽 하단으로 조정 가능)추가하다google번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 + + + + + + +
    + + diff --git a/github-sort-by-date/README_vi.md b/github-sort-by-date/README_vi.md new file mode 100644 index 000000000..b4761f779 --- /dev/null +++ b/github-sort-by-date/README_vi.md @@ -0,0 +1,231 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + Tiếng Việt +
    + 👆️truy cậpGitHub Tập tin Readme trên ứng dụng để có trải nghiệm tốt hơn。 +
    +
    + + + +
    + + + + + +
    +

    GitHub Sắp xếp theo ngày

    +

    「 Thay đổi cách sắp xếp tệp thành giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GitHub Sắp xếp theo ngày + +Bản mô tả người dùng này sẽ GitHub Các file trong kho được tự động sắp xếp theo thứ tự giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 + + + +## đặc trưng + +- Tự động sắp xếp tệp theo ngày cập nhật khi tải trang。 +- Áp dụng cho tất cả GitHub nhà kho。 + + + +## sử dụng + +- Tập lệnh sẽ tự động sắp xếp tệp theo ngày tải trang,Không cần can thiệp thủ công。 + + + +## Sửa đổi nguồn + +tác giả[androidcn](https://greasyfork.org/zh-CN/users/18158)kịch bản[Github Sắp xếp theo ngày cập nhật tập tin](https://greasyfork.org/scripts/492514),Cảm giácCảm ơntác giảcủasiêng năngnhân côngkhôn ngoanKhôn ngoan +![1.png](https://s2.loli.net/2024/08/26/UjuVOtcvks8FPaB.png) + + +## làmsử dụnggiúp đỡgiúp đỡ + + + +## Giúp đỡ + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Gửi thông tin hiển thị xem web**](https://greasyfork.org/scripts/505830): Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 +> - [**Trợ lý nhảy nhanh kho GitHub**](https://greasyfork.org/scripts/515205): 🤠 Trợ lý nhảy nhanh kho GitHub, được thiết kế đặc biệt để giúp người dùng truy cập nhanh vào kho của họ trên GitHub. Nó tạo ra một nút ở đầu thanh điều hướng. Nhấp để mở rộng tất cả các kho lưu trữ của bạn và dễ dàng chuyển đến trang kho lưu trữ GitHub của riêng bạn mà không cần sử dụng menu phụ của GitHub. +> - [**GitHub Trình làm đẹp danh sách tập tin**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。Thêm màu sắc và biểu tượng vào tệp theo loại,Hiển thị hình ảnh nhỏ thay cho biểu tượng loại tệp trong cây nguồn kho lưu trữ +> - [**Github Danh sách ngôn ngữ mã hiển thị tất cả**](https://greasyfork.org/scripts/509889): Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong“khác”Xuống +> - [**GitHub Tự động xác nhận ủy quyền thiết bị**](https://greasyfork.org/scripts/508956): hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 +> - [**GitHub trình tải xuống thư mục**](https://greasyfork.org/scripts/505496): Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub thư mục。 +> - [**Github Sao chép tập tin gốc URL với các tập tin tải về**](https://greasyfork.org/scripts/505501): Nút thêm vào cuối mỗi dòng tập tin,để sao chép tập tin gốc URL và tải về các tập tin +> - [**🤠 Kích thước hiển thị kho trợ lý nâng cao của Github**](https://greasyfork.org/scripts/502291): 🤠 Kích thước hiển thị kho: Trên mã tìm kiếm, tìm kiếm kho, trang vấn đề, danh sách kho của người dùng và trang kho, kích thước của kho sẽ được hiển thị bên cạnh tên kho, giúp người dùng nhanh chóng hiểu được quy mô của kho và tối ưu hóa quy mô kho của mình. lựa chọn. Cảnh báo phát triển không hoạt động: Nếu kho lưu trữ không được cập nhật trong sáu tháng qua, hệ thống sẽ thêm lời nhắc ở đầu kho lưu trữ để nhắc nhở người dùng rằng kho lưu trữ không hoạt động và hiển thị thời gian cập nhật lần cuối. Điều này giúp người dùng xác định được tình trạng hoạt động và bảo trì của kho. Nhảy nhanh trong kho: Khi duyệt kho, người dùng có thể dễ dàng xem danh sách tất cả các kho của người dùng, cung cấp lối vào để nhanh chóng chuyển đến các kho khác nhau. Người dùng có thể nhanh chóng tìm và truy cập các dự án khác mà họ quan tâm, nâng cao hiệu quả công việc. Tình huống sử dụng: Nhà phát triển: Bằng cách hiển thị quy mô kho và cảnh báo đang hoạt động, bạn có thể nhanh chóng lọc ra các thư viện phù hợp để phát triển và tránh sử dụng các dự án không còn được bảo trì. Quản lý dự án: Thông qua chức năng nhảy nhanh, bạn có thể dễ dàng quản lý và điều phối nhiều dự án, đồng thời nâng cao hiệu quả công việc. Người học: Khi học các công nghệ mới, họ có thể dễ dàng tìm thấy các dự án nguồn mở có liên quan hơn và nhanh chóng kiểm tra hoạt động cũng như quy mô của dự án. 🤠 +> - [**GitHub Sắp xếp theo ngày**](https://greasyfork.org/scripts/505218): Thay đổi cách sắp xếp tệp thành giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 + + + + + +## Giúp đỡ + +Trình duyệt và trình quản lý tập lệnh được đề xuất: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**Nếu bạn cần biết thêm về cách cài đặt userscript,[bấm vào tôi](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)Xem giảng dạy đồ họa!** + + + +### Xem tất cả các tập lệnh xuất bản + + + + + + +> ### 🔍có thể bạn đang tìm kiếmChatGPTTập lệnh liên quan +> +> - [**ChatGPTKích thước phông chữ mã giảm**](https://greasyfork.org/scripts/505209): ChatGPT Làm cho phông chữ mã nhỏ hơn và tự động bọc +> - [**ChatGPT Nút trò chuyện sao chép mã và xuất mã**](https://greasyfork.org/scripts/509598): hiện hữu chatgpt.com Thêm hình động ở góc dưới bên phải của khối mã phía trên“Sao chép mã”nút và một cho ChatGPT Khối mã phản hồi thêm nút xuất,Nhắc người dùng lưu mã vào tệp dựa trên ngôn ngữ lập trình được phát hiện bởi tên lớp của khối mã。 +> - [**ChatGPT Giới hạn bộ đếm ký tự (CCCL)**](https://greasyfork.org/scripts/506166): Thêm bộ đếm ký tự vào hộp nhập liệu,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 nhân vật。) +> - [**ChatGPT Thu gọn tin nhắn tự và chiều rộng tối đa**](https://greasyfork.org/scripts/504901): nếp gấpChatGPTtrung bình và dài“Bạn”thông tin,và đặt chiều rộng tối đa + + + + + + +> ### 🔍Bạn có thể đang tìm kiếm các tập lệnh liên quan đến web +> +> - [**Trình quản lý ủy quyền phiên bản clip viết trang web**](https://greasyfork.org/scripts/497403): Quản lý hành vi ghi của các trang web vào bảng nhớ tạm để ngăn chặn việc sao chép tự động trái phép, đồng thời tắt tính năng tải trước nội dung âm thanh và video cũng như tự động phát lại. +> - [**Thang máyCSDNĐăng nhậpSao chép**](https://greasyfork.org/scripts/505207): chết tiệt bạnCSDNĐăng nhậpSao chép,Sao chép mà không cần đăng nhập +> - [**Làm đẹp các biểu mẫu web với độ dốc tuyệt đẹp**](https://greasyfork.org/scripts/507036): Tự động áp dụng độ chuyển màu cho tất cả các cột của bảng để làm đẹp nó +> - [**Đánh dấu từ khóa trên các trang web**](https://greasyfork.org/scripts/498906): Đánh dấu văn bản trên các trang web,nếu nó giúp bạn,Có thể sửa đổi và sử dụng theo ý muốn +> - [**Làm nổi bật từ khóa trang web**](https://greasyfork.org/scripts/498905): Làm nổi bật từ khóa tùy chỉnh trên các trang web bao gồm nội dung được tải động khi cuộn +> - [**Xem trước cửa sổ nhỏ**](https://greasyfork.org/scripts/504880): Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 +> - [**Xóa gạch chân liên kết**](https://greasyfork.org/scripts/498625): Xóa gạch chân liên kết trên tất cả các trang web,và xử lý các liên kết mới một cách linh hoạt +> - [**nút cuộn**](https://greasyfork.org/scripts/497251): Tạo hai nút ở bên phải trang để cuộn trang +> - [**Ghim vào nút trên và dưới**](https://greasyfork.org/scripts/500255): Tạo hai nút trên tất cả các trang,Một để làm mịn trở lại đầu trang,Một để cuộn liên tục xuống phía dưới,Bấm lần nữa để hủy cuộn xuống dưới cùng + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Gửi thông tin hiển thị xem web**](https://greasyfork.org/scripts/505830): Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。 +> - [**Trợ lý nhảy nhanh kho GitHub**](https://greasyfork.org/scripts/515205): 🤠 Trợ lý nhảy nhanh kho GitHub, được thiết kế đặc biệt để giúp người dùng truy cập nhanh vào kho của họ trên GitHub. Nó tạo ra một nút ở đầu thanh điều hướng. Nhấp để mở rộng tất cả các kho lưu trữ của bạn và dễ dàng chuyển đến trang kho lưu trữ GitHub của riêng bạn mà không cần sử dụng menu phụ của GitHub. +> - [**GitHub Trình làm đẹp danh sách tập tin**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier là một tập lệnh người dùng,được sử dụng để tăng cường GitHub Hiển thị tác dụng của file trong kho。Nó có thể thêm màu sắc vào tập tin và thư mục,và thay thế các biểu tượng loại tệp bằng hình ảnh nhỏ,Làm cho cơ sở mã dễ dàng duyệt và quản lý hơn。Thêm màu sắc và biểu tượng vào tệp theo loại,Hiển thị hình ảnh nhỏ thay cho biểu tượng loại tệp trong cây nguồn kho lưu trữ +> - [**Github Danh sách ngôn ngữ mã hiển thị tất cả**](https://greasyfork.org/scripts/509889): Mở rộng Github Danh sách ngôn ngữ trên kho lưu trữ,Hiển thị từng ngôn ngữ,Thay vì giấu những phần nhỏ trong“khác”Xuống +> - [**GitHub Tự động xác nhận ủy quyền thiết bị**](https://greasyfork.org/scripts/508956): hiện hữuGitHubTrang ủy quyền tự động nhập mã ủy quyền và tự động xác nhận.。 +> - [**GitHub trình tải xuống thư mục**](https://greasyfork.org/scripts/505496): Thêm nút tải xuống,Cho phép dễ dàng tải xuống cụ thể GitHub thư mục。 +> - [**Github Sao chép tập tin gốc URL với các tập tin tải về**](https://greasyfork.org/scripts/505501): Nút thêm vào cuối mỗi dòng tập tin,để sao chép tập tin gốc URL và tải về các tập tin +> - [**🤠 Kích thước hiển thị kho trợ lý nâng cao của Github**](https://greasyfork.org/scripts/502291): 🤠 Kích thước hiển thị kho: Trên mã tìm kiếm, tìm kiếm kho, trang vấn đề, danh sách kho của người dùng và trang kho, kích thước của kho sẽ được hiển thị bên cạnh tên kho, giúp người dùng nhanh chóng hiểu được quy mô của kho và tối ưu hóa quy mô kho của mình. lựa chọn. Cảnh báo phát triển không hoạt động: Nếu kho lưu trữ không được cập nhật trong sáu tháng qua, hệ thống sẽ thêm lời nhắc ở đầu kho lưu trữ để nhắc nhở người dùng rằng kho lưu trữ không hoạt động và hiển thị thời gian cập nhật lần cuối. Điều này giúp người dùng xác định được tình trạng hoạt động và bảo trì của kho. Nhảy nhanh trong kho: Khi duyệt kho, người dùng có thể dễ dàng xem danh sách tất cả các kho của người dùng, cung cấp lối vào để nhanh chóng chuyển đến các kho khác nhau. Người dùng có thể nhanh chóng tìm và truy cập các dự án khác mà họ quan tâm, nâng cao hiệu quả công việc. Tình huống sử dụng: Nhà phát triển: Bằng cách hiển thị quy mô kho và cảnh báo đang hoạt động, bạn có thể nhanh chóng lọc ra các thư viện phù hợp để phát triển và tránh sử dụng các dự án không còn được bảo trì. Quản lý dự án: Thông qua chức năng nhảy nhanh, bạn có thể dễ dàng quản lý và điều phối nhiều dự án, đồng thời nâng cao hiệu quả công việc. Người học: Khi học các công nghệ mới, họ có thể dễ dàng tìm thấy các dự án nguồn mở có liên quan hơn và nhanh chóng kiểm tra hoạt động cũng như quy mô của dự án. 🤠 +> - [**GitHub Sắp xếp theo ngày**](https://greasyfork.org/scripts/505218): Thay đổi cách sắp xếp tệp thành giảm dần theo ngày,Thuận tiện xem các tập tin cập nhật mới nhất。 + + + + + + +> ### 🔍có thể bạn đang tìm kiếmGoogleTập lệnh liên quan +> +> - [**Google Trợ lý tìm kiếm nâng cao**](https://greasyfork.org/scripts/502652): Thêm biểu mẫu tìm kiếm nâng cao vào đầu trang tìm kiếm Google của bạn +> - [**Chặn trang tìm kiếm Google**](https://greasyfork.org/scripts/500262): hiện hữugoogleTìm kiếm và chặn các trang web cụ thể + + + + + + +> ### 🔍có thể bạn đang tìm kiếmGreasyForkTập lệnh liên quan +> +> - [**Greasy forkCác trang tập lệnh phù hợp để nâng cao URL**](https://greasyfork.org/scripts/497317): Trang chi tiết tập lệnh phù hợp với các URL không chuyển sang tìm kiếm theo mặc định. Chuyển đổi thành liên kết văn bản có thể nhấp và lời nhắc bật lên +> - [**GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản**](https://greasyfork.org/scripts/508968): sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. +> - [**GreaysFork Nâng caoWebHookĐồng bộ hóa cài đặt**](https://greasyfork.org/scripts/506717): GreaysFork Nhập nhanh thông tin đồng bộ script,Và thêm mã ngôn ngữ cho nhiều quốc gia theo đợt,Thay vì nhấp vào từng hộp lựa chọn và đi tới URL tương ứng。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): Định dạng mặc định được sử dụng trong diễn đàn làMarkdown,Thêm liên kết trợ giúp định dạng và xuất bản tập lệnh mới,Thanh công cụ thời gian trả lời có bật tính năng chỉnh sửa nhanh +> - [**Greasyfork Script hiển thị xếp hạng**](https://greasyfork.org/scripts/501119): Thêm xếp hạng tập lệnh sau tên tập lệnh khi duyệt danh sách tập lệnh +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Tìm kiếm bằng GoogleGreasyForkVàSleazyForkchữ viết trên +> - [**GreasyFork: Cải tiến thanh điều hướng**](https://greasyfork.org/scripts/501880): Thêm danh sách người dùng trên thanh điều hướng,bảng điều khiển,Bộ sưu tập vv... +> - [**Greasyfork Thợ làm keo**](https://greasyfork.org/scripts/497346): vì Greasyfork Cung cấp các chức năng sử dụng khác nhau,thời gian tuyệt đối,Màn hình rộng web,Cải tiến trang tập lệnh,Tải xuống tiện ích mở rộng,Sửa chữa bảng điều khiển và một loạt các hoạt động +> - [**GreasyFork Trợ lý thông báo**](https://greasyfork.org/scripts/506345): Khi có câu trả lời mới cho tập lệnh của bạn hoặc cho cuộc thảo luận mà bạn đang tham gia,Tập lệnh sẽ hiển thị nội dung thảo luận mới nhất trong một cửa sổ phương thức trên trang web。 +> - [**Script Finder Tra cứu tập lệnh GreasyFork**](https://greasyfork.org/scripts/498904): Script Finder Tìm trên bất kỳ trang web nào áp dụng cho trang web đó Kịch bản khỉ mỡ。 + + + + + + +> ### 🔍Có thể bạn đang tìm kiếm kịch bản dành cho người lớn +> +> - [**MissAV Đăng nhập tự động**](https://greasyfork.org/scripts/505325): Phát hiện MissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập +> - [**MissAvSao lưu hàng loạt video yêu thích**](https://greasyfork.org/scripts/497682): từ hiện tạimissavTrang lấy file hình ảnh và thông tin video,Và sau khi hợp nhất các kết quả, tệp trang web được tạo sẽ được cung cấp để tải xuống. +> - [**ThisAV Đăng nhập tự động**](https://greasyfork.org/scripts/506528): Phát hiện ThisAV tình trạng,và tự động đăng nhập khi chưa đăng nhập +> - [**JableTV Đăng nhập tự động**](https://greasyfork.org/scripts/506730): Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập + + + + + + +> ### 🔍Bạn có thể đang tìm kiếm bản dịch tự động +> +> - [**đầu cuối ngoại ngữ**](https://greasyfork.org/scripts/504890): Nhận biết các ký tự không phải tiếng Trung,Nếu chiều dài lớn hơn5Và văn bản dịch không chứa tiếng Trung Quốc,Sau đó dịch và thay thế văn bản gốc sang tiếng Trung +> - [**dịch trang web——Tự động dịch sang tiếng Trung**](https://greasyfork.org/scripts/505208): Cung cấp góc dưới bên phải của mỗi trang web không phải tiếng Trung Quốc(Có thể điều chỉnh ở góc dưới bên trái)thêm mộtgoogleBiểu tượng dịch,Phiên bản này là phiên bản dịch tiếng Trung,Chỉ dịch tiếng nước ngoài sang tiếng Trung,Thêm bản dịch tự động + + + + + + +
    + + diff --git a/github-sort-by-date.user.js b/github-sort-by-date/github-sort-by-date.user.js similarity index 99% rename from github-sort-by-date.user.js rename to github-sort-by-date/github-sort-by-date.user.js index efeca161a..05da702b7 100644 --- a/github-sort-by-date.user.js +++ b/github-sort-by-date/github-sort-by-date.user.js @@ -77,7 +77,7 @@ // @description Change the file sorting order to descending by date for easier viewing of the most recently updated files. // @namespace https://github.com/ChinaGodMan/UserScripts // @version 1.1.0.23 -// @author @Androidcn ,人民的勤务员 +// @author @Androidcn ,人民的勤务员 // @match https://github.com/* // @icon data:image/png;base64,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 // @iconbak https://www.google.com/s2/favicons?sz=64&domain=github.com @@ -117,7 +117,7 @@ var files = document.querySelector('[aria-labelledby="folders-and-files"] tbody') var children = [...files.children] files.replaceChildren( - children[0], ...[...files.querySelectorAll('.react-directory-row')].sort((a, b) => new Date(a.querySelector('relative-time').datetime) < new Date(b.querySelector('relative-time').datetime) ? 1 : -1), children.at(-1), + children[0], ...[...files.querySelectorAll('.react-directory-row')].sort((a, b) => new Date(a.querySelector('relative-time').datetime) < new Date(b.querySelector('relative-time').datetime) ? 1 : -1), children.at(-1) ) console.log('已按文件更新日期排序') } diff --git a/Script details/github-sort-by-date/preview/1.png b/github-sort-by-date/preview/1.png similarity index 100% rename from Script details/github-sort-by-date/preview/1.png rename to github-sort-by-date/preview/1.png diff --git a/Script details/google-advanced-search/Change history/README.md b/google-advanced-search/Change history/README.md similarity index 99% rename from Script details/google-advanced-search/Change history/README.md rename to google-advanced-search/Change history/README.md index d09b2e1ce..41b6096c4 100644 --- a/Script details/google-advanced-search/Change history/README.md +++ b/google-advanced-search/Change history/README.md @@ -1,11 +1,13 @@ # **🛠️ Google 高级搜索 更新日志** ### **📅 2024/8/5 23:18 - Ver 0.1.9.1** + **新增**: 增加脚本图标 --- ### **📅 2024/8/5 10:26 - Ver 0.1.9** + **问题**: 移动设备无法显示高级搜索框。 **修复**: 下面代码仅在 PC 端生效 `searchContainer.appendChild(toggleButton)`。 diff --git a/google-advanced-search/README.md b/google-advanced-search/README.md new file mode 100644 index 000000000..c11e451c3 --- /dev/null +++ b/google-advanced-search/README.md @@ -0,0 +1,226 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    Google 高级搜索助手

    +

    「 在谷歌搜索页面顶部添加一个高级搜索表单 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ Google 高级搜索 更新日志

    +

    📅 2024/8/5 23:18 - Ver 0.1.9.1

    +

    新增: 增加脚本图标

    +
    +

    📅 2024/8/5 10:26 - Ver 0.1.9

    +

    问题: 移动设备无法显示高级搜索框。
    +修复: 下面代码仅在 PC 端生效 searchContainer.appendChild(toggleButton)

    +
    + +
    + + + + + +# Google 高级搜索助手 + +这是一个为 Google 添加高级搜索表单的用户脚本。它能在页面顶部添加一个可隐藏的高级搜索表单,使您能够更精确地搜索信息。 + + + +## 功能 + +- 在 Google 搜索页面顶部添加一个 “高级搜索” 按钮,点击按钮可显示高级搜索表单。 +- 高级搜索表单包含了以下搜索选项: + - `以下所有字词`:搜索结果中必须包含所有指定的关键字。 + - `与以下字词完全匹配`:搜索结果中必须包含完全匹配指定字词的结果。 + - `以下任意字词`:搜索结果中必须包含指定的任意一个关键字。 + - `排除以下字词`:搜索结果中不包含指定的关键字。 + - `包含的数字范围`:搜索结果中包含指定范围内的数字。 + - `最后更新时间`:搜索结果中包含指定更新时间的结果。 + - `网站或域名`:搜索结果中包含指定网站或域名的结果。 + - `文件类型`:搜索结果中包含指定文件类型的结果。 +- 可以保存以前的搜索选项,这样在打开新页面时会自动填充表单。 +- 提供清空按钮,可以清除表单中的数据。 + +## 感谢 + +脚本修改自 **[shiquda](https://greasyfork.org/users/935206)** 发布的脚本 [Google Advanced Search Assistant](https://greasyfork.org/scripts/474178) + +![mb_en.png](https://s2.loli.net/2024/08/05/VcqI6pXs3AaOW1C.png) +![PC_en.png](https://s2.loli.net/2024/08/05/MXF8JdpqnyreuRf.png) + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/google-advanced-search/README_en.md b/google-advanced-search/README_en.md new file mode 100644 index 000000000..23facd764 --- /dev/null +++ b/google-advanced-search/README_en.md @@ -0,0 +1,241 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    Google Advanced search assistant

    +

    「 Add an advanced search form to the top of your Google search page 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ Google Advanced search Change log

    +

    📅 2024/8/5 23:18 - Ver 0.1.9.1

    +

    New: Add script icon

    +
    +

    📅 2024/8/5 10:26 - Ver 0.1.9

    +

    issues: Advanced search box cannot be displayed on mobile devices。
    +repair: The code below is only PC Valid on the terminal searchContainer.appendChild(toggleButton)

    +
    + +
    + + + + + +# Google Advanced Search Assistant + +This is a user script that adds an advanced search form to Google. It adds a collapsible advanced search form at the top of the page, allowing you to search for information with more precision. + + + +## Features + +- Adds an "Advanced Search" button at the top of the Google search page. Clicking the button will display the advanced search form. +- The advanced search form includes the following search options: + - "All of these words": The search results must include all specified keywords. + - "Exact word or phrase": The search results must include an exact match of the specified word or phrase. + - "Any of these words": The search results must include any of the specified keywords. + - "None of these words": The search results must not include the specified keywords. + - "Number range": The search results must include numbers within the specified range. + - "Last update": The search results must include results that were last updated within the specified time frame. + - "Site or domain": The search results must include results from the specified website or domain. + - "File type": The search results must include results of the specified file type. +- The script can save previous search options, so the form will be automatically filled when opening a new page. +- Provides a "Clear" button to clear the form data. + + + +## Usage + +1. Install a user script manager, such as Tampermonkey. +2. Install this Userscipt. +3. When opening a Google search page, you would see a button called "Advanced search" on the top of the page. +4. Click the blue button and the form of advanced search will be shown. +5. Fill in the desired search options in the form. +6. Click the "Search" button to perform the search, or click the "Clear" button to clear the form data. + +Note: This script is specifically designed for the Google search page and can only be used on Google search pages. + + + +## Author + +The script is modified from the user **[shiquda](https://greasyfork.org/users/935206)**'s script [Google Advanced Search Assistant](https://greasyfork.org/scripts/474178) Thanks to the original author** shiquda**’s **hard work** and **wisdom** + +![mb_en.png](https://s2.loli.net/2024/08/05/VcqI6pXs3AaOW1C.png) +![PC_en.png](https://s2.loli.net/2024/08/05/MXF8JdpqnyreuRf.png) + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/google-advanced-search.user.js b/google-advanced-search/google-advanced-search.user.js similarity index 80% rename from google-advanced-search.user.js rename to google-advanced-search/google-advanced-search.user.js index e3afdf2ac..664ceb8ba 100644 --- a/google-advanced-search.user.js +++ b/google-advanced-search/google-advanced-search.user.js @@ -77,7 +77,7 @@ // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.1.9.45 // @description Add an advanced search form to the top of the page -// @author shiquda &人民的勤务员 +// @author shiquda &人民的勤务员 // @match *://www.google.com/search* // @include *://*google*/search* // @grant GM_addStyle @@ -91,7 +91,7 @@ // ==/UserScript== (function () { - "use strict" + 'use strict' let isMobile = false if ( navigator.userAgent.match(/Android/i) || @@ -111,129 +111,129 @@ try { if ( window.matchMedia && - window.matchMedia("(prefers-color-scheme: dark)").matches + window.matchMedia('(prefers-color-scheme: dark)').matches ) { // Dark mode is enabled isDarkMode = true - console.log("Dark mode is enabled.") + console.log('Dark mode is enabled.') } } catch (error) { - console.log("Failed to determine the color mode.", error) + console.log('Failed to determine the color mode.', error) } - const userLanguage = "" // You can set your language config here manually. 'zh-CN' & 'en' are supported now. + const userLanguage = '' // You can set your language config here manually. 'zh-CN' & 'en' are supported now. - const supportedLanguages = ["zh-CN", "en"] + const supportedLanguages = ['zh-CN', 'en'] const translation = { as_q: { - "zh-CN": "搜索字词:", - en: "Search word:", + 'zh-CN': '搜索字词:', + en: 'Search word:' }, as_epq: { - "zh-CN": "与以下字词完全匹配:", - en: "Match the following words exactly:", + 'zh-CN': '与以下字词完全匹配:', + en: 'Match the following words exactly:' }, as_oq: { - "zh-CN": "包含以下任意字词:", - en: "Contains any of the following words:", + 'zh-CN': '包含以下任意字词:', + en: 'Contains any of the following words:' }, as_eq: { - "zh-CN": "排除以下字词:", - en: "Exclude the following words:", + 'zh-CN': '排除以下字词:', + en: 'Exclude the following words:' }, as_nlo: { - "zh-CN": "包含的数字范围:从", - en: "Number range: from", + 'zh-CN': '包含的数字范围:从', + en: 'Number range: from' }, as_nhi: { - "zh-CN": "到:", - en: "to:", + 'zh-CN': '到:', + en: 'to:' }, lr: { - "zh-CN": "语言:", - en: "Language:", + 'zh-CN': '语言:', + en: 'Language:' }, cr: { - "zh-CN": "地区:", - en: "Region:", + 'zh-CN': '地区:', + en: 'Region:' }, as_qdr: { - "zh-CN": "最后更新时间:", - en: "Last update time:", + 'zh-CN': '最后更新时间:', + en: 'Last update time:' }, as_sitesearch: { - "zh-CN": "网站或域名:", - en: "Website or domain:", + 'zh-CN': '网站或域名:', + en: 'Website or domain:' }, as_occt: { - "zh-CN": "字词出现位置:", - en: "Word position:", + 'zh-CN': '字词出现位置:', + en: 'Word position:' }, as_filetype: { - "zh-CN": "文件类型:", - en: "File type:", + 'zh-CN': '文件类型:', + en: 'File type:' }, tbs: { - "zh-CN": "使用权限:", - en: "Usage rights:", + 'zh-CN': '使用权限:', + en: 'Usage rights:' }, advancedSearch: { - "zh-CN": "高级搜索", - en: "Advanced Search", + 'zh-CN': '高级搜索', + en: 'Advanced Search' }, search: { - "zh-CN": "搜索", - en: "Search", + 'zh-CN': '搜索', + en: 'Search' }, clear: { - "zh-CN": "清空", - en: "Clear", + 'zh-CN': '清空', + en: 'Clear' }, as_qdr_select: { - "": { - "zh-CN": "请选择", - en: "Please select", + '': { + 'zh-CN': '请选择', + en: 'Please select' }, d: { - "zh-CN": "一天内", - en: "Past 24 hours", + 'zh-CN': '一天内', + en: 'Past 24 hours' }, w: { - "zh-CN": "一周内", - en: "Past week", + 'zh-CN': '一周内', + en: 'Past week' }, m: { - "zh-CN": "一月内", - en: "Past month", + 'zh-CN': '一月内', + en: 'Past month' }, y: { - "zh-CN": "一年内", - en: "Past year", - }, + 'zh-CN': '一年内', + en: 'Past year' + } }, as_occt_select: { - "": { - "zh-CN": "请选择", - en: "Please select", + '': { + 'zh-CN': '请选择', + en: 'Please select' }, title: { - "zh-CN": "网页标题中", - en: "In the title of the web page", + 'zh-CN': '网页标题中', + en: 'In the title of the web page' }, body: { - "zh-CN": "网页正文中", - en: "In the body of the web page", + 'zh-CN': '网页正文中', + en: 'In the body of the web page' }, url: { - "zh-CN": "网页网址中", - en: "In the URL of the web page", + 'zh-CN': '网页网址中', + en: 'In the URL of the web page' }, links: { - "zh-CN": "指向网页的链接中", - en: "In the links to the web page", - }, - }, + 'zh-CN': '指向网页的链接中', + en: 'In the links to the web page' + } + } } const style = ` #advancedSearchToggleButton { @@ -250,8 +250,8 @@ #advancedSearchFormContainer { position: fixed; - ${isMobile ? "top: 150px;" : "top: 130px;"} - ${isMobile ? "left: 15px;" : "left: 30px;"} + ${isMobile ? 'top: 150px;' : 'top: 130px;'} + ${isMobile ? 'left: 15px;' : 'left: 30px;'} display: none; padding: 10px; border: 1px solid #ccc; @@ -259,10 +259,10 @@ font-size: 14px; font-weight: bold; ${isDarkMode - ? "background-color: rgba(0, 0, 0, 1);" - : "background-color: rgba(255, 255, 255, 1);" + ? 'background-color: rgba(0, 0, 0, 1);' + : 'background-color: rgba(255, 255, 255, 1);' } - ${isMobile ? "column-count: 2;" : ""} /* 在移动设备上分为两列 */ + ${isMobile ? 'column-count: 2;' : ''} /* 在移动设备上分为两列 */ z-index: 1000; // Make sure the button is on top of the search bar } @@ -298,7 +298,7 @@ ` GM_addStyle(style) - let language = "en" + let language = 'en' if (userLanguage.length > 0) { // userLanguage is set manually if (supportedLanguages.includes(userLanguage)) { language = userLanguage @@ -309,120 +309,120 @@ // Check if any of the user's preferred languages are supported language = navigator.languages - .map((lang) => lang.split("-")[0]) // Consider only the language part, not the region - .map((lang) => supportedLanguages.find((supportedLang) => supportedLang.split("-")[0] === lang)) // Match with the supported languages + .map((lang) => lang.split('-')[0]) // Consider only the language part, not the region + .map((lang) => supportedLanguages.find((supportedLang) => supportedLang.split('-')[0] === lang)) // Match with the supported languages .filter(Boolean) // Remove undefined values .shift() // Take the first matched language - || "en" // Default to 'en' if no match found + || 'en' // Default to 'en' if no match found console.log(`Here is the language: ${language}`) } // Create user interface - const toggleButton = document.createElement("button") - toggleButton.className = "nfSF8e" - toggleButton.textContent = translation["advancedSearch"][language] - toggleButton.id = "advancedSearchToggleButton" + const toggleButton = document.createElement('button') + toggleButton.className = 'nfSF8e' + toggleButton.textContent = translation['advancedSearch'][language] + toggleButton.id = 'advancedSearchToggleButton' if (isMobile) { - document.querySelector(".Fh5muf").appendChild(toggleButton) + document.querySelector('.Fh5muf').appendChild(toggleButton) } else { - document.querySelector(".logo").appendChild(toggleButton) - const searchContainer = document.querySelector(".RNNXgb") + document.querySelector('.logo').appendChild(toggleButton) + const searchContainer = document.querySelector('.RNNXgb') searchContainer.appendChild(toggleButton) } // Add minimal style for positioning - toggleButton.style.marginTop = "5px" // Add some space above the button - toggleButton.style.marginLeft = "5px" // Add some space to the left of the button + toggleButton.style.marginTop = '5px' // Add some space above the button + toggleButton.style.marginLeft = '5px' // Add some space to the left of the button // Add any additional styles to match the search bar's height or other styling - const formContainer = document.createElement("div") - formContainer.id = "advancedSearchFormContainer" + const formContainer = document.createElement('div') + formContainer.id = 'advancedSearchFormContainer' document.body.appendChild(formContainer) // - const form = document.createElement("form") + const form = document.createElement('form') formContainer.appendChild(form) const params = { - as_q: translation["as_q"][language], - as_epq: translation["as_epq"][language], - as_oq: translation["as_oq"][language], - as_eq: translation["as_eq"][language], - as_nlo: translation["as_nlo"][language], - as_nhi: translation["as_nhi"][language], + as_q: translation['as_q'][language], + as_epq: translation['as_epq'][language], + as_oq: translation['as_oq'][language], + as_eq: translation['as_eq'][language], + as_nlo: translation['as_nlo'][language], + as_nhi: translation['as_nhi'][language], // 'lr': translation['lr'][language], // 'cr': translation['cr'][language], as_qdr: { - name: translation["as_qdr"][language], + name: translation['as_qdr'][language], options: { - "": translation["as_qdr_select"][""][language], - d: translation["as_qdr_select"]["d"][language], - w: translation["as_qdr_select"]["w"][language], - m: translation["as_qdr_select"]["m"][language], - y: translation["as_qdr_select"]["y"][language], - }, + '': translation['as_qdr_select'][''][language], + d: translation['as_qdr_select']['d'][language], + w: translation['as_qdr_select']['w'][language], + m: translation['as_qdr_select']['m'][language], + y: translation['as_qdr_select']['y'][language] + } }, - as_sitesearch: translation["as_sitesearch"][language], + as_sitesearch: translation['as_sitesearch'][language], as_occt: { - name: translation["as_occt"][language], + name: translation['as_occt'][language], options: { - "": translation["as_occt_select"][""][language], - title: translation["as_occt_select"]["title"][language], - body: translation["as_occt_select"]["body"][language], - url: translation["as_occt_select"]["url"][language], - links: translation["as_occt_select"]["links"][language], - }, + '': translation['as_occt_select'][''][language], + title: translation['as_occt_select']['title'][language], + body: translation['as_occt_select']['body'][language], + url: translation['as_occt_select']['url'][language], + links: translation['as_occt_select']['links'][language] + } }, - as_filetype: translation["as_filetype"][language], + as_filetype: translation['as_filetype'][language] // 'tbs': translation['tbs'][language], } for (const param in params) { - if (typeof params[param] === "object") { - const label = document.createElement("label") + if (typeof params[param] === 'object') { + const label = document.createElement('label') label.textContent = params[param].name - const select = document.createElement("select") + const select = document.createElement('select') select.name = param - Object.keys(params[param]["options"]).forEach((option) => { - const optionElement = document.createElement("option") + Object.keys(params[param]['options']).forEach((option) => { + const optionElement = document.createElement('option') optionElement.value = option - optionElement.textContent = params[param]["options"][option] + optionElement.textContent = params[param]['options'][option] select.appendChild(optionElement) }) form.appendChild(label) form.appendChild(select) - form.appendChild(document.createElement("br")) + form.appendChild(document.createElement('br')) continue } - const label = document.createElement("label") + const label = document.createElement('label') label.textContent = params[param] - const input = document.createElement("input") + const input = document.createElement('input') input.name = param - input.type = "text" + input.type = 'text' form.appendChild(label) form.appendChild(input) - form.appendChild(document.createElement("br")) + form.appendChild(document.createElement('br')) } - const searchButton = document.createElement("button") - searchButton.textContent = translation["search"][language] + const searchButton = document.createElement('button') + searchButton.textContent = translation['search'][language] form.appendChild(searchButton) // Add a clear button to reset the form - const clearButton = document.createElement("button") - clearButton.textContent = translation["clear"][language] - clearButton.addEventListener("click", function (event) { + const clearButton = document.createElement('button') + clearButton.textContent = translation['clear'][language] + clearButton.addEventListener('click', function (event) { event.preventDefault() form.reset() }) form.appendChild(clearButton) // Load saved data and fill the form when opening a new page - window.addEventListener("load", function () { + window.addEventListener('load', function () { for (const param in params) { const savedValue = GM_getValue(param) if (savedValue) { @@ -432,22 +432,22 @@ }) // Save form data to Greasemonkey storage - form.addEventListener("input", function () { + form.addEventListener('input', function () { for (const param in params) { GM_setValue(param, form[param].value) } }) // Toggle the form display - toggleButton.addEventListener("click", function (event) { + toggleButton.addEventListener('click', function (event) { event.preventDefault() let status = formContainer.style.display - status = status === "none" || status === "" ? "block" : "none" + status = status === 'none' || status === '' ? 'block' : 'none' formContainer.style.display = status }) // Submit the form - form.addEventListener("submit", function (event) { + form.addEventListener('submit', function (event) { event.preventDefault() const searchParams = new URLSearchParams() for (const param in params) { @@ -457,7 +457,7 @@ } } const searchUrl = - "https://www.google.com/search?" + searchParams.toString() + 'https://www.google.com/search?' + searchParams.toString() window.location.href = searchUrl }) })() diff --git a/Script details/google-advanced-search/preview/PC.png b/google-advanced-search/preview/PC.png similarity index 100% rename from Script details/google-advanced-search/preview/PC.png rename to google-advanced-search/preview/PC.png diff --git a/Script details/google-advanced-search/preview/PC_en.png b/google-advanced-search/preview/PC_en.png similarity index 100% rename from Script details/google-advanced-search/preview/PC_en.png rename to google-advanced-search/preview/PC_en.png diff --git a/Script details/google-advanced-search/preview/mb.png b/google-advanced-search/preview/mb.png similarity index 100% rename from Script details/google-advanced-search/preview/mb.png rename to google-advanced-search/preview/mb.png diff --git a/Script details/google-advanced-search/preview/mb_en.png b/google-advanced-search/preview/mb_en.png similarity index 100% rename from Script details/google-advanced-search/preview/mb_en.png rename to google-advanced-search/preview/mb_en.png diff --git a/google-block-search-sites.user.js b/google-block-search-sites.user.js deleted file mode 100644 index 3526d5c17..000000000 --- a/google-block-search-sites.user.js +++ /dev/null @@ -1,98 +0,0 @@ -// ==UserScript== -// @name 屏蔽谷歌搜索站点 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.0.1.51 -// @description 在google搜索屏蔽指定站点 -// @license MIT -// @author 人民的勤务员 -// @include /^https?://(www|cse)\.google(\.\w+)+/search\?.*$/ -// @run-at document-start -// @grant GM_registerMenuCommand -// @compatible chrome >= 49 -// @compatible firefox >= 29 -// @compatible opera >= 46 -// @compatible safari >= 10.1 -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-google-96.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(function () { - 'use strict' - - // 初始化默认屏蔽站点 - const DEFAULT_BLOCKED_SITES = "csdn" - - // 获取存储的屏蔽站点列表 - function getBlockedSites() { - return localStorage.getItem("blockedSites") || DEFAULT_BLOCKED_SITES - } - - // 设置屏蔽站点列表 - function setBlockedSites(sites) { - localStorage.setItem("blockedSites", sites) - } - - // 注册油猴菜单命令 - GM_registerMenuCommand("❌编辑屏蔽站点", function () { - showEditDialog(getBlockedSites()) - }) - - // 显示编辑对话框 - function showEditDialog(currentSites) { - const overlay = document.createElement('div') - overlay.id = 'overlay' - overlay.style = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 9998;' - - const dialog = document.createElement('div') - dialog.id = 'editDialog' - dialog.style = 'position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; border: 1px solid #ccc; box-shadow: 3px 3px 5px rgba(0,0,0,0.3); z-index: 9999; width: 60%; max-width: 600px; resize: both; overflow: auto;' - dialog.innerHTML = ` -

    编辑屏蔽站点

    -

    请输入用英文逗号分隔的站点:

    - -
    - - -
    - ` - - document.body.appendChild(overlay) - document.body.appendChild(dialog) - - document.getElementById('saveBtn').addEventListener('click', function () { - const newSites = document.getElementById('sitesInput').value - setBlockedSites(newSites) - alert("屏蔽站点已更新,刷新页面以生效。") - closeEditDialog() - }) - - document.getElementById('cancelBtn').addEventListener('click', function () { - closeEditDialog() - }) - - overlay.addEventListener('click', function () { - closeEditDialog() - }) - - function closeEditDialog() { - document.body.removeChild(dialog) - document.body.removeChild(overlay) - } - } - - // 获取搜索参数 - var params = new URLSearchParams(location.search), - q = params.get("q") - - // 获取当前屏蔽站点列表并格式化 - const blockedSites = getBlockedSites().split(",").map(site => `-${site.trim()}`).join(" ") - - // 如果查询参数中没有屏蔽站点,则添加 - if (q && !blockedSites.split(" ").some(site => q.includes(site))) { - params.set("q", q + " " + blockedSites) - location.search = "?" + params.toString() - } - -})() diff --git a/google-block-search-sites/README.md b/google-block-search-sites/README.md new file mode 100644 index 000000000..a001f4464 --- /dev/null +++ b/google-block-search-sites/README.md @@ -0,0 +1,187 @@ + + +
    +
    + + + + + 简体中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    屏蔽谷歌搜索站点

    +

    「 在google搜索屏蔽指定站点 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/google-block-search-sites/google-block-search-sites.user.js b/google-block-search-sites/google-block-search-sites.user.js new file mode 100644 index 000000000..7a7382426 --- /dev/null +++ b/google-block-search-sites/google-block-search-sites.user.js @@ -0,0 +1,100 @@ +// ==UserScript== +// @name 屏蔽谷歌搜索站点 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @version 0.0.1.51 +// @description 在google搜索屏蔽指定站点 +// @description:zh-CN 在google搜索屏蔽指定站点 +// @name:zh-CN 屏蔽谷歌搜索站点 +// @license MIT +// @author 人民的勤务员 +// @include /^https?://(www|cse)\.google(\.\w+)+/search\?.*$/ +// @run-at document-start +// @grant GM_registerMenuCommand +// @compatible chrome >= 49 +// @compatible firefox >= 29 +// @compatible opera >= 46 +// @compatible safari >= 10.1 +// @icon data:image/png;base64,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 +// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-google-96.png +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts +// ==/UserScript== + +(function () { + 'use strict' + + // 初始化默认屏蔽站点 + const DEFAULT_BLOCKED_SITES = 'csdn' + + // 获取存储的屏蔽站点列表 + function getBlockedSites() { + return localStorage.getItem('blockedSites') || DEFAULT_BLOCKED_SITES + } + + // 设置屏蔽站点列表 + function setBlockedSites(sites) { + localStorage.setItem('blockedSites', sites) + } + + // 注册油猴菜单命令 + GM_registerMenuCommand('❌编辑屏蔽站点', function () { + showEditDialog(getBlockedSites()) + }) + + // 显示编辑对话框 + function showEditDialog(currentSites) { + const overlay = document.createElement('div') + overlay.id = 'overlay' + overlay.style = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 9998;' + + const dialog = document.createElement('div') + dialog.id = 'editDialog' + dialog.style = 'position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; border: 1px solid #ccc; box-shadow: 3px 3px 5px rgba(0,0,0,0.3); z-index: 9999; width: 60%; max-width: 600px; resize: both; overflow: auto;' + dialog.innerHTML = ` +

    编辑屏蔽站点

    +

    请输入用英文逗号分隔的站点:

    + +
    + + +
    + ` + + document.body.appendChild(overlay) + document.body.appendChild(dialog) + + document.getElementById('saveBtn').addEventListener('click', function () { + const newSites = document.getElementById('sitesInput').value + setBlockedSites(newSites) + alert('屏蔽站点已更新,刷新页面以生效。') + closeEditDialog() + }) + + document.getElementById('cancelBtn').addEventListener('click', function () { + closeEditDialog() + }) + + overlay.addEventListener('click', function () { + closeEditDialog() + }) + + function closeEditDialog() { + document.body.removeChild(dialog) + document.body.removeChild(overlay) + } + } + + // 获取搜索参数 + var params = new URLSearchParams(location.search), + q = params.get('q') + + // 获取当前屏蔽站点列表并格式化 + const blockedSites = getBlockedSites().split(',').map(site => `-${site.trim()}`).join(' ') + + // 如果查询参数中没有屏蔽站点,则添加 + if (q && !blockedSites.split(' ').some(site => q.includes(site))) { + params.set('q', q + ' ' + blockedSites) + location.search = '?' + params.toString() + } + +})() diff --git a/Script details/greasyfork-discussion-watcher/Change history/README.md b/greasyfork-discussion-watcher/Change history/README.md similarity index 100% rename from Script details/greasyfork-discussion-watcher/Change history/README.md rename to greasyfork-discussion-watcher/Change history/README.md diff --git a/greasyfork-discussion-watcher/README.md b/greasyfork-discussion-watcher/README.md new file mode 100644 index 000000000..70b6f3807 --- /dev/null +++ b/greasyfork-discussion-watcher/README.md @@ -0,0 +1,265 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork 通知助手

    +

    「 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ Greasyfork 通知助手 更新日志

    +

    📅 2024/9/28 10:17 - Ver 1.5.0.4

    +

    新增: https://greasyfork.org/users/*/notifications反转排序,让最新的信息显示在顶部,而不是底部.

    +
    +

    📅 2024/9/24 08:32 - Ver 1.5.0.3

    +

    优化: 🙄 窗口显示新消息数量,当一个discussions没有未读信息时,不会添加分类标题.
    +新增: i18n→[zh-CN,zh-TW,en,ko,ja,vi]

    +
    +

    📅 2024/9/20 18:40 - Ver 1.5.0.2

    +

    新增: 🙄 增加个sweetalert.js第三方库,方便自己在 KIWi 浏览器上使用罢了

    +
    +

    📅 2024/9/12 07:42 - Ver 1.5.0.0

    +

    新增: 添加read=unread参数,只提取未读信息,此版本为最终版本.#259731GreasyFork 已经逐步支持站内通知,脚本将失去存在的意义.

    +
    +

    📅 2024/9/11 07:52 - Ver 1.4.0.0

    +

    新增: 跳过自己新开的讨论,并且在匹配最后发言人用户 ID 失败时,匹配最后发言人.

    +
    +

    📅 2024/9/7 09:06 - Ver 1.3.0.0

    +

    改进: 改为使用网站的讨论列表,增加在信息内添加分类。

    +
    +

    📅 2024/9/4 04:39 - Ver 1.2.0.0

    +

    新增: 增加设置最大消息数量的油猴菜单。
    +新增: 增加跳过最后发言人是 自己 的选项。

    +
    +

    📅 2024/9/3 09:10 - Ver 1.1.0.0

    +

    新增: 增加设置刷新时间的油猴菜单。

    +
    +

    📅 2024/9/2 12:24 - Ver 1.0.0.0

    +

    初始: 初始版本,欢迎使用。

    +
    + +
    + + + + + +# GreasyFork 通知助手 + +![Snipaste_2024-09-02_12-30-03.png](https://s2.loli.net/2024/09/02/Ftpq1KomRcALjIE.png) + +一个 Tampermonkey 脚本,用于在 GreasyFork 上增强讨论列表功能。当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 + + + +## 功能 + +- **自定义样式:** 提供一个干净、用户友好的模态窗口,用于显示最新的讨论内容,样式可自定义。 +- **自动更新:** 脚本会定期检查讨论的更新,并在有新回复时提醒你。 +- **信息提取:** 从网页上提取讨论标题、时间戳和用户名,并将其整理到模态窗口中。 + + + +## 自定义检查时间 + +脚本使用 `delay` 配置项来设定检查更新的间隔时间。时间格式为以下几种组合: + +- `1h1m`:1小时1分钟 +- `30m`:30分钟 +- `1h`:1小时 +- `1m`:1分钟 +- `1s`:1秒 +- `2m1s`:2分1秒 + +你可以根据需要修改 `delay` 配置项的值,以调整脚本检查讨论更新的频率。例如,如果你希望每15分钟检查一次,可以将 `delay` 设置为 `15m`。 + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +## 项目与反馈 + +- **项目页面:** [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) +- **支持与问题反馈:** [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/greasyfork-discussion-watcher/README_en.md b/greasyfork-discussion-watcher/README_en.md new file mode 100644 index 000000000..dc71ddd22 --- /dev/null +++ b/greasyfork-discussion-watcher/README_en.md @@ -0,0 +1,264 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork Notification Assistant

    +

    「 When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ Greasyfork Notification assistant Change log

    +

    📅 2024/9/28 10:17 - Ver 1.5.0.4

    +

    New: https://greasyfork.org/users/*/notificationsreverse sort,Have the latest information appear at the top,instead of the bottom.

    +
    +

    📅 2024/9/24 08:32 - Ver 1.5.0.3

    +

    optimization: 🙄 The window displays the number of new messages,when adiscussionsWhen there are no unread messages,Category titles will not be added.
    +New: i18n→[zh-CN,zh-TW,en,ko,ja,vi]

    +
    +

    📅 2024/9/20 18:40 - Ver 1.5.0.2

    +

    New: 🙄 addsweetalert.jsThird-party libraries,Convenient for yourself KIWi Just use it on the browser

    +
    +

    📅 2024/9/12 07:42 - Ver 1.5.0.0

    +

    New: Add toread=unreadparameter,Extract only unread messages,This version is final.#259731GreasyFork In-site notifications have been gradually supported,Scripts will lose their meaning.

    +
    +

    📅 2024/9/11 07:52 - Ver 1.4.0.0

    +

    New: Skip your own newly opened discussion,and inMatch last speakeruser ID on failure,Match last speaker.

    +
    +

    📅 2024/9/7 09:06 - Ver 1.3.0.0

    +

    improve: Use the site’s discussion list instead,Add categories to information。

    +
    +

    📅 2024/9/4 04:39 - Ver 1.2.0.0

    +

    New: Added grease monkey menu for setting the maximum number of messages。
    +New: Added skip last speaker is Own options。

    +
    +

    📅 2024/9/3 09:10 - Ver 1.1.0.0

    +

    New: Added oil monkey menu to set refresh time。

    +
    +

    📅 2024/9/2 12:24 - Ver 1.0.0.0

    +

    initial: initial version,Welcome。

    +
    + +
    + + + + + +# GreasyFork Discussion Watcher + +A Tampermonkey script designed to enhance the discussion list functionality on GreasyFork. When there are new replies to your scripts or discussions you are involved in, the script will display the latest discussion content in a modal window on the webpage. + + + +## Features + +- **Customizable Style:** Provides a clean, user-friendly modal window to display the latest discussion content, with customizable styles. +- **Automatic Updates:** The script periodically checks for discussion updates and notifies you when there are new replies. +- **Information Extraction:** Extracts discussion titles, timestamps, and usernames from the webpage and organizes them into the modal window. + + + +## Custom Check Interval + +The script uses the `delay` configuration option to set the interval for checking updates. The time format can be one of the following combinations: + +- `1h1m`: 1 hour and 1 minute +- `30m`: 30 minutes +- `1h`: 1 hour +- `1m`: 1 minute +- `1s`: 1 second +- `2m1s`: 2 minutes and 1 second + +You can modify the value of the `delay` configuration option as needed to adjust how often the script checks for discussion updates. For example, if you want to check every 15 minutes, you can set `delay` to `15m`. + + + +## Project and Feedback + +- **Project Page:** [GitHub Repository](https://github.com/ChinaGodMan/UserScripts) +- **Support and Issues:** [Report Issues](https://github.com/ChinaGodMan/UserScripts/issues) + +![Snipaste_2024-09-02_12-30-03.png](https://s2.loli.net/2024/09/02/Ftpq1KomRcALjIE.png) + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/greasyfork-discussion-watcher.user.js b/greasyfork-discussion-watcher/greasyfork-discussion-watcher.user.js similarity index 98% rename from greasyfork-discussion-watcher.user.js rename to greasyfork-discussion-watcher/greasyfork-discussion-watcher.user.js index 09a79a1f8..4c9cf0fd7 100644 --- a/greasyfork-discussion-watcher.user.js +++ b/greasyfork-discussion-watcher/greasyfork-discussion-watcher.user.js @@ -79,7 +79,7 @@ // @version 1.5.0.4 // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYRBAceMUIR3QAAEg9JREFUeNrtXWlwVNW2/k4n3RkbM5FRMEHUBOIAekGMJV4lYVDBAeQ+IYTJODAVjwBXfRZFQRn04vthiQgGEOMDiylY4lB6g1CG8VFJLF4SSYiBRBDTSZM06aQzdH/vB+ccex5Id9IBV9WuJDvnnL3P+s7+9tprr723gBsUkkoAEAShG96VQABqAOHiz+EARog/7wAwGECkmMLEe/QAropJA+AigPMAKsWfbQCuianH7B2iAOgFQehEP4kA/xClqOQHANwL4B4AdwEYCiCkl8/uAFAPoAbAOQBnAZQDqALQhVtcEgAsB3AcwG/il0ofpzaxrONi2Qm3ksIFAFEAxgHYDqDVE+VJEhISwoKCAra0tFCj0TA/P9/uddb363Q6/vTTT/Lfw4YNo0KhaBXrMk6sm3CzKj8JwKsAvlGpVO2zZ8/mkSNHePnyZRoMBrsKcwTAnj17aC2LFi1yCYB1/vnz57ljxw7p73YA34h1TLqZFB8MIDcwMLBi6NChHUuXLuXFixdpT9wF4MyZMxw5ciQHDRrEjz/+mCR5+vRpjwGw/jszM5NRUVEdACoA5Ip1H7ASC+A5AP/rLf6WZMyYMXJeQkICSfLatWu9BqCjo4Pfffed+T0lAB4xs7YGjEwRrQ2jNztQSVQqlUeKdfc6B/e1ANgEIG0gKD4QwGYA3QCoUCgoCAIFQWBqaip//fVXOhN3AfBUsQCoUqluFACK73MBwGwACn+mnN0ATEqlki+//DIrKyu5detWJiUlySCcPXuWJpPJpwA0NjaSJBMTE+W8sWPH9gYAKRkA/Et8V7+SvwE4JFFOQkICT58+TZLs7u7mgQMHOGTIEK9RkKv8Y8eOkSQ3b95MtVrNESNG8MyZM94AgOJI+pD4zn5h108BUG1eyYiICBYVFckv1N3dzeLiYkZGRvYJAPPmzbNpXXv37vUYABeAVIvv3m/jhgAATwO4bK+Co0aNYnl5uYUSiouLOWTIEAqC4FMAADA/P58ajYatra389NNPGRoa6pHCIyMjSZLV1dXO6nRZ1EFAXytfBWCp6NxyWMFRo0bx2LFjMudLdHT77bf72t3Q67R48WLq9Xred999rq5tFscMqr788v9TdGS5fJHU1FSZk83pKCIiwq8BKC0t5bx589y9XiuCENAXnP+s6GFkUFAQU1JSmJiYSEGhcNoSvE1HfpiaRTryaZ8wBcAfUqFz5sxhXV0dy8vL+cL06QwIDHQKQklJiQ0decM68qN0WdSRz0zNGvMCd+3aJX/Rly5d4vQZM5y2hIFKRx6mal+YqLEAvrYubMqUKfKghyTr6+s5ITPzLzq6Pk7w2mBNIY7+bPw6QUFBzM3NpUajsQBhuht0ZM86uonoqEfUmVfcFh8BMDkqLCgoiNnZ2ezo6PiLjmzdFrO90el2C4LAQCdfNABmZ2dbtISGhgZmZWU5BWH06NG9piN3/Ui+8Mq6ce0FAKm94f2zkmNt/fr1fOSRR+isJdiloxkzvGIdeTIK9iMAukVX9g3NJ7wCwDRlyhTq9XoajUbW19czKyuLntLRDC/QkeTKHoBU1CJO6ng8jfgbAM6cOZPd3d0WCp00aRIDAgLcpiNvWEeSK3uA9gclnk5v5ko3h4eHc8eOHezq6iJJmkwmVlRUcNKkSQ4LVNmho4aGBs7oBR0JgsBHH32UZ8+etaAAazpQKpVctWoVy8rKqNfrqdfrWVZWxry8PIt+zN0IC3cpyN7zGhsbOWfOHOmaXE+iF/4PAJ944gkCYGxsLAsLC9nT0yODcOnSpRuiI1fW0YQJE6jT6ezSkfXMmrUyVCoVjxw54nDGrbi4WAbB3QgLTwGw9zzR+VjhTrSFIIZltFsXGhcXx0OHDtFoNHpER7PdpCOFQsG0tDRWVVU5VJ4968hcGatWrSJJarVazp07lzExMYyJieG8efPY0tJCkszLy/MowsJTAOw9b+/evVLYy6uufEVRYmyMxcOllhAfH8/CwkKP6Mgd60ihUDAjI4NlZWUOv153rCOpD8nJybGpx/z580mSpaWlHkVYeAqAvefpdDop7xtRxw5lnL2vv7a21oaOpJYg0dHEiROd9gnO6CgtLY1lZWUWrcsRCIcOHWJISIhdZbS3t5Mko6OjbeoQExNDktTr9R5FWHgKgIvntYs6dijbHRVYVVXVazqyZx39x0svOaQdR/Lee+/J5fz++++9AuBGbHxnALhx7XZHyk9wFKtp7+FxcXEe05E960i63xOpra3lPffcQwD88MMPbSgoOzvbpuy5c+fapaB+AKAVDgKCl3s68vOWdeSptLa28sUXXyQALliwwKYTbm5uZnZ2NqOjoxkdHc2cnBxqtVq7nXBfAyC23OXWylfieri22wVKzdxTOpKsnfr6+hsGwGAw8PXXXycA5uTkWJihR48edXjf4cOHqVQq+xWAjIwMirpWmgNwvzTy9aQFDBs2zCM6csfacUfa29u5cOFCGwAkEFatWsXy8nK2t7dTr9ezvLycK1eulJXfnwAUFhZS1PX95gDkoJeLI9yhI3etHVei0WiYmZk5kF3VbaLO5XjOjd54sCM6mjx5MtPT0z22dhzJiRMnGBUVNdDnCzaKukckgK+89WB7dFRdXc2amhqvKF+j0Tgdcwyg9JWoewwB8Is3H25NR94UjUbDkenpNwMAv+D6IkSMsDf69QUdeUsqKio4avRop069AZDaRd1jqq8KsaYjb4nRaGRJSQlHjR490FvBVAD4py8L8RUdGY1GVlRUMG3EiIEMwD8BoMDXBf1FRw5TAQD84KsCli1bxgcffNAv6Kg/Ju/dSD8A15fte/3hw4cPp8FgsBgNx8bGcufOnS7pyNESpt7QUV8DoFKpuGbNGtbW1tJgMLC2tpZr1qyxGI2LusdFX1Tg888/p1artYknui0iglu2bGFTU5MNJXV1dbG6upqLFi3iwYMHPe43/ImO9u3bZ7eO4uyYlC4CgM7bhcfHx7Ozs1Pye9j1iGZlZXHjxo388ssvWVxczN27d/ONN97g/fffT4VCwZiYGBYUFLCzs3PAWUcTJ04kSba0tDArK0t+X2la1MyNosPkyZNNNTU1LqMHgoOD+cEHH/DKlSvs7u52WoElS5aQJBcsWCB7Tjs6OlhTU8OgoCCLZhoZGcnBgwdTrVbbeE8lEDxpCY7oqC8p6LPPPiNJrl692iJ/9erVJMmdO3dKeUbMmjXLdOnSJZfRA+aL3Fy9yMGDB0mSDz30kE0o++LFi22uDw4OZmJiouziLioqkjvvmJgY7t+/v9d0tHXrVpcfjifi7DmSzyvdasSenp5OkqysrPwTgJSUlLaoqCiX0QMNDQ2cPHkyw8LCXH4BtbW1JMnBgwfLeY8//rgcNWB9/ebNm1lWVsbhw4cTAPfs2cO0tDQ5AsIbdBQfH8+tW7f2CQBSWE1oaKhFvrRQsLW19U8Ksu6EHUUPPPvss243wba2NrsT1OfOnSNJpqamWgRjkWRJSYnTZ3qDjtRqdZ9QkFRH6xAaQRDk4ALzTrjcnclrT8LGJQDM+R4A8/LySJLr1q2T86TYmfnz58uTNitWrGBpaSnb2tpYVVXldTrydfKgBZTbDMTcjR5wh4JiY2NtvmLJJpbCHnU6HXU6nUxt77//vo0Cq6qq5LAYX1pH/dAH/GDjinA3esCdTtg8SElKX3zxBUkyIyODr7zyCkmyoKBA/n9TU5Mc2RAZGUmFQsHIyEiL2CRvWke+AMADK6gACQkJa8LDwz2OHnDHDM3NzaW9KDtpH4fS0lKS5Lhx4+T/Nzc3kySnTZtGlUrFlJQU2QIzj03yZzqaNGmSPA7IzMykSqViZmambOA8+eSTfzrjZsyYkfv22297HD3gaiBmMBi4e/duu/+vrq6Ww1LMmqM8graWAwcO2K2HPw/WzOtsLvv377d0Ry9ZsuTvU6dO7fQ0esCdwUhLS4u178Mifse8pUkpMjKShYWFbGpqolar5bZt2xgWFmZTD1/TkTd8QWvXrmVdXR07OztZV1fHtWvXmluG8oTMUG9PSQLgnXfeyY6ODs6cOdPnVsdAsY4cTUl6dVLePK1bt44nTpzokxcagL4jeVLea2Ep/Z38lY5chaV4JTDLn0AYAHRkEZjlMjRxoLYEP6Yjm9BElbPg3L/oyOvpuL0NnpbfTAD4OR0t92iBxl905NXkcIGGwyVK/bDE/2amo+0uF+l9//339iaQvQ6AK0B6uRTIH+nI5SK9KIVC8e3JkyfZ1NRk404eyAD4CR3ZLlMlKVgv1H7qqac6X3rpJZ9TUF8D0M90ZH+htslksl65nRQeHl7l6AXDwsK4fft2trS08PLly1y6dKmFE02r1VKj0XD9+vVeB8BTMb8nKCiIQ4cO9RodBQYGcsWKFdRoNDQYDKypqeG7777LQYMGyfVNTk5mUVERV65c6fZWBTabdVi//P79+20q9swzz/DkyZM2+bNnz/YbAPbt2+f1mbX4+Hh5mawkZ8+epVqtZlRUFOvr6/nzzz9Ls31ub9YhbVdTYk8ZpaWlvPfee6lWq+XCr169ajff/LyW3ii0NxQkSV1dHR977DGGhITI89veoqPAwEA+/PDDPHXqFEkyPz+fGzZsYEdHB5977rkb2q4G4iZDLdYvMnbsWIuJF2f5V65c8RsAnn76acsQydtu87p1lJycTJI8d+4cKysr+fXXXzMoKOiGNmyCuM3WJnHbLZd7IdjLNxqN/d4JSyIpXEpqtdordCRNvD/wwAPyNjqdnZ1sa2vj+PHje1xuWWanEzaXNHHjOTli2dMX91cAIiIiWFtby/Hjx/eKjo4fP87Q0FAGBATwzTffJEn29PTwrbfekjbtc370iZUZak9mAzA0NDT4BQBSRLXCamDkKN8RBU2bNo0k+dVXX/V6sGY9rSpuSeDetpUuWgAgbtz62muvGf0BAGmjj6ysLIvIM0f51p1wWFgYx48fzwsXLpAkN2zYYHeO2RM6KikpYXBwMAHwhRde4F133eXVjVulLSwPbdq0qd8BsLclmLN8Z+ZzfX29fKpHb+KOKisrZctKnAP36tbFkvwtKirqfH8DkJCQwL1791os8HCWL0loaCg/+eQTNjc389q1aywqKmJycrLDPZE8oaOjR4/KYYiCIPhk825JpsDBkSX+mnrjgXWHjoxGo/lBD13w4fb1kq/oaVw/rOCmB0BaXLJp0ya7iwtNJhO3bdsm8b8JwH+hDw71CRCH1dpbAQAADAsLY15eHqurq9nY2MimpibW1tYyPz9fMm9NAApxA+fI3ChaKgBzAeS72gWwv+W67gFB6P2HmZiYiLvvvhtKpRIXLlxAXV0denp6COB/ALwmRjv0mTg9xuoWSUYAa9GHJyjZa0E2B7ndIukygH/ATw6Alo4y7LkFFO9XRxlaD9b+hesnR9ysyvfbwzzN3RazRSdU901kJQ2I42zNJVV0w7YMRAACAgI4c+ZMPv/880xKStIFBAR8hAFyoLP1fMIj1jNr/g5AXFwc33nnHaakpEgzWQPySHPr6c1ccVK63R8BMJlM8hLZMWPGGAIDAyvFOgfjJpIkAK8mJSX9OyMjw6BUKrlx40ZqNBrqdDoeOHCAd9xxh4VyZs2axR9//JFXr151GHkgiauTMKQIhWvXrlGj0fCjjz5iSEgIy8rKpMiOdqVS+a0YOpKEm1QEceQ8DsD2sLAw3YIFC1hSUkKtVsuamhrZPWxvsZ515AHcPAlDilAwGo1sa2tjY2Mjd+3axbS0NAYGBraK4YLjxLoJuIUkAcByQRCOp6WlXVm4cKFh6tSpnDhxIquqqlhVVcXp06czOjqawcHBNpEHcHFyxalTp+Rls/v27eOKFSsYExOjFwThN1wPEV8OJ4Gyt5IocX3BQk5QUNB/x8bGfpeenv6rWq226TOSkpJ44cIFedOPzs5OajQai4OXBw0axGXLlnHChAkE0J6cnHw+Ojr6W1xfFpQjlqXyF0pwKUajMUAQBMV1n5Zg4ehSKBRd4u8q0enVZcchppKudXXdli1bAvfs2aP+448/wvV6fbhOp7uzq6srzWg03knyDpIxJCMBRHR1dYWpVCoA0Hd1dV0FcBWABsDF8PDwOpVKVaXVan8ZOXJkZ1xcXNvhw4ebxZGsRZlSfUwmk0oQBLS3t3eLwVTuOPvsvo+z9zSX/wfl+jWwZp8+ogAAAABJRU5ErkJggg== // @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @author 人民的勤务员 +// @author 人民的勤务员 // @license MIT // @match https://greasyfork.org/* // @grant GM_setValue @@ -97,7 +97,7 @@ reversal: GM_getValue('reversal', true), isInstalled: GM_getValue('Installed', false),//第一次不加载. lastUpdated: GM_getValue('lastUpdated', 0),//上次更新时间 - delay: GM_getValue('delay', "30m"), // 格式如下: 1h1m1s, 1h1s, 1m, 1s, 1m1s + delay: GM_getValue('delay', '30m'), // 格式如下: 1h1m1s, 1h1s, 1m, 1s, 1m1s userId: null,//当前登录id userName: null, maxItem: GM_getValue('maxItem', 50),//访问时显示最大的信息数量 @@ -116,7 +116,7 @@ Discussions: 'Discussions', title: 'GreasyFork Discussion Watcher Settings', saveBtn: 'Save', - cancelBtn: 'Cancel', + cancelBtn: 'Cancel' }, 'zh-CN': { reversal: '反转通知信息:', loadingquantity: '讨论加载数量:', @@ -172,7 +172,7 @@ title: 'GreasyForkディスカッションウォッチャーの設定', saveBtn: '保存', cancelBtn: 'キャンセル' - }, + } } return (id, lang = '') => { const selectedLang = lang || userLang @@ -199,7 +199,7 @@
    ` Swal.fire({ - imageUrl: "https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png", + imageUrl: 'https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png', imageWidth: 96, imageHeight: 96, footer: '', @@ -302,7 +302,7 @@ var parser = new DOMParser() var doc = parser.parseFromString(data, 'text/html') var elements = doc.querySelectorAll('.discussion-list > div > div') - var discussionsHTML = "" + var discussionsHTML = '' var currentCount = 0 elements.forEach(function (element) { var discussionTitle = element.querySelector('.discussion-title') @@ -329,7 +329,7 @@ } if (discussionInfo.lastedID === config.userId || discussionInfo.lasteduserName === config.userName) { // 最新发言ID是自己,或用户名是自己,跳过 - console.log("skip ") + console.log('skip ') return } var listItemHTML = '
    ' + element.innerHTML + '
    ' @@ -379,7 +379,7 @@ }) } function getUserId() { - const profileLinkElement = document.querySelector("#nav-user-info > span.user-profile-link > a") + const profileLinkElement = document.querySelector('#nav-user-info > span.user-profile-link > a') if (profileLinkElement) { const href = profileLinkElement.getAttribute('href') const match = href.match(/\/users\/(\d+)-/) @@ -403,10 +403,10 @@ [`https://greasyfork.org/discussions?me=script&read=unread&per_page=${config.maxItem}`, translate('ScriptsDiscussions')]//添加read=unread参数,只提取未读信息,此版本为最后版本,Greasyfork已经逐步支持站内通知. ]) } else { - console.log("没有登录,放弃操作") + console.log('没有登录,放弃操作') } - const notificationList = document.querySelector(".notification-list") + const notificationList = document.querySelector('.notification-list') if (notificationList && config.reversal) { const items = Array.from(notificationList.children) items.reverse() diff --git a/Script details/greasyfork-discussion-watcher/preview/1.png b/greasyfork-discussion-watcher/preview/1.png similarity index 100% rename from Script details/greasyfork-discussion-watcher/preview/1.png rename to greasyfork-discussion-watcher/preview/1.png diff --git a/greasyfork-link/README.md b/greasyfork-link/README.md new file mode 100644 index 000000000..d3d3f8f85 --- /dev/null +++ b/greasyfork-link/README.md @@ -0,0 +1,251 @@ + + +
    +
    + + + + + 简体中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    Greasy fork脚本页面适用于网址增强

    +

    「 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + +

    +
    + 该脚本存在BUG, 建议使用 + 【Greasyfork 糊裱匠】 + 【点我安装】 +
    + 内置超多功能, 并且新脚本内的适用于增强功能经过测试完全的没有BUG +
    +
    +

    + + + +## 脚本功能 + +脚本详情页"适用于"下的网址去除默认跳转论坛搜索,改为可以点击的文本链接。点击时弹出提示: + +- 点击"确定"跳转搜索 +- 点击"取消"直接跳转到网站 + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +## 版本更新 + + + +### 0.1 版本 + +~~提供一个菜单可以修改数值点击生效方式~~ + +- 0=弹出提示 +- 1=打开网址 +- 2=在论坛搜索 + + + +### 0.6 版本 + +新增在脚本详情页下方增加一个更改跳转方式的选择框。 + + + +### 0.7 版本 + +新增大人的叉子 + + + +### 0.8 版本(2024 年 06 月 09 日 06:17:02) + +- 移除弹出提示,改为显示窗口,有“跳转,搜索,复制”三个操作 +- 移除更改点击行为时弹出提示,改为 toast 通知 +- 新增链接新窗口打开选项,默认为当前页面跳转 + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/greasyfork-link.user.js b/greasyfork-link/greasyfork-link.user.js similarity index 56% rename from greasyfork-link.user.js rename to greasyfork-link/greasyfork-link.user.js index 1b072e818..4f092ab9d 100644 --- a/greasyfork-link.user.js +++ b/greasyfork-link/greasyfork-link.user.js @@ -1,18 +1,20 @@ // ==UserScript== -// @name Greasy fork脚本页面适用于网址增强 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.9.3.66 -// @description 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 -// @author 人民的勤务员 -// @match https://*.greasyfork.org/zh-CN/scripts/* -// @match https://*.sleazyfork.org/zh-CN/scripts/* -// @icon data:image/png;base64,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 -// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @license MIT -// @grant GM_getValue -// @grant GM_setValue -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts +// @name Greasy fork脚本页面适用于网址增强 +// @name:zh-CN Greasy fork脚本页面适用于网址增强 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @version 0.9.3.66 +// @description 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +// @description:zh-CN 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +// @author 人民的勤务员 +// @match https://*.greasyfork.org/zh-CN/scripts/* +// @match https://*.sleazyfork.org/zh-CN/scripts/* +// @icon data:image/png;base64,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 +// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png +// @license MIT +// @grant GM_getValue +// @grant GM_setValue +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts // ==/UserScript== (function () { @@ -25,7 +27,7 @@ duration = isNaN(duration) ? 3000 : duration var m = document.createElement('div') m.innerHTML = msg - m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: black;line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: white;font-size: 16px;" + m.style.cssText = 'max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: black;line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: white;font-size: 16px;' document.body.appendChild(m) setTimeout(function () { var d = 0.5 diff --git a/Script details/greasyfork-link/preview/image.jpg b/greasyfork-link/preview/image.jpg similarity index 100% rename from Script details/greasyfork-link/preview/image.jpg rename to greasyfork-link/preview/image.jpg diff --git a/Script details/greasyfork-link/preview/image.png b/greasyfork-link/preview/image.png similarity index 100% rename from Script details/greasyfork-link/preview/image.png rename to greasyfork-link/preview/image.png diff --git a/Script details/greasyfork-markdown-toolbar/Change history/README.md b/greasyfork-markdown-toolbar/Change history/README.md similarity index 100% rename from Script details/greasyfork-markdown-toolbar/Change history/README.md rename to greasyfork-markdown-toolbar/Change history/README.md diff --git a/greasyfork-markdown-toolbar/README.md b/greasyfork-markdown-toolbar/README.md new file mode 100644 index 000000000..cfe7b0a8c --- /dev/null +++ b/greasyfork-markdown-toolbar/README.md @@ -0,0 +1,244 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork markdown

    +

    「 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ GreasyFork Markdown Toobar 更新日志

    +

    📅 2024-10-02 - Ver: 2.0.5

    +

    新增: 谷歌快速翻译选中的文本到英格里斯
    可在脚本设置翻译到语言:var translate = "en".

    +

    tl.gif

    +
    +

    📅 2024-08-04 - Ver: 2.0.4

    +

    修改: GreasyFork markdown

    +
      +
    • DOMContentLoaded 有时会与其他脚本冲突,导致监听失败。已更改为 load
    • +
    +
    + +
    + + + +该脚本是[此脚本](https://greasyfork.org/en/scripts/6779-markdown-toolbar-for-gf-and-uso/code?version=179573)的分支,由 wOxxOm 编写,适用于新的 GreasyFork 布局。 +感谢他制作了如此重要的脚本。 + +- 常用格式按钮(仅 Markdown) +- (论坛) HTML 和 Markdown 格式帮助链接 +- CODE 按钮:在选中文本前后添加 `` 或 ```(多行文本时) +- 新评论默认使用 MARKDOWN 格式 - 也可以在您的个人资料设置中进行更改。 + +该脚本在 Tampermonkey 和 Violentmonkey 上测试通过。 +不支持任何版本的 Greasemonkey(脚本可能会运行,但未测试)。 + +**注意事项:** + +- 如果您遇到脚本问题,请在[仓库](https://github.com/darkred/Userscripts/issues)报告,始终欢迎 PR。 +- 请注意,我不是脚本的原作者: + 我的目标是让该脚本在新的 GF 布局上恢复功能。这就是全部。 +- `.markup_choice` 单选按钮是网站的元素,而不是脚本的! + ![markup_choice](https://i.imgur.com/fUkqf9I.jpg) +- 已知问题: + - 目前用于切换到预览标签时隐藏工具栏的方法有缺陷: + 有时工具栏可能不会隐藏,也可能在切换回时无法恢复。 + 工具栏的隐藏时间也早于预期:在点击预览时立即隐藏,而不是在预览标签获得焦点时。 + +**修改内容:** +[GreasyFork markdown](https://greasyfork.org/scripts/422887) + +- 2024-08-04T08:59:11 `DOMContentLoaded` 有时与其他脚本冲突,导致监听器失效。更改为 `load`。 + +**截图:**(见附件) + +如果您有任何 bug、修复建议或想法,请在我的 [GitHub 仓库](https://github.com/darkred/Userscripts)报告 + +![tl.gif](https://s2.loli.net/2024/10/02/oI7mw3JLyzKCDRc.gif) +![截图1](https://greasyfork.s3.us-east-2.amazonaws.com/mjjezdy220vguyllvmpsgpfjqpz8) +![截图2](https://greasyfork.s3.us-east-2.amazonaws.com/asth9x7akm7goqddr5u0f7uia92k) +![截图3](https://greasyfork.s3.us-east-2.amazonaws.com/0imd0nxmpd0jztoqhgionebw4jfi) +![截图4](https://greasyfork.s3.us-east-2.amazonaws.com/u3fgy6vyn01419tqb3zvd9h96bue) + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/greasyfork-markdown-toolbar/README_en.md b/greasyfork-markdown-toolbar/README_en.md new file mode 100644 index 000000000..e28fcb5c5 --- /dev/null +++ b/greasyfork-markdown-toolbar/README_en.md @@ -0,0 +1,246 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork markdown

    +

    「 The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ GreasyFork Markdown Toobar Change log

    +

    📅 2024-10-02 - Ver: 2.0.5

    +

    New: Google quickly translates selected text to Inglis
    You can set the translation to language in the script:var translate = "en".

    +

    tl.gif

    +
    +

    📅 2024-08-04 - Ver: 2.0.4

    +

    Revise: GreasyFork markdown

    +
      +
    • DOMContentLoaded Sometimes conflicts with other scripts,Cause monitoring to fail。changed to load
    • +
    +
    + +
    + + + +The script is a fork of [this script](https://greasyfork.org/en/scripts/6779-markdown-toolbar-for-gf-and-uso/code?version=179573) by wOxxOm, to work with the new GF layout. +Thanks for his work making such an essential script. + +- Common formatting buttons (markdown only) +- (forum) HTML & markdown formatting help links +- CODE markdown button that wraps selected text in ` or ``` if multiple lines are selected. +- MARKDOWN format by default for new comments - also can be set in your profile settings. + +The script works and is tested on Tampermonkey and Violentmonkey. +Greasemonkey -any version- is not supported (the script might work, but is not tested). + +**Notes:** + +- If you have an issue with the script, please report it in the [repo](https://github.com/darkred/Userscripts/issues), always open for PRs. +- Also, please keep in mind that I didn't write the script myself: + I put an effort to make this script, written by someone else, much more experienced than me, work in the new GF layout. + My aim is to restore the functionality. That's all. +- The `.markup_choice` radio buttons are of the site, not of the script! + ![markup_choice](https://i.imgur.com/fUkqf9I.jpg) +- Known issues: + - the method currently used to hide the toolbar when switching to the Preview tab is unfortunately flawed: + sometimes the toolbar might not be hidden, or isn't restored afterwards. + And it's hidden earlier than expected: it's hidden immediately, as you click Preview - not when the Preview tab itself gets the red focus. + +**Modification:** +[GreasyFork markdown](https://greasyfork.org/scripts/422887) + +- 2024-08-04T08:59:11 `DOMContentLoaded` sometimes conflicts with other scripts, causing the listener to fail. Changed to `load`. + +**Screenshots:** (see attachments) + +If you have any bugs, bug fixes or ideas, please report at my [GitHub repo](https://github.com/darkred/Userscripts) + +![tl.gif](https://s2.loli.net/2024/10/02/oI7mw3JLyzKCDRc.gif) +![Screenshot 1](https://greasyfork.s3.us-east-2.amazonaws.com/mjjezdy220vguyllvmpsgpfjqpz8) +![Screenshot 2](https://greasyfork.s3.us-east-2.amazonaws.com/asth9x7akm7goqddr5u0f7uia92k) +![Screenshot 3](https://greasyfork.s3.us-east-2.amazonaws.com/0imd0nxmpd0jztoqhgionebw4jfi) +![Screenshot 4](https://greasyfork.s3.us-east-2.amazonaws.com/u3fgy6vyn01419tqb3zvd9h96bue) + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/greasyfork-markdown-toolbar.user.js b/greasyfork-markdown-toolbar/greasyfork-markdown-toolbar.user.js similarity index 94% rename from greasyfork-markdown-toolbar.user.js rename to greasyfork-markdown-toolbar/greasyfork-markdown-toolbar.user.js index 3785bedc3..64b2d5df4 100644 --- a/greasyfork-markdown-toolbar.user.js +++ b/greasyfork-markdown-toolbar/greasyfork-markdown-toolbar.user.js @@ -76,9 +76,9 @@ // @description:fr-CA Le format par défaut utilisé dans le forum estMarkdown,Ajouter un lien d’aide au format et publier un nouveau script,Barre d’outils de temps de réponse avec édition rapide activée // @namespace https://github.com/ChinaGodMan/UserScripts // @description Select Markdown format by default, add help links, add toolbar formatting buttons for markdown -// @author wOxxOm, darkred, 人民的勤务员 +// @author wOxxOm, darkred, 人民的勤务员 // @contributor JixunMoe -// @contributor 人民的勤务员 +// @contributor 人民的勤务员 // @license MIT // @grant GM_xmlhttpRequest // @include https://greasyfork.org/*discussions/* @@ -87,6 +87,7 @@ // @include https://greasyfork.org/*script_versions/new* // @include https://greasyfork.org/*/conversations/* // @include https://greasyfork.org/*/users/edit +// @include https://greasyfork.org/*/reports/new* // @grant GM_addStyle // @run-at document-start // @version 2.0.5 @@ -104,7 +105,7 @@ // https://greasyfork.org/en/scripts/422445-github-watcher/feedback // https://greasyfork.org/en/users/2160-darkred/conversations/new // https://greasyfork.org/en/users/edit -var translate = "en" +var translate = 'en' var inForum = location.href.indexOf('/discussions') > 0 var inPostNewScriptVer = location.href.indexOf('/versions/new') > 0 @@ -138,12 +139,13 @@ window.addEventListener('load', function (e) { addFeatures(element.appendChild(document.createElement('br'))) }) } else { // every other page - if (nn = document.querySelectorAll('input[value="markdown"]')) { + var nn = document.querySelectorAll('input[value="markdown"]') + if (nn.length > 0) { for (var n, i = 0; (i < nn.length) && (n = nn[i]); i++) { - if (location.href.indexOf('/script_versions/')) { + if (location.href.indexOf('/script_versions/') !== -1) { n.click() } - n.click() // posting a new script + n.click() // 继续点击 addFeatures(n.parentNode.appendChild(document.createElement('br'))) } } @@ -190,12 +192,12 @@ function addFeatures(n) { // Add buttons btnMake(n, '' + __('B') + '', __('Bold'), '**') - btnMake(n, __('#') , __('Title'), '#', ' ') - btnMake(n, '
  • ' +__('-')+'
  • ', __('List'), '- ', ' ') - btnMake(n, __( '>'), __('blockquote'), '
    ', '
    ') - btnMake(n, ''+__('标记')+'', __('高亮显示选中文本'), '', '') + btnMake(n, __('#'), __('Title'), '#', ' ') + btnMake(n, '
  • ' + __('-') + '
  • ', __('List'), '- ', ' ') + btnMake(n, __('>'), __('blockquote'), '
    ', '
    ') + btnMake(n, '' + __('标记') + '', __('高亮显示选中文本'), '', '') btnMake(n, '' + __('I') + '', __('Italic'), '*') - btnMake(n, '
    ' + __('居中') + '
    ', __('内容居中显示'), '
    ','
    ') + btnMake(n, '
    ' + __('居中') + '
    ', __('内容居中显示'), '
    ', '
    ') btnMake(n, '' + __('U') + '', __('Underline'), '', '') btnMake(n, '' + __('S') + '', __('Strikethrough'), '', '') btnMake(n, '<br>', __('Force line break'), '
    ', '', true) @@ -225,26 +227,26 @@ function addFeatures(n) { } } ) - btnMake(n, __("谷歌翻译"), __("快速翻译选中的内容"), + btnMake(n, __('谷歌翻译'), __('快速翻译选中的内容'), function (e) { const translatedzh = edInit(e.target) translateText(translatedzh.sel).then(translatedText => { - edWrapInTag("", translatedText, translatedzh, true) + edWrapInTag('', translatedText, translatedzh, true) }).catch(error => { - alert(" GoogleTranslate ERROR!!! ") + alert(' GoogleTranslate ERROR!!! ') }) } ) const WeiWeiimages = [ - ["npzhyrb4txdoegwl82bkapekufb5", "维维发问:你有眼界吗?"], - ["gkhj9p2qhtm62uza3qveshtooe2u", "维维被你震撼到了!"], - ["p0i0f5xubhln1wvph3ip70zhpzqq", "维维发问:什么叫做搬起石头砸自己的脚?"], - ["nahzae6vc3d3osq861cbt8uaopkk", "维维断言:这就是个国际笑话"], - ["kzpmox79idq4gmsbyoj0yyuhx13v", "维维发问:你怎么敢讲这种话的?"], + ['npzhyrb4txdoegwl82bkapekufb5', '维维发问:你有眼界吗?'], + ['gkhj9p2qhtm62uza3qveshtooe2u', '维维被你震撼到了!'], + ['p0i0f5xubhln1wvph3ip70zhpzqq', '维维发问:什么叫做搬起石头砸自己的脚?'], + ['nahzae6vc3d3osq861cbt8uaopkk', '维维断言:这就是个国际笑话'], + ['kzpmox79idq4gmsbyoj0yyuhx13v', '维维发问:你怎么敢讲这种话的?'] ] const WeiWeiLoveYou = WeiWei(WeiWeiimages, true) - btnMake(n, "维维嘲讽", "来自爱国教授维维的五连问", __(`\n\n` + WeiWeiLoveYou + `\n\n + btnMake(n, '维维嘲讽', '来自爱国教授维维的五连问', __('\n\n' + WeiWeiLoveYou + `\n\n `), '', true) function WeiWei(images, WeiWeiSays) { let html = ` @@ -434,7 +436,7 @@ function translateText(text) { url: api + buildQueryString(params), onload: function (response) { try { - var data = JSON.parse(response.responseText.replace("'", '\u2019')) + var data = JSON.parse(response.responseText.replace('\'', '\u2019')) var translatedText = data[0].reduce((acc, item) => acc + item[0], '') resolve(translatedText) } catch (error) { diff --git a/Script details/greasyfork-markdown-toolbar/preview/1.jpg b/greasyfork-markdown-toolbar/preview/1.jpg similarity index 100% rename from Script details/greasyfork-markdown-toolbar/preview/1.jpg rename to greasyfork-markdown-toolbar/preview/1.jpg diff --git a/Script details/greasyfork-markdown-toolbar/preview/2.jpg b/greasyfork-markdown-toolbar/preview/2.jpg similarity index 100% rename from Script details/greasyfork-markdown-toolbar/preview/2.jpg rename to greasyfork-markdown-toolbar/preview/2.jpg diff --git a/Script details/greasyfork-markdown-toolbar/preview/3.jpg b/greasyfork-markdown-toolbar/preview/3.jpg similarity index 100% rename from Script details/greasyfork-markdown-toolbar/preview/3.jpg rename to greasyfork-markdown-toolbar/preview/3.jpg diff --git a/Script details/greasyfork-markdown-toolbar/preview/4.jpg b/greasyfork-markdown-toolbar/preview/4.jpg similarity index 100% rename from Script details/greasyfork-markdown-toolbar/preview/4.jpg rename to greasyfork-markdown-toolbar/preview/4.jpg diff --git a/Script details/greasyfork-markdown-toolbar/preview/tl.gif b/greasyfork-markdown-toolbar/preview/tl.gif similarity index 100% rename from Script details/greasyfork-markdown-toolbar/preview/tl.gif rename to greasyfork-markdown-toolbar/preview/tl.gif diff --git a/greasyfork-ranks.user.js b/greasyfork-ranks.user.js deleted file mode 100644 index d9e40768d..000000000 --- a/greasyfork-ranks.user.js +++ /dev/null @@ -1,152 +0,0 @@ -// ==UserScript== -// @name Greasyfork Script Display Rating -// @name:zh-CN Greasyfork 脚本显示评分 -// @description:zh-CN 在浏览脚本列表时在脚本名称后面添加脚本评分 -// @name:ar Greasyfork سكريبت لعرض التقييمات -// @description:ar أضف تصنيف البرنامج النصي بعد اسم البرنامج النصي عند تصفح قائمة البرامج النصية -// @name:bg Greasyfork Скрипт за показване на оценки -// @description:bg Добавете оценка на скрипта след името на скрипта, когато преглеждате списъка със скриптове -// @name:cs Greasyfork Skript pro zobrazení hodnocení -// @description:cs Při procházení seznamu skriptů přidejte hodnocení skriptu za název skriptu -// @name:da Greasyfork Script til at vise vurderinger -// @description:da Tilføj scriptvurdering efter scriptnavn, når du gennemser scriptlisten -// @name:de Greasyfork Skript zur Anzeige von Bewertungen -// @description:de Fügen Sie beim Durchsuchen der Skriptliste nach dem Skriptnamen eine Skriptbewertung hinzu -// @name:el Greasyfork Σενάριο για εμφάνιση βαθμολογιών -// @description:el Προσθέστε βαθμολογία σεναρίου μετά το όνομα σεναρίου κατά την περιήγηση στη λίστα σεναρίων -// @name:en Greasyfork Script to display ratings -// @description:en Add script rating after script name when browsing script list -// @name:eo Greasyfork Skripto por montri taksojn -// @description:eo Aldonu skriptrangigon post skriptonomo kiam foliumas skriptliston -// @name:es Greasyfork Script para mostrar calificaciones -// @description:es Agregue calificación de secuencia de comandos después del nombre de la secuencia de comandos al explorar la lista de secuencias de comandos -// @name:fi Greasyfork Komentosarja arvioiden näyttämiseksi -// @description:fi Lisää komentosarjan luokitus ohjelman nimen perään, kun selaat komentosarjaluetteloa -// @name:fr Greasyfork Script pour afficher les notes -// @description:fr Ajouter une note de script après le nom du script lors de la navigation dans la liste des scripts -// @name:he Greasyfork סקריפט להצגת דירוגים -// @description:he הוסף דירוג סקריפט אחרי שם התסריט בעת גלישה ברשימת הסקריפטים -// @name:hr Greasyfork Skripta za prikaz ocjena -// @description:hr Dodajte ocjenu skripte nakon naziva skripte kada pregledavate popis skripti -// @name:hu Greasyfork Szkript az értékelések megjelenítéséhez -// @description:hu A szkriptlista böngészésekor adja hozzá a szkript minősítését a szkript neve után -// @name:id Greasyfork Script untuk menampilkan peringkat -// @description:id Tambahkan peringkat skrip setelah nama skrip saat menjelajahi daftar skrip -// @name:it Greasyfork Script per visualizzare le valutazioni -// @description:it Aggiungi la valutazione dello script dopo il nome dello script quando sfogli l’elenco degli script -// @name:ja Greasyfork 評価を表示するスクリプト -// @description:ja スクリプトリストを参照するときに、スクリプト名の後にスクリプト評価を追加します -// @name:ka Greasyfork სკრიპტი რეიტინგების საჩვენებლად -// @description:ka სკრიპტის სიის დათვალიერებისას დაამატეთ სკრიპტის რეიტინგი სკრიპტის სახელის შემდეგ -// @name:ko Greasyfork 평점을 표시하는 스크립트 -// @description:ko 스크립트 목록 탐색 시 스크립트 이름 뒤에 스크립트 등급 추가 -// @name:nl Greasyfork Script om beoordelingen weer te geven -// @description:nl Voeg een scriptbeoordeling toe na de scriptnaam wanneer u door de scriptlijst bladert -// @name:nb Greasyfork Skript for å vise rangeringer -// @description:nb Legg til skriptvurdering etter skriptnavn når du blar gjennom skriptlisten -// @name:pl Greasyfork Skrypt wyświetlający oceny -// @description:pl Dodaj ocenę skryptu po nazwie skryptu podczas przeglądania listy skryptów -// @name:pt-BR Greasyfork Script para exibir avaliações -// @description:pt-BR Adicione a classificação do script após o nome do script ao navegar na lista de scripts -// @name:ro Greasyfork Script pentru afișarea evaluărilor -// @description:ro Adăugați evaluarea scriptului după numele scriptului când răsfoiți lista de scripturi -// @name:ru Greasyfork Скрипт для отображения рейтингов -// @description:ru Добавить рейтинг сценария после имени сценария при просмотре списка сценариев. -// @name:sk Greasyfork Skript na zobrazenie hodnotení -// @description:sk Pri prehliadaní zoznamu skriptov pridajte hodnotenie skriptu za názov skriptu -// @name:sr Greasyfork Скрипта за приказ оцена -// @description:sr Додајте оцену скрипте после назива скрипте када прегледате листу скрипта -// @name:sv Greasyfork Skript för att visa betyg -// @description:sv Lägg till skriptbetyg efter skriptnamn när du bläddrar i skriptlistan -// @name:th Greasyfork สคริปต์เพื่อแสดงเรตติ้ง -// @description:th เพิ่มการให้คะแนนสคริปต์หลังชื่อสคริปต์เมื่อเรียกดูรายการสคริปต์ -// @name:tr Greasyfork Derecelendirmeleri görüntülemek için komut dosyası -// @description:tr Komut dosyası listesine göz atarken komut dosyası adından sonra komut dosyası derecelendirmesi ekleyin -// @name:ug Greasyfork باھانى كۆرسىتىش ئۈچۈن قوليازما -// @description:ug قوليازما تىزىملىكىنى كۆرگەندە قوليازما نامىدىن كېيىن قوليازما دەرىجىسىنى قوشۇڭ -// @name:uk Greasyfork Скрипт для відображення оцінок -// @description:uk Додайте оцінку сценарію після назви сценарію під час перегляду списку сценаріїв -// @name:vi Greasyfork Script hiển thị xếp hạng -// @description:vi Thêm xếp hạng tập lệnh sau tên tập lệnh khi duyệt danh sách tập lệnh -// @name:zh-TW Greasyfork 腳本顯示評分 -// @description:zh-TW 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 -// @name:zh-HK Greasyfork 腳本顯示評分 -// @description:zh-HK 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 -// @name:fr-CA Greasyfork Script pour afficher les notes -// @description:fr-CA Ajouter une note de script après le nom du script lors de la navigation dans la liste des scripts -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.3.3.63 -// @description Add the script rating after the script name when browsing the script list -// @author 人民的勤务员 -// @match https://greasyfork.org/* -// @match https://sleazyfork.org/* -// @license MIT -// @grant none -// @icon data:image/png;base64,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 -// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== -(function () { - 'use strict' - // 检测脚本列表的出现,并自动插入评分 - function observeScriptList() { - const scriptList = document.querySelector('.script-list') - if (scriptList) { - // 插入评分 - insertRatings(scriptList) - // 配置观察器 - const observer = new MutationObserver(function (mutationsList, observer) { - for (let mutation of mutationsList) { - if (mutation.type === 'childList') { - for (let node of mutation.addedNodes) { - // 检查是否为脚本列表项 - if (node.nodeType === Node.ELEMENT_NODE && node.matches('li[data-script-id]')) { - insertRating(node) - } - } - } - } - }) - // 开始观察脚本列表的变化 - observer.observe(scriptList, { childList: true, subtree: true }) - } - } - // 插入评分 - function insertRating(scriptBlock) { - const ratingElement = scriptBlock.querySelector('dd.script-list-ratings') - if (ratingElement) { - const rating = ratingElement.getAttribute('data-rating-score') - const ratingDisplay = document.createElement('span') - ratingDisplay.textContent = rating.replace(/[^\d.]/g, '') - ratingDisplay.style.marginLeft = '30px' - ratingDisplay.style.fontSize = '1em' - ratingDisplay.style.color = '#ff8c00' - ratingDisplay.style.fontWeight = 'bold' - const titleElement = scriptBlock.querySelector('.script-link') - if (titleElement) { - titleElement.insertAdjacentElement('afterend', ratingDisplay) - } - } - } - // 插入评分到当前页面的脚本列表中 - function insertRatings(scriptList) { - const scriptBlocks = scriptList.querySelectorAll('li[data-script-id]') - scriptBlocks.forEach(insertRating) - } - // 开始观察当前页面脚本列表的出现 - observeScriptList() - // 观察 body 元素以检测页面加载了下一页 - const bodyObserver = new MutationObserver(function (mutationsList, observer) { - mutationsList.forEach(mutation => { - mutation.addedNodes.forEach(node => { - if (node.nodeType === Node.ELEMENT_NODE && node.matches('.script-list')) { - // 页面加载了下一页,自动插入评分 - insertRatings(node) - } - }) - }) - }) - // 开始观察 body 元素的子节点变化 - bodyObserver.observe(document.body, { childList: true, subtree: true }) -})() diff --git a/greasyfork-ranks/README.md b/greasyfork-ranks/README.md new file mode 100644 index 000000000..88a05e9de --- /dev/null +++ b/greasyfork-ranks/README.md @@ -0,0 +1,230 @@ + + +
    +
    + + + + + 简体中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    Greasyfork 脚本显示评分

    +

    「 在浏览脚本列表时在脚本名称后面添加脚本评分 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + +# Greasyfork ranks + +**中文:** + +- 在脚本列表名称后面显示脚本评分 + +**繁体:** + +- 在腳本列表名稱後面添加腳本評分 + +**English:** + +- Display the script rating after the script list name + +**French:** + +- Afficher la note du script après le nom de la liste de scripts + +**Japanese:** + +- スクリプトリスト名の後にスクリプト評価を表示する + +**Korean:** + +- 스크립트 목록 이름 뒤에 스크립트 평가 표시 + + + +## photo: + +![rank.png](https://s2.loli.net/2024/08/05/wvyAz8iVGMWJjEQ.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/Script details/greasyfork-ranks/greasyfork-ranks.user.js b/greasyfork-ranks/greasyfork-ranks.user.js similarity index 99% rename from Script details/greasyfork-ranks/greasyfork-ranks.user.js rename to greasyfork-ranks/greasyfork-ranks.user.js index d9e40768d..151d0e89f 100644 --- a/Script details/greasyfork-ranks/greasyfork-ranks.user.js +++ b/greasyfork-ranks/greasyfork-ranks.user.js @@ -77,7 +77,7 @@ // @namespace https://github.com/ChinaGodMan/UserScripts // @version 1.3.3.63 // @description Add the script rating after the script name when browsing the script list -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://greasyfork.org/* // @match https://sleazyfork.org/* // @license MIT diff --git a/Script details/greasyfork-ranks/preview/rank.png b/greasyfork-ranks/preview/rank.png similarity index 100% rename from Script details/greasyfork-ranks/preview/rank.png rename to greasyfork-ranks/preview/rank.png diff --git a/greasyfork-search.user.js b/greasyfork-search.user.js deleted file mode 100644 index 32e3cd74c..000000000 --- a/greasyfork-search.user.js +++ /dev/null @@ -1,790 +0,0 @@ -// ==UserScript== -// @name GreasyFork Search -// @name:zh-CN GreasyFork Search -// @description:zh-CN 使用谷歌搜索GreasyFork和SleazyFork上的脚本 -// @name:ar GreasyFork Search -// @description:ar البحث باستخدام جوجلGreasyForkوSleazyForkالنص العلوي -// @name:bg GreasyFork Search -// @description:bg Търсете с GoogleGreasyForkиSleazyForkгорен скрипт -// @name:cs GreasyFork Search -// @description:cs Hledejte pomocí GoogleGreasyForkaSleazyForkhorní písmo -// @name:da GreasyFork Search -// @description:da Søg ved hjælp af GoogleGreasyForkogSleazyForkøverste skrift -// @name:de GreasyFork Search -// @description:de Suchen Sie mit GoogleGreasyForkUndSleazyForkOberschrift -// @name:el GreasyFork Search -// @description:el Αναζήτηση χρησιμοποιώντας το GoogleGreasyForkκαιSleazyForkπάνω σενάριο -// @name:en GreasyFork Search -// @description:en Search using GoogleGreasyForkandSleazyForkupper script -// @name:eo GreasyFork Search -// @description:eo Serĉu per GugloGreasyForkkajSleazyForksupra manuskripto -// @name:es GreasyFork Search -// @description:es Buscar usando GoogleGreasyForkySleazyForkguión superior -// @name:fi GreasyFork Search -// @description:fi Hae Googlen avullaGreasyForkjaSleazyForkylempi kirjoitus -// @name:fr GreasyFork Search -// @description:fr Rechercher avec GoogleGreasyForketSleazyForkécriture supérieure -// @name:he GreasyFork Search -// @description:he חפש באמצעות גוגלGreasyForkוSleazyForkכתב עליון -// @name:hr GreasyFork Search -// @description:hr Pretražujte pomoću GoogleaGreasyForkiSleazyForkgornja skripta -// @name:hu GreasyFork Search -// @description:hu Keressen a Google segítségévelGreasyForkésSleazyForkfelső szkript -// @name:id GreasyFork Search -// @description:id Cari menggunakan GoogleGreasyForkDanSleazyForkskrip atas -// @name:it GreasyFork Search -// @description:it Cerca utilizzando GoogleGreasyForkESleazyForkscrittura superiore -// @name:ja GreasyFork Search -// @description:ja Googleを使って検索するGreasyForkそしてSleazyFork上的脚本 -// @name:ka GreasyFork Search -// @description:ka ძიება Google-ის გამოყენებითGreasyForkდაSleazyForkზედა დამწერლობა -// @name:ko GreasyFork Search -// @description:ko Google을 사용하여 검색GreasyFork그리고SleazyFork상적 각본 -// @name:nl GreasyFork Search -// @description:nl Zoek met GoogleGreasyForkEnSleazyForkbovenste schrift -// @name:nb GreasyFork Search -// @description:nb Søk med GoogleGreasyForkogSleazyForkøvre skrift -// @name:pl GreasyFork Search -// @description:pl Szukaj za pomocą GoogleGreasyForkISleazyForkgórny skrypt -// @name:pt-BR GreasyFork Search -// @description:pt-BR Pesquise usando o GoogleGreasyForkeSleazyForkscript superior -// @name:ro GreasyFork Search -// @description:ro Căutați folosind GoogleGreasyForkşiSleazyForkscriptul superior -// @name:ru GreasyFork Search -// @description:ru Поиск с помощью GoogleGreasyForkиSleazyForkверхний сценарий -// @name:sk GreasyFork Search -// @description:sk Hľadajte pomocou GoogleGreasyForkaSleazyForkhorné písmo -// @name:sr GreasyFork Search -// @description:sr Претражујте помоћу Гоогле-аGreasyForkиSleazyForkгорње писмо -// @name:sv GreasyFork Search -// @description:sv Sök med GoogleGreasyForkochSleazyForkövre skrift -// @name:th GreasyFork Search -// @description:th ค้นหาโดยใช้ GoogleGreasyForkและSleazyForkสคริปต์ด้านบน -// @name:tr GreasyFork Search -// @description:tr Google’ı kullanarak arama yapınGreasyForkVeSleazyForküst yazı -// @name:ug GreasyFork Search -// @description:ug Google نى ئىشلىتىپ ئىزدەشGreasyForkۋەSleazyForkئۈستى قوليازما -// @name:uk GreasyFork Search -// @description:uk Пошук за допомогою GoogleGreasyForkіSleazyForkверхній скрипт -// @name:vi GreasyFork Search -// @description:vi Tìm kiếm bằng GoogleGreasyForkVàSleazyForkchữ viết trên -// @name:zh-TW GreasyFork Search -// @description:zh-TW 使用谷歌搜尋GreasyFork和SleazyFork上體文字 -// @name:zh-HK GreasyFork Search -// @description:zh-HK 使用谷歌搜尋GreasyFork和SleazyFork上體文字 -// @name:fr-CA GreasyFork Search -// @description:fr-CA Rechercher avec GoogleGreasyForketSleazyForkécriture supérieure -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.6.5.23 -// @description To search scripts using Google Search -// @author CY Fung , 人民的勤务员 -// @match https://greasyfork.org/* -// @match https://sleazyfork.org/* -// @icon data:image/png;base64,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 -// @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png -// @require https://fastly.jsdelivr.net/npm/jstat@1.9.6/dist/jstat.min.js -// @grant none -// @license MIT - -// ==/UserScript== - - - -(() => { - - - - function jacobi(a) { - var n = a.length - var trial = n * n * 2 - var e = jStat.identity(n, n) - var ev = [] - var i, j, p, q, maxim, s - let vaildResult = false - outer: while (trial-- > 0) { - maxim = a[0][1] - p = 0 - q = 1 - for (i = 0; i < n; i++) { - for (j = 0; j < n; j++) { - if (i != j) { - let t = Math.abs(a[i][j]) - if (maxim < t) { - maxim = t - p = i - q = j - } - } - } - } - - s = jStat.identity(n, n) - - let tanValue = 2 * a[p][q] / (a[p][p] - a[q][q]) - - let cosTwoTheta = Math.sqrt(1 / (1 + tanValue * tanValue)) - let cosTheta = Math.sqrt(.5 * (1 + cosTwoTheta)) - let sinTheta = Math.sqrt(.5 * (1 - cosTwoTheta)) - - s[p][p] = cosTheta - s[p][q] = -sinTheta - s[q][p] = sinTheta - s[q][q] = cosTheta - - e = jStat.multiply(e, s) - a = jStat.multiply(jStat.multiply(jStat.transpose(s), a), s) - - for (i = 0; i < n; i++) { - for (j = i + 1; j < n; j++) { - if (Math.abs(a[i][j]) > .0004) { - continue outer - } - } - } - - vaildResult = true - break - } - if (!vaildResult) { - console.warn("The matrix is not symmetric.") - return null - } - for (i = 0; i < n; i++) ev.push(a[i][i]) - //returns both the eigenvalue and eigenmatrix - return [e, ev] - } - - - - function getVN(A) { - // normalized the matrix values such that det(A) will be a finite value close to 1.0 - // vn = sqrt( ( column_vector_1 ^2 + column_vector_2 ^2 + ... + column_vector_n ^2 ) / n ) - let vn = 0 - const AT = jStat.transpose(A) - let N = AT.length - for (let i = 0; i < N; i++) { - vn += jStat.dot(AT[i], AT[i]) - } - vn = Math.sqrt(vn / N) - return vn - } - - function subtractLambdaFromDiagonal(matrix, lambda) { - // A - lambda I - return matrix.map((row, rowIndex) => row.map((val, colIndex) => rowIndex === colIndex ? val - lambda : val)) - } - - - function eigenvalueNewton(A, lambda0) { - const N = A.length - const epsilon = 1e-5 // epsilon is applied on the normalized scale of lambda - const maxTrial = 8 - - function f(lambda) { - return jStat.det(subtractLambdaFromDiagonal(A, lambda)) - } - - function fPrime(lambda) { - return (f(lambda + epsilon) - f(lambda)) / epsilon - } - - let x_k = lambda0 - let positiveSign = 0 - let negativeSign = 0 - for (let i = 0; i < maxTrial; i++) { - const fx = f(x_k) - const fxPrime = fPrime(x_k) - const diff = fx / fxPrime - if (isNaN(diff)) return x_k // ignore f/f' - const x_k1 = x_k - diff - if ((diff > 0 ? diff : -diff) < epsilon) { - return x_k1 - } - x_k = x_k1 - if (fx > 0) positiveSign = 1 - else if (fx < 0) negativeSign = 1 - } - return positiveSign && negativeSign ? x_k : lambda0 // avoid diverging iterations - } - - function vectorNorm(v) { - // Math.sqrt(v dot v), same as jStat.norm(jStat.transpose(v)) - let s = 0 - for (const k of v) s += k[0] * k[0] - return Math.sqrt(s) - } - - function isUnitVector(v, tol = 0.01) { - // Check if it is likely a unit vector - let s = 0 - for (const k of v) { - s += k[0] * k[0] - if (s > 1 + tol) return false - } - return s > 1 - tol - } - - jStat.jacobiOri = jStat.jacobi - // https://www.statskingdom.com/pca-calculator.html - jStat.jacobi = function (C) { - - const vn = getVN(C) - C = jStat.multiply(C, 1 / vn) - let r1 = jacobi(C) - // let r0 = JSON.parse(JSON.stringify(r1)) - // r0[1] = r0[1].map(v => vn * v); - let A = C - let eigenvectors = r1[0] - let eigenvalues = r1[1] - const iterationCount = 4 - - for (let i = 0; i < eigenvalues.length; i++) { - let q, m - q = jStat.transpose(eigenvectors[i]) - if (!isUnitVector(q)) break - eigenvalues[i] = eigenvalueNewton(A, eigenvalues[i]) // refine eigenvalues obtained in jacobiOri - - // inverse power method (A-lambda I) y_k = b_{k-1} - // b_k = y_k / norm(y_k) - let M = subtractLambdaFromDiagonal(A, eigenvalues[i]) - for (let j = 0; j < iterationCount; j++) { - m = jStat.transpose(jStat.gauss_elimination(M, q)) - m = jStat.multiply(m, 1 / vectorNorm(m)) - if (!isUnitVector(m)) break // avoid Inf / NaN error - q = m - } - eigenvectors[i] = jStat.transpose(q) - - } - r1[1] = r1[1].map(v => vn * v) - return r1 - } - - - -})() - - -jStat.PCA = function PCA(X) { - var m = X.length - var n = X[0].length - var i = 0 - var j, temp1 - var u = [] - var D = [] - var result = [] - var temp2 = [] - var Y = [] - var Bt = [] - var B = [] - var C = [] - var V = [] - var Vt = [] - for (i = 0; i < m; i++) { - u[i] = jStat.sum(X[i]) / n - } - for (i = 0; i < n; i++) { - B[i] = [] - for (j = 0; j < m; j++) { - B[i][j] = X[j][i] - u[j] - } - } - B = jStat.transpose(B) - for (i = 0; i < m; i++) { - C[i] = [] - for (j = 0; j < m; j++) { - C[i][j] = (jStat.dot([B[i]], [B[j]])) / (n - 1) - } - } - result = jStat.jacobi(C) - V = result[0] - D = result[1] - - Vt = jStat.transpose(V) - - - let vd = [] - for (i = 0; i < D.length; i++) { - vd[i] = { - Vt: Vt[i], - D: D[i], - k: D[i] * D[i] - } - } - - vd.sort((a, b) => { - return b.k - a.k - }) - - Vt = vd.map(e => e.Vt) - D = vd.map(e => e.D) - - - - V = null - - - Bt = jStat.transpose(B) - - let pcs_11 = [] - let pt_11 = [1, 1] - for (i = 0; i < m; i++) { - - - pcs_11[i] = jStat.dot([Vt[i]], [pt_11]) - if (pcs_11[i] < 0) Vt[i] = jStat.multiply(Vt[i], -1) - pcs_11[i] = jStat.dot([Vt[i]], [pt_11]) - } - - - - - - for (i = 0; i < m; i++) { - Y[i] = [] - for (j = 0; j < Bt.length; j++) { - Y[i][j] = jStat.dot([Vt[i]], [Bt[j]]) - } - } - return [X, D, Vt, Y] -}; - -(function () { - 'use strict' - - let input = document.querySelector('form input[name="q"]') - if (!(input instanceof HTMLInputElement)) return - let form = input.closest('form') - if (!(form instanceof HTMLFormElement)) return - - - let locales = [...document.querySelectorAll('select#language-selector-locale > option')].map(x => x.value) - - document.head.appendChild(document.createElement('style')).textContent = ` - - - @keyframes rs1tmAnimation { - 0% { - background-position-x: 3px; - } - 100% { - background-position-x: 4px; - } - } - - form.rs1tm{ - position: fixed; - top:-300px; - left:-300px; - width: 1px; - height: 1px; - contain: strict; - display: flex; - overflow: hidden; - animation: rs1tmAnimation 1ms linear 1ms 1 normal forwards; - } - - ` - document.addEventListener('animationstart', (evt) => { - - if (evt.animationName === 'rs1tmAnimation') { - const target = evt.target - target && target.parentNode && target.remove() - } - - }, true) - - window.callback947 = function (rainijpolynomialRegressionJs) { - if (!rainijpolynomialRegressionJs) return - const { PolynomialFeatures, PolynomialRegressor, RegressionError } = rainijpolynomialRegressionJs - if (!PolynomialFeatures || !PolynomialRegressor || !RegressionError) return - - console.log(rainijpolynomialRegressionJs) - } - - form.addEventListener('submit', function (evt) { - - try { - - - let form = evt.target - if (!(form instanceof HTMLFormElement)) return - let input = form.querySelector('input[name="q"]') - if (!(input instanceof HTMLInputElement)) return - - if (form.classList.contains('rs1tm')) return - - let value = input.value - const lang = document.documentElement.lang || '' - - let useLang = false - - - let u = 0 - let isGoogleSearch = false - - let sites = [] - - const split = value.split(/\s+/) - let forceLang = 'all' - let reformedSplit = [] - for (const s of split) { - - if (!isGoogleSearch && /^[a-z][a-z0-9_-]{2,}(\.[a-z][a-z0-9_-]{2,})*(\.[a-z-]{2,4})+$/.test(s)) { - if (/\.(js|css|html|htm|xml|img|svg|txt|php|cgi|xhtml|ini|vue|xhr|ajax)$/.test(s)) { - reformedSplit.push(s) - } else { - sites.push(s) - } - } else if (s === 'js') { - forceLang = 'js'; reformedSplit.push(s) - } else if (s === 'css') { - forceLang = 'css'; reformedSplit.push(s) - } else if (s === 'user.js') { - forceLang = 'js' - } else if (s === 'user.css') { - forceLang = 'css' - } else if (s === '"js"') { - reformedSplit.push('js') - } else if (s === '"css"') { - reformedSplit.push('css') - } else if (u === 0 && s === 'g') { - isGoogleSearch = true - } else if (locales.indexOf(s) >= 0 || s === lang) { - useLang = s - } else { - reformedSplit.push(s) - } - u++ - } - console.log(sites) - - value = reformedSplit.join(' ') - - let onlySite = '' - - if (sites.length === 1 && sites[0]) { - onlySite = sites[0] - } - - /* - if (!isGoogleSearch && onlySite && /\.\w+\.\w+/.test(onlySite)) { - alert('Greasy Fork only lists eTLD+1.'); - evt.preventDefault(); - evt.stopImmediatePropagation(); - evt.stopPropagation(); - return; - } - */ - - - if (isGoogleSearch && value) { - let q = value.replace('g ', '') - - let m = "-inurl%3A%22%2Fusers%2F%22+-inurl%3A%22%2Fdiscussions%22-inurl%3A%22%2Fstats%22+-inurl%3A%22%2Ffeedback%22+-inurl%3A%22%2Fcode%22+-inurl%3A%22q%3D%22+-inurl%3A%22%2Fby-site%2F%22+inurl%3A%22%2Fscripts%2F%22+site%3A" - var currentUrl = window.location.origin - var index1 = currentUrl.indexOf("sleazyfork") - var index2 = currentUrl.indexOf("greasyfork")//搜索 - if (index2 !== -1) { - m = m + "greasyfork.org" - } - if (index1 !== -1) { - m = m + "sleazyfork.org" - } - let lr = useLang ? `&lr=lang_${useLang}` : '' - evt.preventDefault() - evt.stopImmediatePropagation() - evt.stopPropagation() - - location.href = `https://www.google.com/search?q=${encodeURIComponent(q)}+${m}${lr}` - - } else if (!isGoogleSearch && (value || onlySite)) { - - - let newForm = document.createElement('form') - newForm.className = 'rs1tm' - const copyAttr = (x) => { - let t = form.getAttribute(x) - if (typeof t === 'string') newForm.setAttribute(x, t) - } - copyAttr('action') - copyAttr('accept-charset') - copyAttr('method') - newForm.innerHTML = `` - - - const nq = newForm.querySelector('input[name="q"]') - const language = newForm.querySelector('input[name="language"]') - const site = newForm.querySelector('input[name="site"]') - const sort = newForm.querySelector('input[name="sort"]') - - value = value.replace(/\s+/g, ' ') - site.value = onlySite - - if (form.getAttribute('action') === `/${lang}/scripts` && useLang && useLang !== lang) { - form.setAttribute('action', `/${useLang}/scripts`) - } - - - if (site.value === '') site.remove() - - nq.value = value - - language.value = forceLang - - if (language.value === '') language.remove() - - - sort.value = 'updated' - - let sorting = document.querySelector('#script-list-sort') - if (sorting) { - let sorts1 = { - nil: 0, - daily_installs: 0, - total_installs: 0, - ratings: 0, - created: 0, - updated: 0, - name: 0 - } - let sorts2 = { - daily_installs: 0, - total_installs: 0, - ratings: 0, - created: 0, - updated: 0, - name: 0 - } - const allOptions = sorting.querySelectorAll('.list-option') - const sorts = allOptions.length === 6 ? (sorts2) : (sorts1) - const keys = Object.keys(sorts) - - if (allOptions.length === keys.length) { - - - for (const key of keys) { - let e = `.list-option:not(.list-current) a[href$="sort=${key}"]` - if (key === 'nil') { - e = `.list-option:not(.list-current) a[href]:not([href*="sort="])` - e = sorting.querySelector(e) - } else { - e = sorting.querySelector(e) - } - - if (e) { - sorts[key] = 1 - } - - } - - - - let p = Object.entries(sorts).filter(r => !r[1]) - if (p.length === 1) { - sort.value = p[0][0] - } - - } - - } - - - - - if (sort.value === '') sort.remove() - - evt.preventDefault() - evt.stopImmediatePropagation() - evt.stopPropagation() - - form.parentNode.insertBefore(newForm, form) - newForm.submit() - Promise.resolve().then(() => { - newForm.remove() - }) - - - } else { - evt.preventDefault() - evt.stopImmediatePropagation() - evt.stopPropagation() - } - - } catch (e) { - console.log(e) - - evt.preventDefault() - evt.stopImmediatePropagation() - evt.stopPropagation() - } - - }) - - // Your code here... -})(); - -(() => { - - function prettyMatrix(A) { - let w = '' - for (let i = 0; i < A.length; i++) { - for (let j = 0; j < A[i].length; j++) { - w += A[i][j].toFixed(4) + '\t' - } - w += '\n\t' - } - return '[\n\t' + w.trim() + '\n]' - } - - - requestAnimationFrame(() => { - - setTimeout(() => { - - if ((location.search.includes('sort=updated') || location.search.includes('sort=created')) && location.pathname.endsWith('/scripts')) { } else return - let items = document.querySelectorAll('[data-script-id][data-script-daily-installs][data-script-total-installs]') - - let data = [...items].map(e => ({ - id: parseInt(e.getAttribute('data-script-id')), - daily: parseInt(e.getAttribute('data-script-daily-installs')), - total: parseInt(e.getAttribute('data-script-total-installs')) - })).filter(e => e.id && !isNaN(e.daily) && !isNaN(e.total)) - - const daily = data.map(d => d.daily) - const total = data.map(d => d.total) - dailyMean = jStat.mean(daily) - dailySD = jStat.stdev(daily, true) - totalMean = jStat.mean(total) - totalSD = jStat.stdev(total, true) - - const uDaily = jStat.multiply(jStat.subtract(daily, dailyMean), 1 / dailySD) - const uTotal = jStat.multiply(jStat.subtract(total, totalMean), 1 / totalSD) - - let dataA = data.map((d, i) => [uDaily[i], uTotal[i]]) - - // dataA = dataA.slice(0, 4) - // console.log(dataA) - - let matrixA = jStat.transpose(dataA) - - - const result = jStat.PCA(matrixA) - const [X, D, Vt, Y] = result - - - - let q = null - let qSet = null - if (location.search.includes('q=')) { - q = new URLSearchParams(location.search) - q = q.get('q') - - } - - function makeQA(q) { - let qSet = new Set() - q.replace(/_-/g, ' ').replace(/\b\S+\b/g, (_) => { - qSet.add(_.toLowerCase()) - }) - return qSet - } - - if (q) { - qSet = makeQA(q) - } - - let mr = new Map() - let u = 0 - for (const d of data) { - d.pcaScore = Y[0][u++] - let elm = document.querySelector(`[data-script-id="${d.id}"]`) - if (elm) { - - let order = 0 - order -= Math.floor(d.pcaScore * 1000) - - let u1 = 0, u2 = 0 - - if (qSet) { - - const pSet = qSet - - let elp = elm.querySelector('.script-link') - if (elp) { - let t = elp.textContent - - t.replace(/_-/g, ' ').replace(/\b\S+\b/g, (_) => { - if (pSet.has(_.toLowerCase())) u1++ - }) - - - } - - - - let elq = elm.querySelector('.script-description') - - if (elq) { - let t = elq.textContent - - t.replace(/_-/g, ' ').replace(/\b\S+\b/g, (_) => { - if (pSet.has(_.toLowerCase())) u2++ - }) - - - } - - - } - - - if (u1 && u2) order -= 30000 - else if (u1) order -= 20000 - else if (u2) order -= 10000 - - - mr.set(d.id, order) - // elm.style.order = order; - // elm.parentNode.style.display = 'flex'; - - - // elm.parentNode.style.flexDirection = 'column'; - - - } - } - - /* - let lists = [...new Set([...document.querySelectorAll(`[data-script-id]`)].map(p => p.parentNode))]; - for (const list of lists) { - - let m = [...list.childNodes].map(e => ({ - element: e, - order: mr.get(e instanceof HTMLElement ? (+e.getAttribute('data-script-id') || '') : '') || 0 - })); - - m.sort((a, b) => { - return Math.round(a.order - b.order) - }); - let newNodes = m.map(e => e.element); - - list.replaceChildren(...newNodes); - } - */ - - // console.log(prettyMatrix(X)) - - // console.log(prettyMatrix(Y)) - - - - - - }, 300) - - }) - - - -})() \ No newline at end of file diff --git a/greasyfork-search/README.md b/greasyfork-search/README.md new file mode 100644 index 000000000..74ec00c6a --- /dev/null +++ b/greasyfork-search/README.md @@ -0,0 +1,241 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork Search

    +

    「 使用谷歌搜索GreasyFork和SleazyFork上的脚本 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GreasyFork SleazyFork 谷歌搜索脚本 + + + +## 描述 + +**GreasyFork SleazyFork 谷歌搜索脚本**是一款用户脚本,通过利用谷歌搜索增强了 [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) 上的脚本搜索功能。此脚本允许您使用谷歌强大的搜索引擎来搜索脚本,提供更准确和全面的搜索结果。 + + + +## 用法 + +目前只有两个功能。只需在主页面或者侧边搜索框 [https://greasyfork.org/](https://greasyfork.org/) [https://sleazyfork.org/](https://sleazyfork.org/)上输入并搜索。 + +1. `g YouTube` + + > 它将使用谷歌搜索 Greasy Fork 上与 "YouTube" 相关的脚本。 + +2. `youtube.com tamer` + > 它将使用 Greasy Fork 搜索与 "tamer" 相关的脚本,搜索范围限定在 "youtube.com" 域名内。 + + + +## 特点 + +- **改进的搜索**:此用户脚本集成了谷歌搜索,而不是仅仅依赖于 GreasyFork 内置的搜索功能,从而增强了脚本搜索体验。 +- **谷歌搜索语法**:您可以使用谷歌支持的高级搜索操作符和语法来优化您的搜索查询。这包括排除特定类型的页面以及将搜索范围限制在 GreasyFork 的脚本页面内。 +- **准确且全面的结果**:通过利用谷歌搜索的强大功能,您可以获得更准确和广泛的搜索结果,从而提高找到所需脚本的几率。 +- **易于使用**:此用户脚本无缝集成到 [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) 网站,增强了现有搜索输入框的功能。您只需在查询前输入 "g "(例如,"g 脚本名称")即可启动谷歌搜索。 + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +## 兼容性 + +**GreasyFork 谷歌搜索脚本**设计用于 [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) 网站。它兼容支持用户脚本的现代网络浏览器,例如 Tampermonkey 和 Greasemonkey。 + + +## 修改来源 + +作者[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)的脚本[GreasyFork Search](https://greasyfork.org/scripts/468495),感谢作者的勤劳智慧 + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/greasyfork-search/README_en.md b/greasyfork-search/README_en.md new file mode 100644 index 000000000..c0a2ad9e8 --- /dev/null +++ b/greasyfork-search/README_en.md @@ -0,0 +1,240 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork Search

    +

    「 Search using GoogleGreasyForkandSleazyForkupper script 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GreasyFork SleazyFork Scripts by Google Search + + + +## Description + +The **GreasyFork SleazyFork Scripts by Google Search** is a user script that enhances the script search functionality on [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) by utilizing Google Search. This script allows you to search for scripts using Google's powerful search engine, providing you with more accurate and comprehensive search results. + + + +## Usage + +Currently, there are only two features. Just type and search on the main page or the side search box [https://greasyfork.org/](https://greasyfork.org/) [https://sleazyfork.org/](https://sleazyfork.org/). + +1. `g YouTube` + + > It will use Google to search the scripts with "YouTube" in Greasy Fork. + +2. `youtube.com tamer` + > It will use Greasy Fork to search the scripts with "tamer" on Greasy Fork with the site (domain) "youtube.com". + + + +## Features + +- **Improved Search**: Instead of relying solely on GreasyFork's built-in search functionality, this user script integrates Google Search to enhance the script search experience. +- **Google Search Syntax**: You can use advanced search operators and syntax supported by Google to refine your search queries. This includes options such as excluding specific types of pages and limiting the search to GreasyFork's script pages. +- **Accurate and Comprehensive Results**: By leveraging the capabilities of Google Search, you can expect more accurate and extensive results, improving your chances of finding the desired scripts. +- **Easy to Use**: The user script seamlessly integrates with the [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) website, adding the enhanced search functionality to the existing search input. You can initiate a Google search by simply entering your query preceded by "g " (e.g., "g script name"). + + + +## Compatibility + +The **GreasyFork Scripts by Google Search** user script is designed to work with the [GreasyFork.org](https://greasyfork.org/) [SleazyFork.org](https://sleazyfork.org/) website. It is compatible with modern web browsers that support user scripts, such as Tampermonkey and Greasemonkey. + + +## Modify source + +The author [𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179) script [GreasyFork Search](https://greasyfork.org/scripts/468495), thank the author for his hard work and wisdom + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/Script details/greasyfork-search/greasyfork-search.user.js b/greasyfork-search/greasyfork-search.user.js similarity index 98% rename from Script details/greasyfork-search/greasyfork-search.user.js rename to greasyfork-search/greasyfork-search.user.js index 32e3cd74c..2adcfe176 100644 --- a/Script details/greasyfork-search/greasyfork-search.user.js +++ b/greasyfork-search/greasyfork-search.user.js @@ -77,7 +77,7 @@ // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.6.5.23 // @description To search scripts using Google Search -// @author CY Fung , 人民的勤务员 +// @author CY Fung , 人民的勤务员 // @match https://greasyfork.org/* // @match https://sleazyfork.org/* // @icon data:image/png;base64,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 @@ -146,7 +146,7 @@ break } if (!vaildResult) { - console.warn("The matrix is not symmetric.") + console.warn('The matrix is not symmetric.') return null } for (i = 0; i < n; i++) ev.push(a[i][i]) @@ -481,15 +481,15 @@ jStat.PCA = function PCA(X) { if (isGoogleSearch && value) { let q = value.replace('g ', '') - let m = "-inurl%3A%22%2Fusers%2F%22+-inurl%3A%22%2Fdiscussions%22-inurl%3A%22%2Fstats%22+-inurl%3A%22%2Ffeedback%22+-inurl%3A%22%2Fcode%22+-inurl%3A%22q%3D%22+-inurl%3A%22%2Fby-site%2F%22+inurl%3A%22%2Fscripts%2F%22+site%3A" + let m = '-inurl%3A%22%2Fusers%2F%22+-inurl%3A%22%2Fdiscussions%22-inurl%3A%22%2Fstats%22+-inurl%3A%22%2Ffeedback%22+-inurl%3A%22%2Fcode%22+-inurl%3A%22q%3D%22+-inurl%3A%22%2Fby-site%2F%22+inurl%3A%22%2Fscripts%2F%22+site%3A' var currentUrl = window.location.origin - var index1 = currentUrl.indexOf("sleazyfork") - var index2 = currentUrl.indexOf("greasyfork")//搜索 + var index1 = currentUrl.indexOf('sleazyfork') + var index2 = currentUrl.indexOf('greasyfork')//搜索 if (index2 !== -1) { - m = m + "greasyfork.org" + m = m + 'greasyfork.org' } if (index1 !== -1) { - m = m + "sleazyfork.org" + m = m + 'sleazyfork.org' } let lr = useLang ? `&lr=lang_${useLang}` : '' evt.preventDefault() @@ -510,7 +510,7 @@ jStat.PCA = function PCA(X) { copyAttr('action') copyAttr('accept-charset') copyAttr('method') - newForm.innerHTML = `` + newForm.innerHTML = '' const nq = newForm.querySelector('input[name="q"]') @@ -566,7 +566,7 @@ jStat.PCA = function PCA(X) { for (const key of keys) { let e = `.list-option:not(.list-current) a[href$="sort=${key}"]` if (key === 'nil') { - e = `.list-option:not(.list-current) a[href]:not([href*="sort="])` + e = '.list-option:not(.list-current) a[href]:not([href*="sort="])' e = sorting.querySelector(e) } else { e = sorting.querySelector(e) diff --git a/greasyfork-user-control-panel-button/README.md b/greasyfork-user-control-panel-button/README.md new file mode 100644 index 000000000..afe2d4fae --- /dev/null +++ b/greasyfork-user-control-panel-button/README.md @@ -0,0 +1,233 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork: 导航栏增强

    +

    「 在导航栏上添加用户列表,控制台,收藏等.. 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +## 功能说明 + +增强GreasyFork的导航栏, 添加用户列表、用户收藏、用户控制台等等.... + +--- + + + +## 其他说明 + +增加的项目较多,会出现拥挤导航栏,可以使用脚本进行修复 [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) +强烈建议使用 **[GreasyFork 糊裱匠](https://greasyfork.org/zh-CN/scripts/497346)** 可以修复导航栏并且美化导航栏 + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + +--- + + + +## 感谢 + +脚本修改自用户 **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** 的脚本 [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) 感谢原作者 **CY Fung** 的**勤劳**与**智慧** + +--- + + + +## 图片 + +![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) +![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) +![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/greasyfork-user-control-panel-button/README_en.md b/greasyfork-user-control-panel-button/README_en.md new file mode 100644 index 000000000..9438bfb82 --- /dev/null +++ b/greasyfork-user-control-panel-button/README_en.md @@ -0,0 +1,239 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork: Navigation bar enhancement

    +

    「 Add user list on navigation bar,console,Collection etc... 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GreasyFork: Add categories to navigation bar + +--- + + + +## Function Description + +EnhanceGreasyForknavigation bar, Add user list、User favorites、User console etc..... + +--- + + + +## other instructions + +More items added,A crowded navigation bar will appear,Can be fixed using script [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) + +Strongly recommended to use **[GreasyFork Glue craftsman](https://greasyfork.org/zh-CN/scripts/497346)** Can repair and beautify the navigation bar + +--- + + + +## grateful + +Script modified from user **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** script [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) Thanks to the original author **CY Fung** of**Diligent**and**wisdom** + +--- + + + +## picture + +![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) +![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) +![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/greasyfork-user-control-panel-button/README_ko.md b/greasyfork-user-control-panel-button/README_ko.md new file mode 100644 index 000000000..811dbf1df --- /dev/null +++ b/greasyfork-user-control-panel-button/README_ko.md @@ -0,0 +1,239 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
    + 👆️입장GitHub 더 나은 경험을 위한 앱의 Readme 파일。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork: 탐색 표시줄 개선

    +

    「 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GreasyFork: 탐색 표시줄에 카테고리 추가 + +--- + + + +## 기능 설명 + +향상시키다GreasyFork네비게이션 바, 사용자 목록 추가、사용자 즐겨찾기、사용자 콘솔 등.... + +--- + + + +## 기타 지침 + +더 많은 항목이 추가되었습니다,혼잡한 내비게이션 바가 나타납니다.,스크립트를 사용하여 수정 가능 [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) + +사용을 적극 권장합니다. **[GreasyFork 반죽액자장인](https://greasyfork.org/zh-CN/scripts/497346)** 네비게이션 바를 수리하고 아름답게 할 수 있습니다. + +--- + + + +## 고마워하는 + +사용자가 수정한 스크립트 **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** 적각본 [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) 원작자님 감사합니다 **CY Fung** ~의**성실한**그리고**지혜** + +--- + + + +## 그림 + +![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) +![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) +![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) + + + + +> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 +> +> - [**Greasy fork스크립트 페이지는 URL 향상에 적합합니다.**](https://greasyfork.org/scripts/497317): 스크립트 세부정보 페이지는 기본적으로 검색으로 이동하지 않는 URL에 적합합니다. 클릭 가능한 텍스트 링크로 변환 및 팝업 프롬프트 +> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. +> - [**GreaysFork 향상시키다WebHook동기화 설정**](https://greasyfork.org/scripts/506717): GreaysFork 스크립트 동기화 정보를 빠르게 입력하세요,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 포럼에서 사용되는 기본 형식은 다음과 같습니다.Markdown,형식 도움말 링크 추가 및 새 스크립트 게시,빠른 편집이 활성화된 응답 시간 도구 모음 +> - [**Greasyfork 평점을 표시하는 스크립트**](https://greasyfork.org/scripts/501119): 스크립트 목록 탐색 시 스크립트 이름 뒤에 스크립트 등급 추가 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색GreasyFork그리고SleazyFork상적 각본 +> - [**GreasyFork: 탐색 표시줄 개선**](https://greasyfork.org/scripts/501880): 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. +> - [**Greasyfork 프레이머**](https://greasyfork.org/scripts/497346): ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 +> - [**GreasyFork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 +> - [**Script Finder 그리스 원숭이 스크립트 조회**](https://greasyfork.org/scripts/498904): Script Finder 해당 웹사이트에 적용되는 웹사이트를 찾으세요. 그리스 원숭이 스크립트。 + + + + + +## 돕다 + +권장 브라우저 및 스크립트 관리자: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**사용자 스크립트 설치 방법에 대해 더 알고 싶다면,[나를 클릭하세요](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)그래픽 교육 보기!** + + + +### 모든 게시 스크립트 보기 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다ChatGPT관련 스크립트 +> +> - [**ChatGPT코드 글꼴 크기 감소**](https://greasyfork.org/scripts/505209): ChatGPT 코드 글꼴을 더 작게 만들기 자동으로 포장 +> - [**ChatGPT 채팅 코드 복사 및 코드 내보내기 버튼**](https://greasyfork.org/scripts/509598): 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“코드 복사”버튼과 ChatGPT 응답으로 코드 블록에 내보내기 버튼이 추가됩니다.,코드 블록의 클래스 이름으로 감지된 프로그래밍 언어를 기반으로 파일에 코드를 저장하라는 메시지를 사용자에게 표시합니다.。 +> - [**ChatGPT 문자 카운터 제한 (CCCL)**](https://greasyfork.org/scripts/506166): 입력 상자에 문자 카운터 추가,로 제한됨 32732 문자。(ChatGPT 한도는 32732 문자。) +> - [**ChatGPT 자체 메시지 및 최대 너비 축소**](https://greasyfork.org/scripts/504901): 겹ChatGPT중간 및 긴“너”정보,그리고 최대 너비를 설정하세요 + + + + + + +> ### 🔍웹 관련 스크립트를 찾고 있을 수도 있습니다. +> +> - [**웹 페이지 작성 클립 버전 권한 관리자**](https://greasyfork.org/scripts/497403): 웹페이지의 클립보드 쓰기 동작을 관리하여 무단 자동 복사를 방지하고 오디오 및 비디오 콘텐츠 사전 로드 및 자동 재생을 비활성화합니다. +> - [**승강기CSDN로그인복사**](https://greasyfork.org/scripts/505207): 엿 먹어라CSDN로그인복사,로그인하지 않고 복사 +> - [**화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요**](https://greasyfork.org/scripts/507036): 테이블의 모든 열에 색상 그라디언트를 자동으로 적용하여 아름답게 만듭니다. +> - [**웹페이지에서 키워드 강조표시**](https://greasyfork.org/scripts/498906): 웹페이지의 텍스트 강조표시,그것이 당신에게 도움이 된다면,마음대로 수정하여 사용할 수 있습니다. +> - [**웹페이지 키워드 강조**](https://greasyfork.org/scripts/498905): 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 +> - [**작은 창 미리보기**](https://greasyfork.org/scripts/504880): 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 +> - [**링크 밑줄 제거**](https://greasyfork.org/scripts/498625): 모든 사이트의 링크 밑줄 제거,새 링크를 동적으로 처리합니다. +> - [**스크롤 버튼**](https://greasyfork.org/scripts/497251): 페이지 스크롤을 위해 페이지 오른쪽에 두 개의 버튼을 생성합니다. +> - [**상단 및 하단 버튼에 고정**](https://greasyfork.org/scripts/500255): 모든 페이지에 두 개의 버튼 생성,하나는 위쪽으로 부드럽게 하기 위한 것입니다.,하나는 아래쪽으로 계속 스크롤하기 위한 것입니다.,취소하려면 다시 클릭하세요. 맨 아래로 스크롤 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 정보 표시 웹뷰 제출**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 +> - [**GitHub 창고 빠른 점프 도우미**](https://greasyfork.org/scripts/515205): 🤠 GitHub 창고 빠른 점프 도우미는 사용자가 GitHub에서 자신의 창고에 빠르게 액세스할 수 있도록 특별히 설계되었습니다. 탐색 모음 상단에 버튼이 생성됩니다. 클릭하면 모든 저장소가 확장되고 GitHub의 보조 메뉴를 사용하지 않고도 자신의 GitHub 저장소 페이지로 쉽게 이동할 수 있습니다. +> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。유형별로 파일에 색상 및 아이콘 추가,저장소 소스 트리의 파일 유형 아이콘 대신 작은 이미지 표시 +> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다“다른”아래에 +> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 +> - [**GitHub 폴더 다운로더**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 +> - [**Github 원본 파일 복사 URL 다운로드 파일 포함**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 +> - [**🤠 Github 향상된 보조 창고 디스플레이 크기**](https://greasyfork.org/scripts/502291): 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 +> - [**GitHub 날짜순으로 정렬**](https://greasyfork.org/scripts/505218): 파일 정렬을 날짜별 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다Google관련 스크립트 +> +> - [**Google 고급 검색 도우미**](https://greasyfork.org/scripts/502652): Google 검색 페이지 상단에 고급 검색 양식을 추가하세요. +> - [**Google 검색 사이트 차단**](https://greasyfork.org/scripts/500262): 존재하다google특정 사이트 검색 및 차단 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 +> +> - [**Greasy fork스크립트 페이지는 URL 향상에 적합합니다.**](https://greasyfork.org/scripts/497317): 스크립트 세부정보 페이지는 기본적으로 검색으로 이동하지 않는 URL에 적합합니다. 클릭 가능한 텍스트 링크로 변환 및 팝업 프롬프트 +> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. +> - [**GreaysFork 향상시키다WebHook동기화 설정**](https://greasyfork.org/scripts/506717): GreaysFork 스크립트 동기화 정보를 빠르게 입력하세요,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 포럼에서 사용되는 기본 형식은 다음과 같습니다.Markdown,형식 도움말 링크 추가 및 새 스크립트 게시,빠른 편집이 활성화된 응답 시간 도구 모음 +> - [**Greasyfork 평점을 표시하는 스크립트**](https://greasyfork.org/scripts/501119): 스크립트 목록 탐색 시 스크립트 이름 뒤에 스크립트 등급 추가 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색GreasyFork그리고SleazyFork상적 각본 +> - [**GreasyFork: 탐색 표시줄 개선**](https://greasyfork.org/scripts/501880): 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. +> - [**Greasyfork 프레이머**](https://greasyfork.org/scripts/497346): ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 +> - [**GreasyFork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 +> - [**Script Finder 그리스 원숭이 스크립트 조회**](https://greasyfork.org/scripts/498904): Script Finder 해당 웹사이트에 적용되는 웹사이트를 찾으세요. 그리스 원숭이 스크립트。 + + + + + + +> ### 🔍성인용 스크립트를 찾고 있을 수도 있습니다. +> +> - [**MissAV 자동 로그인**](https://greasyfork.org/scripts/505325): 발각 MissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +> - [**MissAv즐겨찾는 동영상 일괄 백업**](https://greasyfork.org/scripts/497682): 현재부터missav이미지 파일 및 비디오 정보를 얻는 페이지,그리고 그 결과를 병합한 후 생성된 웹페이지 파일을 다운로드할 수 있도록 제공합니다. +> - [**ThisAV 자동 로그인**](https://greasyfork.org/scripts/506528): 발각 ThisAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +> - [**JableTV 자동 로그인**](https://greasyfork.org/scripts/506730): 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. + + + + + + +> ### 🔍자동 번역을 찾고 계실 수도 있습니다 +> +> - [**외국어 터미네이터**](https://greasyfork.org/scripts/504890): 중국어가 아닌 문자 인식,길이가 그 이상인 경우5그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그런 다음 원본 텍스트를 중국어로 번역하고 바꿉니다. +> - [**웹페이지 번역——중국어로 자동 번역됨**](https://greasyfork.org/scripts/505208): 중국어가 아닌 웹페이지의 오른쪽 하단에 표시(왼쪽 하단으로 조정 가능)추가하다google번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 + + + + + + +
    + + diff --git a/greasyfork-user-control-panel-button/README_zh-TW.md b/greasyfork-user-control-panel-button/README_zh-TW.md new file mode 100644 index 000000000..11d610700 --- /dev/null +++ b/greasyfork-user-control-panel-button/README_zh-TW.md @@ -0,0 +1,239 @@ + + +
    +
    + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
    + 👆️訪問GitHub 上的自述文件以獲得更好的體驗。 +
    +
    + + + +
    + + + + + +
    +

    GreasyFork: 導覽列增強

    +

    「 在導覽列上新增使用者列表,主機,收藏等.. 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    + +
    + + + + + +# GreasyFork: 導航列增加分類 + +--- + + + +## 功能說明 + +增強GreasyFork的導覽列, 新增使用者列表、用戶收藏、用戶控制台等等.... + +--- + + + +## 其他說明 + +增加的項目較多,會出現擁擠導覽列,可以使用腳本進行修復 [GreasyFork Header Style Fix](https://greasyfork.org/scripts/473269) + +強烈建議使用 **[GreasyFork 膠水工匠](https://greasyfork.org/zh-CN/scripts/497346)** 可以修復導覽列並且美化導覽列 + +--- + + + +## 感謝 + +腳本修改自用戶 **[𝖢𝖸 𝖥𝗎𝗇𝗀](https://greasyfork.org/zh-CN/users/371179)** 腳本 [ GreasyFork: User Control Panel Button](https://greasyfork.org/scripts/475796) 感謝原作者 **CY Fung** 的**勤勞**與**智慧** + +--- + + + +## 圖片 + +![3.png](https://s2.loli.net/2024/08/05/woDtxEg5SGrTJ7h.png) +![1.png](https://s2.loli.net/2024/08/05/GtB2fbacqSOX1hz.png) +![2.png](https://s2.loli.net/2024/08/05/sDZqO8fgEk1GzWh.png) + + + + +> ### 🔍你可能在找GreasyFork相關腳本 +> +> - [**Greasy fork腳本頁面適用於網址增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁適用於網址不預設跳轉搜尋 轉為可點擊的文字連結並彈出提示 +> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 +> - [**GreaysFork 增強WebHook同步設定**](https://greasyfork.org/scripts/506717): GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 +> - [**Greasyfork 腳本顯示評分**](https://greasyfork.org/scripts/501119): 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋GreasyFork和SleazyFork上體文字 +> - [**GreasyFork: 導覽列增強**](https://greasyfork.org/scripts/501880): 在導覽列上新增使用者列表,主機,收藏等.. +> - [**Greasyfork 膠水工匠**](https://greasyfork.org/scripts/497346): 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 +> - [**Script Finder 油猴腳本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 + + + + + +## 使用幫助 + +推薦瀏覽器和腳本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多關於如何安裝使用者腳本,[點擊我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看圖文教學!** + + + +### 查看所有發布腳本 + + + + + + +> ### 🔍你可能在找ChatGPT相關腳本 +> +> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): ChatGPT 讓程式碼字體變小 並且自動折行 +> - [**ChatGPT 聊天複製程式碼和匯出程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕和一個為 ChatGPT 響應中的程式碼區塊新增匯出按鈕,提示使用者根據程式碼區塊的類別名稱偵測到的程式語言將程式碼儲存為文件。 +> - [**ChatGPT 字元計數器限制 (CCCL)**](https://greasyfork.org/scripts/506166): 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。) +> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 + + + + + + +> ### 🔍你可能在找網頁相關腳本 +> +> - [**網頁寫入剪輯版授權管理員**](https://greasyfork.org/scripts/497403): 管理網頁對剪貼簿的寫入行為防止未經授權的自動複製和停用音視頻內容預載及自動播放。 +> - [**解除CSDN登入複製**](https://greasyfork.org/scripts/505207): 去你媽的CSDN登入複製,無需登入即可複製 +> - [**絢麗漸層美化網頁表格**](https://greasyfork.org/scripts/507036): 自動為表格所有欄位套用色彩漸層來美化 +> - [**網頁高亮關鍵字**](https://greasyfork.org/scripts/498906): 對網頁上的文字進行高亮顯示,如果對你有幫助,可以隨意修改使用 +> - [**網頁關鍵字高亮顯示**](https://greasyfork.org/scripts/498905): 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 +> - [**小窗預覽**](https://greasyfork.org/scripts/504880): 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 +> - [**移除連結下劃線**](https://greasyfork.org/scripts/498625): 移除所有網站上的連結底線,並動態處理新鏈接 +> - [**上下滾動按鈕**](https://greasyfork.org/scripts/497251): 在頁面右側產生兩個按鈕用於滾動頁面 +> - [**置頂和置底按鈕**](https://greasyfork.org/scripts/500255): 在所有頁面產生兩個按鈕,一個用於順滑回到頂部,一個用於持續滾動到底部,再次點擊取消捲動到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交資料顯示網頁視圖**](https://greasyfork.org/scripts/505830): 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 +> - [**GitHub 倉庫快速跳轉助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 倉庫快速跳轉助手,專為幫助用戶快速存取自己在 GitHub 上的倉庫而設計 。它在導覽列頂部產生一個按鈕,點擊展開自己的所有倉庫,輕鬆跳到自己的 GitHub 倉庫頁面,而無需使用 GitHub 的二級選單 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。按類型為文件添加顏色和圖標,在儲存庫來源樹中顯示小圖像以取代文件類型圖標 +> - [**Github 代碼語言列表顯示全部**](https://greasyfork.org/scripts/509889): 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在“其他”下 +> - [**GitHub 自動確認設備授權**](https://greasyfork.org/scripts/508956): 在GitHub授權頁面自動輸入授權碼與自動確認。 +> - [**GitHub 資料夾下載器**](https://greasyfork.org/scripts/505496): 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 +> - [**Github 複製原始文件 URL 與下載文件**](https://greasyfork.org/scripts/505501): 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 +> - [**🤠 Github 增強小助手 倉庫顯示大小**](https://greasyfork.org/scripts/502291): 🤠 倉庫顯示大小:在 GitHub 的程式碼搜尋、倉庫搜尋、議題頁面、使用者倉庫清單和儲存庫頁面上,倉庫名稱旁會顯示該倉庫的大小,方便使用者快速了解倉庫的規模,最佳化選擇。不活躍開發警告:如果某個倉庫在過去六個月內沒有更新,系統會在倉庫的頂部添加提示,提醒用戶該倉庫不活躍,並顯示最後一次更新的時間。這有助於使用者判斷倉庫的活躍程度和維護狀況。倉庫內快速跳轉:在瀏覽倉庫時,使用者可以方便地查看該使用者的所有倉庫列表,提供一個快速跳到不同倉庫的入口。用戶可以快速找到和存取感興趣的其他項目,提高工作效率。使用情境:開發者:可以透過顯示倉庫大小和活躍警告,快速篩選出適當的庫進行開發,避免使用不再維護的項目。專案管理者:透過快速跳轉功能,方便管理和協調多個項目,提高工作效率。學習者:在學習新科技時,可以更方便地找到相關的開源項目,快速查看專案的活躍程度和規模。 🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 將文件排序方式改為日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相關腳本 +> +> - [**Google 高級搜尋助手**](https://greasyfork.org/scripts/502652): 在谷歌搜尋頁面頂部新增一個高級搜尋表單 +> - [**封鎖谷歌搜尋站點**](https://greasyfork.org/scripts/500262): 在google搜尋屏蔽指定站點 + + + + + + +> ### 🔍你可能在找GreasyFork相關腳本 +> +> - [**Greasy fork腳本頁面適用於網址增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁適用於網址不預設跳轉搜尋 轉為可點擊的文字連結並彈出提示 +> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 +> - [**GreaysFork 增強WebHook同步設定**](https://greasyfork.org/scripts/506717): GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 +> - [**Greasyfork 腳本顯示評分**](https://greasyfork.org/scripts/501119): 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋GreasyFork和SleazyFork上體文字 +> - [**GreasyFork: 導覽列增強**](https://greasyfork.org/scripts/501880): 在導覽列上新增使用者列表,主機,收藏等.. +> - [**Greasyfork 膠水工匠**](https://greasyfork.org/scripts/497346): 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 +> - [**Script Finder 油猴腳本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 + + + + + + +> ### 🔍你可能在找成人腳本 +> +> - [**MissAV 自動登入**](https://greasyfork.org/scripts/505325): 偵測 MissAV 狀態,並且在未登入時自動登入 +> - [**MissAv批量備份收藏視頻**](https://greasyfork.org/scripts/497682): 從目前missav頁面獲取圖片文件和視頻信息,並合併結果後提供下載產生的網頁文件 +> - [**ThisAV 自動登入**](https://greasyfork.org/scripts/506528): 偵測 ThisAV 狀態,並且在未登入時自動登入 +> - [**JableTV 自動登入**](https://greasyfork.org/scripts/506730): 偵測 JableTV 狀態,並且在未登入時自動登入 + + + + + + +> ### 🔍你可能在找自動翻譯 +> +> - [**外語終結者**](https://greasyfork.org/scripts/504890): 識別非中文字符,如果長度大於5且翻譯文中不含中文,則翻譯並且取代原始文字到中文 +> - [**網頁翻譯——自動翻譯為中文**](https://greasyfork.org/scripts/505208): 給每個非中文的網頁右下角(可以調整到左下角)添加一個google翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 + + + + + + +
    + + diff --git a/greasyfork-user-control-panel-button.user.js b/greasyfork-user-control-panel-button/greasyfork-user-control-panel-button.user.js similarity index 98% rename from greasyfork-user-control-panel-button.user.js rename to greasyfork-user-control-panel-button/greasyfork-user-control-panel-button.user.js index 7352fc611..179d8e25c 100644 --- a/greasyfork-user-control-panel-button.user.js +++ b/greasyfork-user-control-panel-button/greasyfork-user-control-panel-button.user.js @@ -80,7 +80,7 @@ // @grant none // @version 0.3.1.57 // @license MIT -// @author CY Fung & 人民的勤务员 +// @author CY Fung & 人民的勤务员 // @description To add User Control Panel Button into navigation bar // @icon data:image/png;base64,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 // @iconbak https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png @@ -169,7 +169,7 @@ } async function digestMessage(message) { - const encoder = new TextEncoder("utf-8") + const encoder = new TextEncoder('utf-8') const msgUint8 = encoder.encode(message) const hashBuffer = await crypto.subtle.digest('SHA-1', msgUint8) return bufferToHex(hashBuffer) @@ -177,12 +177,12 @@ async function fetchHTML(href) { let response = await fetch(href, { - method: "GET", - mode: "same-origin", - cache: "force-cache", - credentials: "same-origin", - redirect: "follow", - referrerPolicy: "no-referrer", + method: 'GET', + mode: 'same-origin', + cache: 'force-cache', + credentials: 'same-origin', + redirect: 'follow', + referrerPolicy: 'no-referrer' }) return response.text() diff --git a/Script details/greasyfork-user-control-panel-button/icons8-google-480.png b/greasyfork-user-control-panel-button/icons8-google-480.png similarity index 100% rename from Script details/greasyfork-user-control-panel-button/icons8-google-480.png rename to greasyfork-user-control-panel-button/icons8-google-480.png diff --git a/Script details/greasyfork-user-control-panel-button/preview/1.png b/greasyfork-user-control-panel-button/preview/1.png similarity index 100% rename from Script details/greasyfork-user-control-panel-button/preview/1.png rename to greasyfork-user-control-panel-button/preview/1.png diff --git a/Script details/greasyfork-user-control-panel-button/preview/2.png b/greasyfork-user-control-panel-button/preview/2.png similarity index 100% rename from Script details/greasyfork-user-control-panel-button/preview/2.png rename to greasyfork-user-control-panel-button/preview/2.png diff --git a/Script details/greasyfork-user-control-panel-button/preview/3.png b/greasyfork-user-control-panel-button/preview/3.png similarity index 100% rename from Script details/greasyfork-user-control-panel-button/preview/3.png rename to greasyfork-user-control-panel-button/preview/3.png diff --git a/greasyfork-user-scripts-data-visualization.user.js b/greasyfork-user-scripts-data-visualization.user.js deleted file mode 100644 index 90b1ebd7e..000000000 --- a/greasyfork-user-scripts-data-visualization.user.js +++ /dev/null @@ -1,336 +0,0 @@ -// ==UserScript== -// @name GrreasyFork User-published script data visualization -// @description useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation -// @name:zh-CN GrreasyFork 用户发布的脚本数据可视化 -// @description:zh-CN 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 -// @name:ar GrreasyFork تصور البيانات النصية التي ينشرها المستخدم -// @description:ar يستخدمChart.jsالحصول على بيانات البرنامج النصي للمستخدم وتصورها,وقم بإنشاء مخطط على الصفحة الرئيسية الشخصية للمستخدم لعرض حالة التثبيت التفصيلية أدناه. -// @name:bg GrreasyFork Визуализация на данни от скрипт, публикуван от потребителя -// @description:bg използванеChart.jsПолучаване и визуализиране на потребителски скриптови данни,И генерирайте диаграма на личната начална страница на потребителя, за да покажете подробното състояние на инсталацията по-долу. -// @name:cs GrreasyFork Uživatelsky publikovaná vizualizace dat skriptu -// @description:cs použitíChart.jsZískávání a vizualizace dat uživatelských skriptů,A vygenerujte graf na osobní domovské stránce uživatele, který zobrazí podrobný stav instalace níže. -// @name:da GrreasyFork Brugerudgivet scriptdatavisualisering -// @description:da brugeChart.jsIndhentning og visualisering af brugerscriptdata,Og generer et diagram på brugerens personlige hjemmeside for at vise den detaljerede installationsstatus nedenfor. -// @name:de GrreasyFork Vom Benutzer veröffentlichte Skriptdatenvisualisierung -// @description:de verwendenChart.jsAbrufen und Visualisieren von Benutzerskriptdaten,Und erstellen Sie auf der persönlichen Homepage des Benutzers ein Diagramm, um unten den detaillierten Installationsstatus anzuzeigen. -// @name:el GrreasyFork Οπτικοποίηση δεδομένων σεναρίου δημοσιευμένων από χρήστη -// @description:el χρήσηChart.jsΛήψη και οπτικοποίηση δεδομένων σεναρίου χρήστη,Και δημιουργήστε ένα γράφημα στην προσωπική αρχική σελίδα του χρήστη για να εμφανίσετε τη λεπτομερή κατάσταση εγκατάστασης παρακάτω. -// @name:en GrreasyFork User-published script data visualization -// @description:en useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. -// @name:eo GrreasyFork Vidigo de datumoj eldonitaj de uzantoj -// @description:eo uziChart.jsAkiro kaj bildigo de uzantaj skriptodatenoj,Kaj generu diagramon sur la persona hejmpaĝo de la uzanto por montri la detalan instalan staton sube. -// @name:es GrreasyFork Visualización de datos de script publicados por el usuario -// @description:es usarChart.jsObtención y visualización de datos de script de usuario,Y genere un gráfico en la página de inicio personal del usuario para mostrar el estado de instalación detallado a continuación. -// @name:fi GrreasyFork Käyttäjän julkaisema komentosarjatietojen visualisointi -// @description:fi käyttääChart.jsKäyttäjän komentosarjatietojen hankkiminen ja visualisointi,Ja luo kaavio käyttäjän henkilökohtaiselle kotisivulle nähdäksesi yksityiskohtaisen asennuksen tilan alla. -// @name:fr GrreasyFork Visualisation des données de script publié par l’utilisateur -// @description:fr utiliserChart.jsObtention et visualisation des données de script utilisateur,Et générez un graphique sur la page d’accueil personnelle de l’utilisateur pour afficher l’état détaillé de l’installation ci-dessous. -// @name:he GrreasyFork הדמיית נתוני סקריפט שפורסם על ידי המשתמש -// @description:he לְהִשְׁתַמֵשׁChart.jsהשגה והצגה של נתוני סקריפט משתמש,וצור תרשים בדף הבית האישי של המשתמש כדי להציג את מצב ההתקנה המפורט למטה. -// @name:hr GrreasyFork Vizualizacija podataka skripte koju je objavio korisnik -// @description:hr koristitiChart.jsDobivanje i vizualizacija podataka korisničke skripte,I generirajte grafikon na osobnoj početnoj stranici korisnika za prikaz detaljnog statusa instalacije u nastavku. -// @name:hu GrreasyFork Felhasználó által közzétett szkriptadatok megjelenítése -// @description:hu használatChart.jsFelhasználói szkriptadatok beszerzése és megjelenítése,És készítsen diagramot a felhasználó személyes honlapján, hogy megjelenítse a részletes telepítési állapotot. -// @name:id GrreasyFork Visualisasi data skrip yang dipublikasikan pengguna -// @description:id menggunakanChart.jsMemperoleh dan memvisualisasikan data skrip pengguna,Dan buat bagan di beranda pribadi pengguna untuk menampilkan status instalasi terperinci di bawah. -// @name:it GrreasyFork Visualizzazione dei dati degli script pubblicati dall’utente -// @description:it utilizzoChart.jsOttenere e visualizzare i dati dello script utente,E genera un grafico sulla home page personale dell’utente per visualizzare lo stato dettagliato dell’installazione di seguito. -// @name:ja GrreasyFork ユーザーが公開したスクリプト データの視覚化 -// @description:ja 使用Chart.jsユーザースクリプトデータの取得と可視化,また、ユーザーの個人ホームページ上にチャートを生成し、以下の詳細なインストール状況を表示します。 -// @name:ka GrreasyFork მომხმარებლის მიერ გამოქვეყნებული სკრიპტის მონაცემთა ვიზუალიზაცია -// @description:ka გამოყენებაChart.jsმომხმარებლის სკრიპტის მონაცემების მიღება და ვიზუალიზაცია,და შექმენით დიაგრამა მომხმარებლის პირად მთავარ გვერდზე, რათა აჩვენოთ ინსტალაციის დეტალური სტატუსი ქვემოთ. -// @name:ko GrreasyFork 사용자 게시 스크립트 데이터 시각화 -// @description:ko 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. -// @name:nl GrreasyFork Door de gebruiker gepubliceerde visualisatie van scriptgegevens -// @description:nl gebruikChart.jsVerkrijgen en visualiseren van gebruikersscriptgegevens,En genereer een diagram op de persoonlijke startpagina van de gebruiker om de gedetailleerde installatiestatus hieronder weer te geven. -// @name:nb GrreasyFork Brukerpublisert skriptdatavisualisering -// @description:nb brukChart.jsInnhenting og visualisering av brukerskriptdata,Og generer et diagram på brukerens personlige hjemmeside for å vise den detaljerte installasjonsstatusen nedenfor. -// @name:pl GrreasyFork Wizualizacja danych skryptu opublikowanych przez użytkownika -// @description:pl używaćChart.jsPozyskiwanie i wizualizacja danych skryptu użytkownika,I wygeneruj wykres na osobistej stronie głównej użytkownika, aby wyświetlić poniżej szczegółowy stan instalacji. -// @name:pt-BR GrreasyFork Visualização de dados de script publicado pelo usuário -// @description:pt-BR usarChart.jsObtendo e visualizando dados de script do usuário,E gere um gráfico na página inicial pessoal do usuário para exibir o status detalhado da instalação abaixo. -// @name:ro GrreasyFork Vizualizarea datelor scripturilor publicate de utilizator -// @description:ro utilizareChart.jsObținerea și vizualizarea datelor de script utilizator,Și generați o diagramă pe pagina de pornire personală a utilizatorului pentru a afișa mai jos starea detaliată a instalării. -// @name:ru GrreasyFork Визуализация данных сценария, опубликованного пользователем. -// @description:ru использоватьChart.jsПолучение и визуализация данных пользовательского сценария,И создайте диаграмму на личной домашней странице пользователя, чтобы отобразить подробный статус установки ниже. -// @name:sk GrreasyFork Používateľom publikovaná vizualizácia dát skriptu -// @description:sk použitieChart.jsZískavanie a vizualizácia údajov používateľského skriptu,A vygenerujte graf na osobnej domovskej stránke používateľa, ktorý zobrazí podrobný stav inštalácie nižšie. -// @name:sr GrreasyFork Визуелизација података скрипте коју је објавио корисник -// @description:sr користитиChart.jsДобијање и визуелизација података корисничких скрипти,И генеришите графикон на личној почетној страници корисника да бисте приказали детаљан статус инсталације испод. -// @name:sv GrreasyFork Användarpublicerad skriptdatavisualisering -// @description:sv användaChart.jsSkaffa och visualisera användarskriptdata,Och generera ett diagram på användarens personliga hemsida för att visa den detaljerade installationsstatusen nedan. -// @name:th GrreasyFork การแสดงข้อมูลสคริปต์ที่ผู้ใช้เผยแพร่ -// @description:th ใช้Chart.jsการรับและการแสดงภาพข้อมูลสคริปต์ผู้ใช้,และสร้างแผนภูมิบนหน้าแรกส่วนตัวของผู้ใช้เพื่อแสดงสถานะการติดตั้งโดยละเอียดด้านล่าง -// @name:tr GrreasyFork Kullanıcı tarafından yayınlanan komut dosyası veri görselleştirmesi -// @description:tr kullanmakChart.jsKullanıcı komut dosyası verilerinin elde edilmesi ve görselleştirilmesi,Aşağıda ayrıntılı kurulum durumunu görüntülemek için kullanıcının kişisel ana sayfasında bir grafik oluşturun. -// @name:ug GrreasyFork ئىشلەتكۈچى ئېلان قىلغان قوليازما سانلىق مەلۇمات كۆرۈنۈش -// @description:ug useChart.jsئىشلەتكۈچى قوليازما سانلىق مەلۇماتلىرىغا ئېرىشىش ۋە تەسۋىرلەش,ھەمدە تۆۋەندىكى تەپسىلىي قاچىلاش ھالىتىنى كۆرسىتىش ئۈچۈن ئىشلەتكۈچىنىڭ شەخسىي باش بېتىدە جەدۋەل ھاسىل قىلىڭ. -// @name:uk GrreasyFork Візуалізація даних опублікованого користувачем сценарію -// @description:uk використовуватиChart.jsОтримання та візуалізація даних сценарію користувача,І створіть діаграму на особистій домашній сторінці користувача, щоб відобразити детальний стан встановлення нижче. -// @name:vi GrreasyFork Trực quan hóa dữ liệu tập lệnh do người dùng xuất bản -// @description:vi sử dụngChart.jsLấy và hiển thị dữ liệu tập lệnh người dùng,Và tạo biểu đồ trên trang chủ cá nhân của người dùng để hiển thị trạng thái cài đặt chi tiết bên dưới. -// @name:zh-TW GrreasyFork 用戶發布的腳本資料視覺化 -// @description:zh-TW 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 -// @name:zh-HK GrreasyFork 用戶發布的腳本資料視覺化 -// @description:zh-HK 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 -// @name:fr-CA GrreasyFork Visualisation des données de script publié par l’utilisateur -// @description:fr-CA utiliserChart.jsObtention et visualisation des données de script utilisateur,Et générez un graphique sur la page d’accueil personnelle de l’utilisateur pour afficher l’état détaillé de l’installation ci-dessous. -// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHN0eWxlPSJmaWxsOiAjRDcyMzIzOyI+PHBhdGggZD0iTTIwMC4zIDI2OS45Yy0xNS43IDYuNi0zMi43IDEwLjEtNTAuMyAxMC4xLTM0LjcgMC02Ny40LTEzLjUtOTEuOS0zOC4xQzMzLjUgMjE3LjQgMjAgMTg0LjcgMjAgMTUwczEzLjUtNjcuNCAzOC4xLTkxLjlDODIuNiAzMy41IDExNS4zIDIwIDE1MCAyMHM2Ny40IDEzLjUgOTEuOSAzOC4xQzI2Ni41IDgyLjYgMjgwIDExNS4zIDI4MCAxNTBjMCAxNy42LTMuNSAzNC42LTEwIDUwLjMgNSA1IDEwIDEwLjEgMTUuMSAxNS4xIDkuNi0xOS44IDE1LTQyIDE1LTY1LjRDMzAwIDY3LjIgMjMyLjggMCAxNTAgMFMwIDY3LjIgMCAxNTBzNjcuMiAxNTAgMTUwIDE1MGMyMy40IDAgNDUuNi01LjQgNjUuNC0xNS01LjEtNS0xMC4xLTEwLjEtMTUuMS0xNS4xeiIvPjxwYXRoIGQ9Ik0yNjcuOCAzMDBjLTkuNi0xLjMtMTYuNS03LTIzLjEtMTMuNy0xNC45LTE1LjMtMzAuMS0zMC4yLTQ1LjItNDUuMy05LjMtOS4zLTEyLTIwLjEtNy41LTMyLjcuMy0uOC4zLTIuMS0uMi0yLjYtMy45LTQuMS03LjktOC0xMi0xMi4xLTYuNCA0LTEzLjEgNi43LTIwLjUgNy42LTE1LjUgMS45LTI5LTIuNC00MC4yLTEzLjItMTIuMy0xMS44LTI0LjItMjQtMzYuMi0zNi4xLTMuNS0zLjUtNC4xLTcuNC0yLjItMTEuMiAxLjktMy43IDUuOS02LjQgOS43LTUuNiAyLjUuNSA1LjEgMiA2LjkgMy44IDcuNCA3LjEgMTQuNSAxNC40IDIxLjggMjEuNi42LjYgMS4zIDEuMiAxLjcgMS42bDEzLjgtMTMuOGMtNi4yLTYuMS0xMi42LTEyLjUtMTguOS0xOC45LTEuOS0xLjktMy44LTMuNy01LjYtNS42LTMuOC00LjItMy43LTkuNy4yLTEzLjYgMy45LTMuOSA5LjUtNC4xIDEzLjYtLjEgNy41IDcuMyAxNC44IDE0LjcgMjIuMSAyMi4xLjguOCAxLjUgMS44IDIuMSAyLjRsMTQuMy0xNC4zYy0yLTEuOC00LjUtNC02LjgtNi4zLTYtNS45LTExLjktMTEuOC0xNy44LTE3LjgtMi43LTIuNy0zLjctNS45LTIuNC05LjYgMS40LTMuOSA0LjItNi4zIDguMy02LjkgMy40LS42IDYgMSA4LjQgMy4zbDE0LjcgMTQuN2M3LjQgNy40IDE0LjkgMTQuNiAyMiAyMi4yIDE0LjcgMTUuNyAxNyAzOS4xIDYuMSA1Ny43LS40LjctLjcgMS40LTEuMyAyLjQgMy45IDMuOSA3LjkgNy44IDExLjkgMTEuNi42LjUgMiAuNiAyLjguMyAxMi41LTQuNCAyMy4zLTEuNyAzMi43IDcuNiAxNS4xIDE1LjEgMzAuMSAzMC4zIDQ1LjMgNDUuMiA2LjcgNi41IDEyLjQgMTMuNCAxMy43IDIzdjUuOGMtLjIuNS0uNCAxLjEtLjUgMS42LTEuOCA5LjUtNi42IDE3LTE1LjUgMjEuMi0zLjMgMS42LTYuOSAyLjMtMTAuNCAzLjUtMS45LjItMy44LjItNS44LjJ6Ii8+PHBhdGggZD0iTTE3MCAyMTkuNmMtMi43LjctNS40IDEuMi04LjIgMS41LTMuMS40LTYuMi42LTkuMi42LTE3LjkgMC0zNC4yLTYuNi00Ny4yLTE5LjItMTAuMi05LjgtMjAuMi0yMC0zMC0yOS44bC02LjYtNi42Yy05LjUtOS41LTExLjctMjIuNy01LjgtMzQuMyA0LjktOS42IDE0LjQtMTYgMjQuNS0xNi42LjUtNi45IDMuNS0xMy42IDguOS0xOC45IDUuMi01LjEgMTEuOC04LjIgMTguNy04LjcuMi0yLjUuNy00LjkgMS42LTcuNCAzLjgtMTAuOCAxMi42LTE4LjEgMjMuOS0yMCAxLjUtLjIgMy4xLS40IDQuNi0uNCA1LjQgMCAxMy40IDEuNiAyMS4xIDkuMiA0LjcgNC43IDkuNiA5LjUgMTQuOCAxNC43IDIuMSAyLjIgNC40IDQuNCA2LjUgNi41IDUuMyA1LjIgMTAuNyAxMC42IDE1LjkgMTYuMiAxMC4yIDEwLjkgMTYuNCAyNC41IDE3LjkgMzkuMy45IDguMi4yIDE2LjQtMS44IDI0LjJoLjFjMTIuOCAwIDI0LjcgNS4xIDM0LjcgMTQuOCAzLjYtMTAuOSA1LjYtMjIuNiA1LjYtMzQuNyAwLTYwLjgtNDkuMi0xMTAtMTEwLTExMFM0MCA4OS4yIDQwIDE1MHM0OS4yIDExMCAxMTAgMTEwYzEyLjEgMCAyMy44LTIgMzQuNy01LjYtOS44LTEwLjEtMTQuOC0yMi4xLTE0LjctMzQuOHoiLz48L3N2Zz4= -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.1.1.1 -// @author aspen138,人民的勤务员 -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @match *://greasyfork.org/*/users/* -// @grant none -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @downloadURL https://update.greasyfork.org/scripts/508968/GrreasyFork%20User-published%20script%20data%20visualization.user.js -// @updateURL https://update.greasyfork.org/scripts/508968/GrreasyFork%20User-published%20script%20data%20visualization.meta.js -// ==/UserScript== -(function () { - 'use strict' - let ONPAGE = true//默认向GreasyFork下载用户数据,为true时从当前访问的页面获取 - let OPENLINK = 1 //点击柱,跳转到脚本网址.0 不跳转,1跳转前有提示,2直接跳转 - // Function to fetch user data - const injectChartJs = () => { - const userHeader = document.querySelector('#about-user h2') - if (!userHeader) return - const loadChartJs = (library) => { - const script = document.createElement('script') - script.textContent = library - document.head.appendChild(script) - fetchDataAndPlot() - } - const chartJsFromStorage = localStorage.getItem('chartJsLibrary') - if (chartJsFromStorage) { - loadChartJs(chartJsFromStorage) - } else { - fetch('https://cdn.jsdelivr.net/npm/chart.js') - .then(response => response.text()) - .then(library => { - localStorage.setItem('chartJsLibrary', library) - loadChartJs(library) - }) - .catch(error => console.error('Chart.js 加载失败: ', error)) - } - } - const getUserData = (userID) => { - return fetch(`https://${window.location.hostname}/users/${userID}.json`) - .then((response) => { - console.log(`${response.status}: ${response.url}`) - return response.json() - }) - .then((data) => { - data.scripts.sort((a, b) => b.total_installs - a.total_installs) - return data - }) - } - // Function to plot the chart console.log() - const plotDistribution = (labels, totalInstalls, dailyInstalls, links, updateds, createds) => { - const canvasHtml = '' - const userHeader = document.querySelector('#about-user h2') - if (userHeader) { - userHeader.insertAdjacentHTML('afterend', canvasHtml) - const ctx = document.getElementById('installDistributionCanvas').getContext('2d') - // Plot chart - const chart = new Chart(ctx, { - type: 'bar', // Change this to 'line', 'bar', etc. as needed - data: { - labels: labels, // X-axis labels - datasets: [{ - label: 'Total Installs', - data: totalInstalls, // Y-axis data for Total Installs - backgroundColor: 'rgba(54, 162, 235, 0.2)', - borderColor: 'rgba(54, 162, 235, 1)', - borderWidth: 1, - yAxisID: 'y-axis-1',// Associate this dataset with the first y-axis - }, - { - label: 'Daily Installs', - data: dailyInstalls, // Y-axis data for Daily Installs - backgroundColor: 'rgba(255, 99, 132, 0.2)', - borderColor: 'rgba(255, 99, 132, 1)', - borderWidth: 1, - yAxisID: 'y-axis-2',// Associate this dataset with the second y-axis - }] - }, - options: { - scales: { - 'y-axis-1': { - type: 'linear', - position: 'left', // This places the first y-axis on the left - beginAtZero: true, - ticks: { - color: 'rgba(54, 162, 235, 1)' - }, - }, - 'y-axis-2': { - type: 'linear', - position: 'right',// This places the second y-axis on the right - beginAtZero: true, - ticks: { - color: 'rgba(255, 99, 132, 1)' - } - }, x: { - grid: { - display: false - }, - /* ticks: { - color: 'blue', - maxRotation: 60, - minRotation: 60, - callback: function (value) { - const label = this.getLabelForValue(value) - if (label.length > 15) { - return label.substring(0, 10) + '...' - } - return label.split(' ').join('\n') - }, - } */ - } - }, onClick: function (evt, activeElements) { - if (activeElements.length > 0) { - const element = activeElements[0] - const datasetIndex = element.datasetIndex - const dataIndex = element.index - const label = chart.data.labels[dataIndex] - const value = chart.data.datasets[datasetIndex].data[dataIndex] - console.log(`点击\nLabel: ${label}\nValue: ${value}\nLink: ${links[dataIndex]}`) - if (OPENLINK === 1 && !confirm(`Open: ${label}?`)) return - if (OPENLINK !== 0) window.open(links[dataIndex], '_blank') - } - }, - plugins: { - legend: { - onClick: (e, legendItem, legend) => { - // 获取当前数据集 - const datasetIndex = legendItem.datasetIndex - const dataset = chart.data.datasets[datasetIndex] - // 切换数据集的显示状态 - dataset.hidden = !dataset.hidden - // 更新 Y 轴显示状态 - chart.options.scales['y-axis-1'].display = chart.data.datasets.some(ds => ds.yAxisID === 'y-axis-1' && !ds.hidden) - chart.options.scales['y-axis-2'].display = chart.data.datasets.some(ds => ds.yAxisID === 'y-axis-2' && !ds.hidden) - // 更新图表 - chart.update() - } - }, tooltip: { - callbacks: { - label: function (tooltipItem) { - const label = tooltipItem.dataset.label || '' - const value = tooltipItem.raw - return `${label}: ${value}` - }, - afterBody: function (tooltipItem) { - const index = tooltipItem[0].dataIndex - const extraInfo = `\n📅${toSystemTime(createds[index])}\n⏰${toSystemTime(updateds[index])}` - return extraInfo - } - }, - } - } - } - }) - } - } - function toSystemTime(isoTime) { - let date = new Date(isoTime) - return date.toLocaleString() - } - // Function to display totals - const displayTotals = (daily, total, publishedScriptsNumber) => { - const userHeader = document.querySelector('#about-user h2') - const language = document.documentElement.lang // Get the current language of the document - let dailyInstallsText = '' - let totalInstallsText = '' - // Determine the text based on the current language - switch (language) { - case 'zh-CN': - publishedScriptsNumber = `已发布脚本总数:${publishedScriptsNumber}` - dailyInstallsText = `该用户所有脚本的今日总安装次数:${daily}` - totalInstallsText = `该用户所有脚本的迄今总安装次数:${total}` - break - case 'zh-TW': - publishedScriptsNumber = `已發布腳本總數:${publishedScriptsNumber}` - dailyInstallsText = `該用戶所有腳本的今日總安裝次數:${daily}` - totalInstallsText = `該用戶所有腳本的迄今總安裝次數:${total}` - break - case 'ja': - publishedScriptsNumber = `公開されたスクリプトの合計:${publishedScriptsNumber}` - dailyInstallsText = `本日の全スクリプトの合計インストール回数:${daily}` - totalInstallsText = `全スクリプトの累計インストール回数:${total}` - break - case 'ko': - publishedScriptsNumber = `게시된 스크립트 총 수: ${publishedScriptsNumber}` - dailyInstallsText = `해당 사용자의 모든 스크립트에 대한 오늘의 총 설치 횟수: ${daily}` - totalInstallsText = `해당 사용자의 모든 스크립트에 대한 총 설치 횟수: ${total}` - break - default: - publishedScriptsNumber = `Number of published scripts: ${publishedScriptsNumber}` - dailyInstallsText = `Total daily installations for all scripts: ${daily}` - totalInstallsText = `Total installations to date for all scripts: ${total}` - } - if (userHeader) { - userHeader.insertAdjacentHTML('afterend', ` -
    ${publishedScriptsNumber}
    -
    ${dailyInstallsText}
    -
    ${totalInstallsText}
    - `) - } - } - // Function to fetch data and plot the chart - const fetchDataAndPlot = () => { - if (ONPAGE) { - const totalInstalls_selector = '#user-script-list-section dd.script-list-total-installs > span' - const dailyInstalls_selector = '#user-script-list-section dd.script-list-daily-installs > span' - const scriptTitle_selector = '#user-script-list-section article > h2 > a.script-link' - const links = Array.from(document.querySelectorAll(scriptTitle_selector)).map(el => el.href) - if (!links.length) return - const labels = Array.from(document.querySelectorAll(scriptTitle_selector)).map(el => el.text) - const updateds = Array.from(document.querySelectorAll("#user-script-list-section dd.script-list-updated-date > span")) - .map(span => span.querySelector("relative-time")?.getAttribute("datetime")) - const createds = Array.from(document.querySelectorAll("#user-script-list-section dd.script-list-created-date > span")) - .map(span => span.querySelector("relative-time")?.getAttribute("datetime")) - const totalInstalls = Array.from(document.querySelectorAll(totalInstalls_selector)).map(el => (parseInt(el.textContent.replace(/,/g, ''), 10) || 0)) - const dailyInstalls = Array.from(document.querySelectorAll(dailyInstalls_selector)).map(el => (parseInt(el.textContent.replace(/,/g, ''), 10) || 0)) - const totalDailyInstalls = dailyInstalls.reduce((sum, current) => sum + current, 0) - const totalTotalInstalls = totalInstalls.reduce((sum, current) => sum + current, 0) - const publishedScriptsNumber = totalInstalls.length - plotDistribution(labels, totalInstalls, dailyInstalls, links, updateds, createds) - displayTotals(totalDailyInstalls, totalTotalInstalls, publishedScriptsNumber) - return - } - const currentURL = window.location.href - const userIDMatch = currentURL.match(/(\d+)/) - const userID = userIDMatch ? userIDMatch[1] : null - getUserData(userID) - .then((data) => { - //console.log("data=", data); - const scripts = data.all_listable_scripts || data.scripts || [] - //const filteredScripts = scripts.filter(script => !script.deleted) - const filteredScripts = scripts.filter(script => - !script.deleted && - (script.code_url.includes('.user.js') || script.code_url.includes('.user.css')) - )//在当前已登录账户的个人主页屏蔽删除掉的脚本与排除.js库文件 - const labels = filteredScripts.map(script => script.name) - const links = filteredScripts.map(script => script.url) - if (!links.length) return - const updateds = filteredScripts.map(script => script.code_updated_at) - const createds = filteredScripts.map(script => script.created_at) - const totalInstalls = filteredScripts.map(script => script.total_installs) - const dailyInstalls = filteredScripts.map(script => script.daily_installs) - const totalDailyInstalls = dailyInstalls.reduce((sum, value) => sum + value, 0) - const totalTotalInstalls = totalInstalls.reduce((sum, value) => sum + value, 0) - const publishedScriptsNumber = filteredScripts.length - plotDistribution(labels, totalInstalls, dailyInstalls, links, updateds, createds) - displayTotals(totalDailyInstalls, totalTotalInstalls, publishedScriptsNumber) - }) - .catch((error) => console.error('Error fetching user data:', error)) - } - injectChartJs() -})() diff --git a/Script details/greasyfork-user-scripts-data-visualization/Change history/README.md b/greasyfork-user-scripts-data-visualization/Change history/README.md similarity index 91% rename from Script details/greasyfork-user-scripts-data-visualization/Change history/README.md rename to greasyfork-user-scripts-data-visualization/Change history/README.md index 6541cbaa5..4024174b1 100644 --- a/Script details/greasyfork-user-scripts-data-visualization/Change history/README.md +++ b/greasyfork-user-scripts-data-visualization/Change history/README.md @@ -1,8 +1,8 @@ -# **🛠️ GrreasyFork 用户脚本数据可视化 更新日志** - +# **🛠️ GrreasyFork 用户脚本数据可视化 更新日志** ### **📅 2024-09-20 07:46- Ver 1.1.1.1** -**新增**: •增加自己使用的一些小功能.`表格显示创建与更新日期` `Y轴数值高亮` `点击柱状图跳转对应脚本` 脚本中的`OPENLINK` 为`0`不跳转,`1`跳转前有提示,`2`直接跳转 + +**新增**: •增加自己使用的一些小功能.`表格显示创建与更新日期` `Y轴数值高亮` `点击柱状图跳转对应脚本` 脚本中的`OPENLINK` 为`0`不跳转,`1`跳转前有提示,`2`直接跳转 | 新增 | 新增演示 | | -------------------------------------------------------------- | --------------------------------------------------------------- | @@ -12,11 +12,13 @@ --- ### **📅 2024-09-19 12:56:19- Ver 1.1.1.0** + **修改**: •修改`chart.js`为首次加载,加载完成后保存在`localStorage`无需每次重复加载 --- ### **📅 2024-09-19 08:25:19- Ver 1.1.0.0** + **修复**: • 修复图表一些问题.
    | 修改前 | 修改后 | @@ -28,6 +30,7 @@ --- ### **📅 2024-09-18 11:01:32- Ver 1.0.0.0** + **增加**: •增加了原作者[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)另外脚本[Displays the number of scripts published by the user, the total number of installations](https://greasyfork.org/zh-CN/scripts/482623)里面的从当前网页获取用户数据,可以在脚本内或者脚本菜单中设置从JSON数据获取还是从当前页面获取脚本数据默认向GreasyFrok下载用户数据
    **修改**: •~~修改`chart.js`为@require 加载,无需每次重复加载~~Greasyfork不允许使用未经批准的外部脚本
    **修改**: •修改从网络获取用户数据时,按照总安装量由高到低排序
    diff --git a/greasyfork-user-scripts-data-visualization/README.md b/greasyfork-user-scripts-data-visualization/README.md new file mode 100644 index 000000000..0f95e32d1 --- /dev/null +++ b/greasyfork-user-scripts-data-visualization/README.md @@ -0,0 +1,320 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    + + + +
    + + + + + +
    +

    GrreasyFork 用户发布的脚本数据可视化

    +

    「 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    更新记录

    🛠️ GrreasyFork 用户脚本数据可视化 更新日志

    +

    📅 2024-09-20 07:46- Ver 1.1.1.1

    +

    新增: •增加自己使用的一些小功能.表格显示创建与更新日期 Y轴数值高亮 点击柱状图跳转对应脚本 脚本中的OPENLINK0不跳转,1跳转前有提示,2直接跳转

    + + + + + + + + + + + + + + + + + +
    新增新增演示
    New.png跳转.gif
    +
    +

    📅 2024-09-19 12:56:19- Ver 1.1.1.0

    +

    修改: •修改chart.js为首次加载,加载完成后保存在localStorage无需每次重复加载

    +
    +

    📅 2024-09-19 08:25:19- Ver 1.1.0.0

    +

    修复: • 修复图表一些问题.

    + + + + + + + + + + + + + + + + + + + + + +
    修改前修改后
    修改前.png修改后.png
    修改前.gif修改后.gif
    +
    +

    📅 2024-09-18 11:01:32- Ver 1.0.0.0

    +

    增加: •增加了原作者138 Aspen另外脚本Displays the number of scripts published by the user, the total number of installations里面的从当前网页获取用户数据,可以在脚本内或者脚本菜单中设置从JSON数据获取还是从当前页面获取脚本数据默认向GreasyFrok下载用户数据
    +修改: •~~修改chart.js为@require 加载,无需每次重复加载~~Greasyfork不允许使用未经批准的外部脚本
    +修改: •修改从网络获取用户数据时,按照总安装量由高到低排序
    +修改: •修改寻找用户ID的表达式为/(\d+)/,兼容Greasyfork 糊裱匠清除链接无用字符功能

    +
    + +
    + + + +# GrreasyFork 用户脚本数据可视化 + + + +## 描述 + +该用户脚本使用 Chart.js 库从 GreasyFork 上的用户脚本页面中提取和可视化脚本数据。它提供了以下功能: + +- **数据提取**: 从用户的脚本页面中提取安装次数数据,包括总安装次数和每日安装次数。 +- **数据可视化**: 使用图表(条形图)展示每个脚本的总安装次数和每日安装次数。 +- **数据展示**: 在图表下方显示总安装次数、每日安装总数以及已发布脚本的数量。 + + + +## 功能 + +1. **获取用户数据**: 从用户脚本页面中提取相关数据。 +2. **数据可视化**: 使用 Chart.js 绘制图表来展示脚本的安装数据。 +3. **展示统计信息**: 在图表下方显示总的每日安装次数、总安装次数和已发布脚本的数量。 + + + +## 安装 + +1. **安装 Greasemonkey 或 Tampermonkey 插件**: 请确保您的浏览器已安装 Greasemonkey 或 Tampermonkey 插件。 +2. **添加脚本**: + - 点击上方绿色安装按钮进行安装 + + + +## 使用 + +1. **访问 GreasyFork 用户脚本页面**: 打开任意用户的脚本页面,例如 [https://greasyfork.org/users/1169082](https://greasyfork.org/users/1169082)。 +2. **查看图表和统计数据**: 脚本将在用户的个人页面加载后自动生成并展示数据图表和统计信息。 +3. **从网络或者从当前页面加载**: 脚本在代码顶端提供了一个设置,当为`true`时,从当前网页获取,为`false`,向 GreasyFrok 下载用户数据`JSON` + + + +## 支持 + +如遇到问题或需要支持,请访问 [GitHub 问题页面](https://github.com/ChinaGodMan/UserScripts/issues) 提交问题。 + +## 贡献 + +此脚本修改自[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)发布的脚本[GrreasyFork User Script Data Visualization](https://greasyfork.org/zh-CN/scripts/499755) +修改说明:
    +**增加**: •增加了原作者[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)另外脚本[Displays the number of scripts published by the user, the total number of installations](https://greasyfork.org/zh-CN/scripts/482623)里面的从当前网页获取用户数据,可以在脚本内或者脚本菜单中设置从 JSON 数据获取还是从当前页面获取脚本数据
    +**修改**: •~~修改`chart.js`为@require 加载,无需每次重复加载~~Greasyfork 不允许使用未经批准的外部脚本.....
    +**修改**: •修改从网络获取用户数据时,按照总安装量由高到低排序
    +**修改**: •修改寻找用户 ID 的表达式为`/(\d+)/`,兼容[Greasyfork 糊裱匠](https://greasyfork.org/zh-CN/scripts/497346)`清除链接无用字符功能`
    + +欢迎贡献和改进脚本!请访问 [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) 提交拉取请求或报告问题。 + +## 授权 + +该脚本遵循 MIT 许可证。有关详细信息,请查看 [LICENSE](https://github.com/ChinaGodMan/UserScripts/blob/main/LICENSE) 文件。 + +**修正每日安装统计在右边,切换总安装/日安装时图表轴显示问题** + +| 修改前 | 修改后 | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| | +| ![修改前.png](https://s2.loli.net/2024/09/19/A6KoYdv5nbRkMCF.png) | ![修改后.png](https://s2.loli.net/2024/09/19/2UCM18tuWXirgxB.png) | +| ![修改前.gif](https://s2.loli.net/2024/09/19/khLXwEFQI58qjdZ.gif) | ![修改后.gif](https://s2.loli.net/2024/09/19/azlGiIBEg2SAFPc.gif) | + +![png](https://s2.loli.net/2024/09/18/Qixhtq13b4lMwIF.png) + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
    + + diff --git a/greasyfork-user-scripts-data-visualization/README_en.md b/greasyfork-user-scripts-data-visualization/README_en.md new file mode 100644 index 000000000..717aaafa5 --- /dev/null +++ b/greasyfork-user-scripts-data-visualization/README_en.md @@ -0,0 +1,320 @@ + + +
    +
    + + + + + 简体中文 | + English +
    + 👆️accessGitHub Readme file on the app for a better experience。 +
    +
    + + + +
    + + + + + +
    +

    GrreasyFork User-published script data visualization

    +

    「 useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. 」

    + Views + +

    Download:Github | ⭐Greasy + Fork

    Update record

    🛠️ GrreasyFork User script data visualization Change log

    +

    📅 2024-09-20 07:46- Ver 1.1.1.1

    +

    New: •Add some small functions for your own use.Table shows creation and update dates YAxis value highlighting Click on the histogram to jump to the corresponding script in scriptOPENLINK for0No jump,1There is a prompt before jumping,2Jump directly

    + + + + + + + + + + + + + + + + + +
    NewAdd demo
    New.pngJump.gif
    +
    +

    📅 2024-09-19 12:56:19- Ver 1.1.1.0

    +

    Revise: •Revisechart.jsLoad for the first time,After loading is completed, save it inlocalStorageNo need to reload every time

    +
    +

    📅 2024-09-19 08:25:19- Ver 1.1.0.0

    +

    repair: • Fix some chart issues.

    + + + + + + + + + + + + + + + + + + + + + +
    Before modificationAfter modification
    Before modification.pngAfter modification.png
    Before modification.gifAfter modification.gif
    +
    +

    📅 2024-09-18 11:01:32- Ver 1.0.0.0

    +

    Increase: •Added original author138 Aspenadditional scriptDisplays the number of scripts published by the user, the total number of installationsInside, get user data from the current web page,It can be set within the script or in the script menu.JSONData acquisition or script data acquisition from the current page defaults toGreasyFrokDownload user data
    +Revise: •~~Revisechart.jsfor@require load,No need to reload every time~~GreasyforkUnapproved external scripts are not allowed
    +Revise: •When modifying user data obtained from the network,Sort by total installs from high to low
    +Revise: •Modify search for usersIDThe expression of/(\d+)/,compatibleGreasyfork framerClear link useless characters function

    +
    + +
    + + + +# GrreasyFork User script data visualization + + + +## describe + +This userscript uses Chart.js Ku Cong GreasyFork Extract and visualize script data from user script pages on。It provides the following functions: + +- **Data extraction**: Extract install count data from user’s script page,Includes total installs and daily installs。 +- **data visualization**: Use charts(Bar chart)Shows total installs and daily installs for each script。 +- **Data display**: Shows total installs below the graph、Total daily installs and number of published scripts。 + + + +## Function + +1. **Get user data**: Extract relevant data from user script page。 +2. **data visualization**: use Chart.js Draw a chart to display the script’s installation data。 +3. **display statistics**: Shows total daily installs below the chart、Total installs and number of published scripts。 + + + +## Install + +1. **Install Greasemonkey or Tampermonkey plug-in**: Please make sure your browser has it installed Greasemonkey or Tampermonkey plug-in。 +2. **Add script**: + - Click the green install button above to install + + + +## use + +1. **access GreasyFork User script page**: Open any user’s script page,For example [https://greasyfork.org/users/1169082](https://greasyfork.org/users/1169082)。 +2. **View charts and statistics**: The script will automatically generate and display data charts and statistics after the user’s personal page is loaded.。 +3. **Load from the network or from the current page**: The script provides a setting at the top of the code,whenfor`true`hour,Get from current web page,for`false`,TowardsGreasyFrokDownload user data`JSON` + + + +## support + +If you encounter problems or need support,Please visit [GitHub Question page](https://github.com/ChinaGodMan/UserScripts/issues) Submit a question。 + +## contribute + +This script is modified from[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)published script[GrreasyFork User Script Data Visualization](https://greasyfork.org/zh-CN/scripts/499755) +Modification instructions:
    +**Increase**: •Added original author[138 Aspen](https://greasyfork.org/zh-CN/users/1177387)additional script[Displays the number of scripts published by the user, the total number of installations](https://greasyfork.org/zh-CN/scripts/482623)Inside, get user data from the current web page,It can be set within the script or in the script menu.JSONData acquisition or script data acquisition from the current page
    +**Revise**: •~~Revise`chart.js`for@require load,No need to reload every time~~GreasyforkUnapproved external scripts are not allowed.....
    +**Revise**: •When modifying user data obtained from the network,Sort by total installs from high to low
    +**Revise**: •Modify search for usersIDThe expression of`/(\d+)/`,compatible[Greasyfork Glue craftsman](https://greasyfork.org/zh-CN/scripts/497346)`Clear link useless characters function`
    + +Contributions and improvements to the script are welcome!Please visit [GitHub storehouse](https://github.com/ChinaGodMan/UserScripts) Submit a pull request or report an issue。 + +## Authorize + +The script follows MIT license。For more information,Please check [LICENSE](https://github.com/ChinaGodMan/UserScripts/blob/main/LICENSE) document。 + +**Fixed daily installation statistics on the right,Switch overall installation/Chart axis display problem during daily installation** + +| Before modification | After modification | +| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | +| | +| ![Before modification.png](https://s2.loli.net/2024/09/19/A6KoYdv5nbRkMCF.png) | ![After modification.png](https://s2.loli.net/2024/09/19/2UCM18tuWXirgxB.png) | +| ![Before modification.gif](https://s2.loli.net/2024/09/19/khLXwEFQI58qjdZ.gif) | ![After modification.gif](https://s2.loli.net/2024/09/19/azlGiIBEg2SAFPc.gif) | + +![.ng](https://s2.loli.net/2024/09/18/Qixhtq13b4lMwIF.png) + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
    + + diff --git a/Script details/greasyfork-user-scripts-data-visualization/greasyfork-user-scripts-data-visualization.user.js b/greasyfork-user-scripts-data-visualization/greasyfork-user-scripts-data-visualization.user.js similarity index 97% rename from Script details/greasyfork-user-scripts-data-visualization/greasyfork-user-scripts-data-visualization.user.js rename to greasyfork-user-scripts-data-visualization/greasyfork-user-scripts-data-visualization.user.js index 90b1ebd7e..6966ad95b 100644 --- a/Script details/greasyfork-user-scripts-data-visualization/greasyfork-user-scripts-data-visualization.user.js +++ b/greasyfork-user-scripts-data-visualization/greasyfork-user-scripts-data-visualization.user.js @@ -78,7 +78,7 @@ // @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHN0eWxlPSJmaWxsOiAjRDcyMzIzOyI+PHBhdGggZD0iTTIwMC4zIDI2OS45Yy0xNS43IDYuNi0zMi43IDEwLjEtNTAuMyAxMC4xLTM0LjcgMC02Ny40LTEzLjUtOTEuOS0zOC4xQzMzLjUgMjE3LjQgMjAgMTg0LjcgMjAgMTUwczEzLjUtNjcuNCAzOC4xLTkxLjlDODIuNiAzMy41IDExNS4zIDIwIDE1MCAyMHM2Ny40IDEzLjUgOTEuOSAzOC4xQzI2Ni41IDgyLjYgMjgwIDExNS4zIDI4MCAxNTBjMCAxNy42LTMuNSAzNC42LTEwIDUwLjMgNSA1IDEwIDEwLjEgMTUuMSAxNS4xIDkuNi0xOS44IDE1LTQyIDE1LTY1LjRDMzAwIDY3LjIgMjMyLjggMCAxNTAgMFMwIDY3LjIgMCAxNTBzNjcuMiAxNTAgMTUwIDE1MGMyMy40IDAgNDUuNi01LjQgNjUuNC0xNS01LjEtNS0xMC4xLTEwLjEtMTUuMS0xNS4xeiIvPjxwYXRoIGQ9Ik0yNjcuOCAzMDBjLTkuNi0xLjMtMTYuNS03LTIzLjEtMTMuNy0xNC45LTE1LjMtMzAuMS0zMC4yLTQ1LjItNDUuMy05LjMtOS4zLTEyLTIwLjEtNy41LTMyLjcuMy0uOC4zLTIuMS0uMi0yLjYtMy45LTQuMS03LjktOC0xMi0xMi4xLTYuNCA0LTEzLjEgNi43LTIwLjUgNy42LTE1LjUgMS45LTI5LTIuNC00MC4yLTEzLjItMTIuMy0xMS44LTI0LjItMjQtMzYuMi0zNi4xLTMuNS0zLjUtNC4xLTcuNC0yLjItMTEuMiAxLjktMy43IDUuOS02LjQgOS43LTUuNiAyLjUuNSA1LjEgMiA2LjkgMy44IDcuNCA3LjEgMTQuNSAxNC40IDIxLjggMjEuNi42LjYgMS4zIDEuMiAxLjcgMS42bDEzLjgtMTMuOGMtNi4yLTYuMS0xMi42LTEyLjUtMTguOS0xOC45LTEuOS0xLjktMy44LTMuNy01LjYtNS42LTMuOC00LjItMy43LTkuNy4yLTEzLjYgMy45LTMuOSA5LjUtNC4xIDEzLjYtLjEgNy41IDcuMyAxNC44IDE0LjcgMjIuMSAyMi4xLjguOCAxLjUgMS44IDIuMSAyLjRsMTQuMy0xNC4zYy0yLTEuOC00LjUtNC02LjgtNi4zLTYtNS45LTExLjktMTEuOC0xNy44LTE3LjgtMi43LTIuNy0zLjctNS45LTIuNC05LjYgMS40LTMuOSA0LjItNi4zIDguMy02LjkgMy40LS42IDYgMSA4LjQgMy4zbDE0LjcgMTQuN2M3LjQgNy40IDE0LjkgMTQuNiAyMiAyMi4yIDE0LjcgMTUuNyAxNyAzOS4xIDYuMSA1Ny43LS40LjctLjcgMS40LTEuMyAyLjQgMy45IDMuOSA3LjkgNy44IDExLjkgMTEuNi42LjUgMiAuNiAyLjguMyAxMi41LTQuNCAyMy4zLTEuNyAzMi43IDcuNiAxNS4xIDE1LjEgMzAuMSAzMC4zIDQ1LjMgNDUuMiA2LjcgNi41IDEyLjQgMTMuNCAxMy43IDIzdjUuOGMtLjIuNS0uNCAxLjEtLjUgMS42LTEuOCA5LjUtNi42IDE3LTE1LjUgMjEuMi0zLjMgMS42LTYuOSAyLjMtMTAuNCAzLjUtMS45LjItMy44LjItNS44LjJ6Ii8+PHBhdGggZD0iTTE3MCAyMTkuNmMtMi43LjctNS40IDEuMi04LjIgMS41LTMuMS40LTYuMi42LTkuMi42LTE3LjkgMC0zNC4yLTYuNi00Ny4yLTE5LjItMTAuMi05LjgtMjAuMi0yMC0zMC0yOS44bC02LjYtNi42Yy05LjUtOS41LTExLjctMjIuNy01LjgtMzQuMyA0LjktOS42IDE0LjQtMTYgMjQuNS0xNi42LjUtNi45IDMuNS0xMy42IDguOS0xOC45IDUuMi01LjEgMTEuOC04LjIgMTguNy04LjcuMi0yLjUuNy00LjkgMS42LTcuNCAzLjgtMTAuOCAxMi42LTE4LjEgMjMuOS0yMCAxLjUtLjIgMy4xLS40IDQuNi0uNCA1LjQgMCAxMy40IDEuNiAyMS4xIDkuMiA0LjcgNC43IDkuNiA5LjUgMTQuOCAxNC43IDIuMSAyLjIgNC40IDQuNCA2LjUgNi41IDUuMyA1LjIgMTAuNyAxMC42IDE1LjkgMTYuMiAxMC4yIDEwLjkgMTYuNCAyNC41IDE3LjkgMzkuMy45IDguMi4yIDE2LjQtMS44IDI0LjJoLjFjMTIuOCAwIDI0LjcgNS4xIDM0LjcgMTQuOCAzLjYtMTAuOSA1LjYtMjIuNiA1LjYtMzQuNyAwLTYwLjgtNDkuMi0xMTAtMTEwLTExMFM0MCA4OS4yIDQwIDE1MHM0OS4yIDExMCAxMTAgMTEwYzEyLjEgMCAyMy44LTIgMzQuNy01LjYtOS44LTEwLjEtMTQuOC0yMi4xLTE0LjctMzQuOHoiLz48L3N2Zz4= // @namespace https://github.com/ChinaGodMan/UserScripts // @version 1.1.1.1 -// @author aspen138,人民的勤务员 +// @author aspen138,人民的勤务员 // @compatible chrome // @compatible firefox // @compatible edge @@ -148,7 +148,7 @@ backgroundColor: 'rgba(54, 162, 235, 0.2)', borderColor: 'rgba(54, 162, 235, 1)', borderWidth: 1, - yAxisID: 'y-axis-1',// Associate this dataset with the first y-axis + yAxisID: 'y-axis-1'// Associate this dataset with the first y-axis }, { label: 'Daily Installs', @@ -156,7 +156,7 @@ backgroundColor: 'rgba(255, 99, 132, 0.2)', borderColor: 'rgba(255, 99, 132, 1)', borderWidth: 1, - yAxisID: 'y-axis-2',// Associate this dataset with the second y-axis + yAxisID: 'y-axis-2'// Associate this dataset with the second y-axis }] }, options: { @@ -167,7 +167,7 @@ beginAtZero: true, ticks: { color: 'rgba(54, 162, 235, 1)' - }, + } }, 'y-axis-2': { type: 'linear', @@ -179,7 +179,7 @@ }, x: { grid: { display: false - }, + } /* ticks: { color: 'blue', maxRotation: 60, @@ -231,7 +231,7 @@ const extraInfo = `\n📅${toSystemTime(createds[index])}\n⏰${toSystemTime(updateds[index])}` return extraInfo } - }, + } } } } @@ -292,10 +292,10 @@ const links = Array.from(document.querySelectorAll(scriptTitle_selector)).map(el => el.href) if (!links.length) return const labels = Array.from(document.querySelectorAll(scriptTitle_selector)).map(el => el.text) - const updateds = Array.from(document.querySelectorAll("#user-script-list-section dd.script-list-updated-date > span")) - .map(span => span.querySelector("relative-time")?.getAttribute("datetime")) - const createds = Array.from(document.querySelectorAll("#user-script-list-section dd.script-list-created-date > span")) - .map(span => span.querySelector("relative-time")?.getAttribute("datetime")) + const updateds = Array.from(document.querySelectorAll('#user-script-list-section dd.script-list-updated-date > span')) + .map(span => span.querySelector('relative-time')?.getAttribute('datetime')) + const createds = Array.from(document.querySelectorAll('#user-script-list-section dd.script-list-created-date > span')) + .map(span => span.querySelector('relative-time')?.getAttribute('datetime')) const totalInstalls = Array.from(document.querySelectorAll(totalInstalls_selector)).map(el => (parseInt(el.textContent.replace(/,/g, ''), 10) || 0)) const dailyInstalls = Array.from(document.querySelectorAll(dailyInstalls_selector)).map(el => (parseInt(el.textContent.replace(/,/g, ''), 10) || 0)) const totalDailyInstalls = dailyInstalls.reduce((sum, current) => sum + current, 0) diff --git a/Script details/greasyfork-user-scripts-data-visualization/preview/New.png b/greasyfork-user-scripts-data-visualization/preview/New.png similarity index 100% rename from Script details/greasyfork-user-scripts-data-visualization/preview/New.png rename to greasyfork-user-scripts-data-visualization/preview/New.png diff --git a/Script details/greasyfork-user-scripts-data-visualization/preview/Snipaste_2024-09-18_11-25-20.png b/greasyfork-user-scripts-data-visualization/preview/Snipaste_2024-09-18_11-25-20.png similarity index 100% rename from Script details/greasyfork-user-scripts-data-visualization/preview/Snipaste_2024-09-18_11-25-20.png rename to greasyfork-user-scripts-data-visualization/preview/Snipaste_2024-09-18_11-25-20.png diff --git "a/Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.gif" "b/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.gif" similarity index 100% rename from "Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.gif" rename to "greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.gif" diff --git "a/Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.png" "b/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.png" similarity index 100% rename from "Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.png" rename to "greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\211\215.png" diff --git "a/Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.gif" "b/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.gif" similarity index 100% rename from "Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.gif" rename to "greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.gif" diff --git "a/Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.png" "b/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.png" similarity index 100% rename from "Script details/greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.png" rename to "greasyfork-user-scripts-data-visualization/preview/\344\277\256\346\224\271\345\220\216.png" diff --git "a/Script details/greasyfork-user-scripts-data-visualization/preview/\350\267\263\350\275\254.gif" "b/greasyfork-user-scripts-data-visualization/preview/\350\267\263\350\275\254.gif" similarity index 100% rename from "Script details/greasyfork-user-scripts-data-visualization/preview/\350\267\263\350\275\254.gif" rename to "greasyfork-user-scripts-data-visualization/preview/\350\267\263\350\275\254.gif" diff --git a/greasyfork-utility-toolkit.user.js b/greasyfork-utility-toolkit.user.js deleted file mode 100644 index 97b545bd0..000000000 --- a/greasyfork-utility-toolkit.user.js +++ /dev/null @@ -1,5039 +0,0 @@ -// ==UserScript== -// @name Greasyfork Utility Toolkit -// @name:zh-CN Greasyfork 糊裱匠 -// @description:zh-CN 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 -// @name:ar Greasyfork حرفي الغراء -// @description:ar ل Greasyfork توفير وظائف الاستخدام المختلفة,الوقت المطلق,شاشة ويب عريضة,تحسينات صفحة البرنامج النصي,تنزيل الامتداد,إصلاح اللوحة وسلسلة من العمليات -// @name:bg Greasyfork Майстор на лепило -// @description:bg за Greasyfork Осигурете различни функции за използване,абсолютно време,Уеб широкоекранен,Подобрения на страницата със скриптове,Изтегляне на разширение,Ремонт на панел и серия от операции -// @name:cs Greasyfork Lepidlo řemeslník -// @description:cs pro Greasyfork Poskytují různé uživatelské funkce,absolutní čas,Širokoúhlý web,Vylepšení stránky skriptu,Stáhnout rozšíření,Oprava panelu a řada operací -// @name:da Greasyfork Lim håndværker -// @description:da for Greasyfork Giver forskellige brugsfunktioner,absolut tid,Web widescreen,Forbedringer af scriptside,Download udvidelse,Panelreparation og en række operationer -// @name:de Greasyfork Kleberhandwerker -// @description:de für Greasyfork Stellen Sie verschiedene Nutzungsfunktionen bereit,absolute Zeit,Web-Breitbild,Verbesserungen der Skriptseite,Erweiterung herunterladen,Panel-Reparatur und eine Reihe von Operationen -// @name:el Greasyfork Τεχνίτης κόλλας -// @description:el για Greasyfork Παρέχετε διάφορες λειτουργίες χρήσης,απόλυτος χρόνος,Web ευρεία οθόνη,Βελτιώσεις σελίδας σεναρίου,Λήψη επέκτασης,Επισκευή πίνακα και μια σειρά λειτουργιών -// @name:en Greasyfork Glue craftsman -// @description:en for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations -// @name:eo Greasyfork Glua metiisto -// @description:eo por Greasyfork Provizu diversajn uzfunkciojn,absoluta tempo,Reteja larĝa ekrano,Plibonigoj pri skriptopaĝo,Elŝutu etendon,Riparo de paneloj kaj serio de operacioj -// @name:es Greasyfork Artesano del pegamento -// @description:es para Greasyfork Proporcionar varias funciones de uso.,tiempo absoluto,pantalla ancha web,Mejoras en la página de script,Descargar extensión,Reparación de paneles y una serie de operaciones. -// @name:fi Greasyfork Liiman käsityöläinen -// @description:fi varten Greasyfork Tarjoa erilaisia ​​käyttötoimintoja,absoluuttinen aika,Web laajakuva,Käsikirjoitussivun parannukset,Lataa laajennus,Paneelin korjaus ja sarja toimenpiteitä -// @name:fr Greasyfork Artisan de la colle -// @description:fr pour Greasyfork Fournir diverses fonctions d’utilisation,temps absolu,Web grand écran,Améliorations de la page de script,Télécharger l’extension,Réparation de panneaux et série d’opérations -// @name:he Greasyfork אומן דבק -// @description:he עֲבוּר Greasyfork לספק פונקציות שימוש שונות,זמן מוחלט,מסך רחב באינטרנט,שיפורי דפי סקריפט,הורד תוסף,תיקון לוח וסדרת פעולות -// @name:hr Greasyfork Majstor za ljepilo -// @description:hr za Greasyfork Pružite različite funkcije korištenja,apsolutno vrijeme,Web široki zaslon,Poboljšanja stranice skripte,Proširenje za preuzimanje,Popravak panela i niz operacija -// @name:hu Greasyfork Ragasztó iparos -// @description:hu számára Greasyfork Különféle használati funkciókat biztosít,abszolút idő,Web szélesvásznú,A szkriptoldal fejlesztései,Bővítmény letöltése,Paneljavítás és egy sor művelet -// @name:id Greasyfork Pengrajin lem -// @description:id untuk Greasyfork Menyediakan berbagai fungsi penggunaan,waktu mutlak,Layar lebar web,Peningkatan halaman skrip,Unduh ekstensi,Perbaikan panel dan serangkaian operasi -// @name:it Greasyfork Artigiano della colla -// @description:it per Greasyfork Fornire varie funzioni di utilizzo,tempo assoluto,Web widescreen,Miglioramenti alla pagina dello script,Scarica l’estensione,Riparazione del pannello e una serie di operazioni -// @name:ja Greasyfork 糊裱匠 -// @description:ja のために Greasyfork さまざまな利用機能を提供,絶対時間,ウェブワイドスクリーン,スクリプトページの機能強化,ダウンロード拡張機能,パネル修理と一連の作業 -// @name:ka Greasyfork წებოს ხელოსანი -// @description:ka ამისთვის Greasyfork უზრუნველყოს სხვადასხვა გამოყენების ფუნქციები,აბსოლუტური დრო,ვებ ფართოეკრანი,სკრიპტის გვერდის გაუმჯობესება,გაფართოების ჩამოტვირთვა,პანელის შეკეთება და ოპერაციების სერია -// @name:ko Greasyfork 糊裱匠 -// @description:ko ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 -// @name:nl Greasyfork Lijm ambachtsman -// @description:nl voor Greasyfork Bied verschillende gebruiksfuncties,absolute tijd,Web-breedbeeld,Verbeteringen van scriptpagina’s,Extensie downloaden,Paneelreparatie en een reeks bewerkingen -// @name:nb Greasyfork Lim håndverker -// @description:nb til Greasyfork Tilby ulike bruksfunksjoner,absolutt tid,Web widescreen,Skriptsideforbedringer,Last ned utvidelse,Panelreparasjon og en rekke operasjoner -// @name:pl Greasyfork Mistrz klejenia -// @description:pl Do Greasyfork Zapewnij różne funkcje użytkowe,czas absolutny,Internet panoramiczny,Ulepszenia strony skryptowej,Pobierz rozszerzenie,Naprawa panelu i szereg operacji -// @name:pt-BR Greasyfork Artesão de cola -// @description:pt-BR para Greasyfork Fornece várias funções de uso,tempo absoluto,Ecrã panorâmico da Web,Melhorias na página de script,Baixar extensão,Reparo do painel e uma série de operações -// @name:ro Greasyfork Meșter de lipici -// @description:ro pentru Greasyfork Furnizați diverse funcții de utilizare,timp absolut,Ecran lat web,Îmbunătățiri ale paginii de script,Descărcați extensia,Reparatie panouri si o serie de operatii -// @name:ru Greasyfork Мастер по клею -// @description:ru для Greasyfork Обеспечить различные функции использования,абсолютное время,Интернет широкоэкранный,Улучшения страницы скрипта,Скачать расширение,Ремонт панели и ряд операций -// @name:sk Greasyfork Lepidlo remeselník -// @description:sk pre Greasyfork Poskytujte rôzne funkcie používania,absolútny čas,Web širokouhlý,Vylepšenia stránky skriptov,Stiahnite si rozšírenie,Oprava panelov a séria operácií -// @name:sr Greasyfork Мајстор лепка -// @description:sr за Greasyfork Обезбедите различите функције коришћења,апсолутно време,Веб видесцреен,Побољшања странице скрипте,Преузмите екстензију,Поправка панела и низ операција -// @name:sv Greasyfork Limhantverkare -// @description:sv för Greasyfork Tillhandahålla olika användningsfunktioner,absolut tid,Web widescreen,Förbättringar av skriptsidor,Ladda ner tillägg,Panelreparation och en rad operationer -// @name:th Greasyfork ช่างกาว -// @description:th สำหรับ Greasyfork จัดให้มีฟังก์ชันการใช้งานต่างๆ,เวลาที่แน่นอน,เว็บไวด์สกรีน,การปรับปรุงหน้าสคริปต์,ดาวน์โหลดส่วนขยาย,การซ่อมแซมแผงและการดำเนินการต่างๆ -// @name:tr Greasyfork Tutkal ustası -// @description:tr için Greasyfork Çeşitli kullanım fonksiyonları sağlayın,mutlak zaman,Web geniş ekranı,Komut dosyası sayfası geliştirmeleri,Uzantıyı indir,Panel onarımı ve bir dizi işlem -// @name:ug Greasyfork يېلىم ھۈنەرۋەن -// @description:ug for Greasyfork ھەر خىل ئىشلىتىش ئىقتىدارلىرى بىلەن تەمىنلەڭ,مۇتلەق ۋاقىت,تور كەڭ ئېكران,قوليازما بېتىنى ياخشىلاش,كېڭەيتىلمىنى چۈشۈرۈڭ,تاختاينى رېمونت قىلىش ۋە بىر يۈرۈش مەشغۇلاتلار -// @name:uk Greasyfork Майстер з клею -// @description:uk для Greasyfork Забезпечте різноманітні функції використання,абсолютний час,Веб широкоформатний,Покращення сторінки сценарію,Завантажте розширення,Ремонт панелей та ряд операцій -// @name:vi Greasyfork Thợ làm keo -// @description:vi vì Greasyfork Cung cấp các chức năng sử dụng khác nhau,thời gian tuyệt đối,Màn hình rộng web,Cải tiến trang tập lệnh,Tải xuống tiện ích mở rộng,Sửa chữa bảng điều khiển và một loạt các hoạt động -// @name:zh-TW Greasyfork 膠水工匠 -// @description:zh-TW 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 -// @name:zh-HK Greasyfork 膠水工匠 -// @description:zh-HK 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 -// @name:fr-CA Greasyfork Artisan de la colle -// @description:fr-CA pour Greasyfork Fournir diverses fonctions d’utilisation,temps absolu,Web grand écran,Améliorations de la page de script,Télécharger l’extension,Réparation de panneaux et série d’opérations -// @namespace https://github.com/ChinaGodMan/UserScripts -// @description Providing various features for Greasyfork, including absolute time, widescreen web pages, script page enhancements, download extensions, panel fixes, and more. -// @require https://update.greasyfork.org/scripts/498897/1404834/Toastnew.js -// @require https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js -// @require https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/js/bootstrap.bundle.min.js -// @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js -// @resource atom-one-dark.css https://cdn.jsdelivr.net/npm/highlight.js@11.7.0/styles/atom-one-dark.min.css -// @resource atom-one-light.css https://cdn.jsdelivr.net/npm/highlight.js@11.7.0/styles/atom-one-light.min.css -// @resource nnfx-dark.min.css https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/nnfx-dark.min.css -// @resource nnfx-light.min.css https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/nnfx-light.min.css -// @require https://update.greasyfork.org/scripts/447149/1065246/checkVersion.js -// @require https://cdn.jsdelivr.net/npm/jszip@3.7.1/dist/jszip.min.js -// @grant GM_getResourceText -// @grant GM_registerMenuCommand -// @grant GM_registerMenuCommand -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_addStyle -// @grant GM_setClipboard -// @grant GM_xmlhttpRequest -// @compatible chrome -// @compatible firefox -// @compatible edge -// @compatible opera -// @compatible safari -// @version 2.2.0.92 -// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHN0eWxlPSJmaWxsOiAjRDcyMzIzOyI+PHBhdGggZD0iTTIwMC4zIDI2OS45Yy0xNS43IDYuNi0zMi43IDEwLjEtNTAuMyAxMC4xLTM0LjcgMC02Ny40LTEzLjUtOTEuOS0zOC4xQzMzLjUgMjE3LjQgMjAgMTg0LjcgMjAgMTUwczEzLjUtNjcuNCAzOC4xLTkxLjlDODIuNiAzMy41IDExNS4zIDIwIDE1MCAyMHM2Ny40IDEzLjUgOTEuOSAzOC4xQzI2Ni41IDgyLjYgMjgwIDExNS4zIDI4MCAxNTBjMCAxNy42LTMuNSAzNC42LTEwIDUwLjMgNSA1IDEwIDEwLjEgMTUuMSAxNS4xIDkuNi0xOS44IDE1LTQyIDE1LTY1LjRDMzAwIDY3LjIgMjMyLjggMCAxNTAgMFMwIDY3LjIgMCAxNTBzNjcuMiAxNTAgMTUwIDE1MGMyMy40IDAgNDUuNi01LjQgNjUuNC0xNS01LjEtNS0xMC4xLTEwLjEtMTUuMS0xNS4xeiIvPjxwYXRoIGQ9Ik0yNjcuOCAzMDBjLTkuNi0xLjMtMTYuNS03LTIzLjEtMTMuNy0xNC45LTE1LjMtMzAuMS0zMC4yLTQ1LjItNDUuMy05LjMtOS4zLTEyLTIwLjEtNy41LTMyLjcuMy0uOC4zLTIuMS0uMi0yLjYtMy45LTQuMS03LjktOC0xMi0xMi4xLTYuNCA0LTEzLjEgNi43LTIwLjUgNy42LTE1LjUgMS45LTI5LTIuNC00MC4yLTEzLjItMTIuMy0xMS44LTI0LjItMjQtMzYuMi0zNi4xLTMuNS0zLjUtNC4xLTcuNC0yLjItMTEuMiAxLjktMy43IDUuOS02LjQgOS43LTUuNiAyLjUuNSA1LjEgMiA2LjkgMy44IDcuNCA3LjEgMTQuNSAxNC40IDIxLjggMjEuNi42LjYgMS4zIDEuMiAxLjcgMS42bDEzLjgtMTMuOGMtNi4yLTYuMS0xMi42LTEyLjUtMTguOS0xOC45LTEuOS0xLjktMy44LTMuNy01LjYtNS42LTMuOC00LjItMy43LTkuNy4yLTEzLjYgMy45LTMuOSA5LjUtNC4xIDEzLjYtLjEgNy41IDcuMyAxNC44IDE0LjcgMjIuMSAyMi4xLjguOCAxLjUgMS44IDIuMSAyLjRsMTQuMy0xNC4zYy0yLTEuOC00LjUtNC02LjgtNi4zLTYtNS45LTExLjktMTEuOC0xNy44LTE3LjgtMi43LTIuNy0zLjctNS45LTIuNC05LjYgMS40LTMuOSA0LjItNi4zIDguMy02LjkgMy40LS42IDYgMSA4LjQgMy4zbDE0LjcgMTQuN2M3LjQgNy40IDE0LjkgMTQuNiAyMiAyMi4yIDE0LjcgMTUuNyAxNyAzOS4xIDYuMSA1Ny43LS40LjctLjcgMS40LTEuMyAyLjQgMy45IDMuOSA3LjkgNy44IDExLjkgMTEuNi42LjUgMiAuNiAyLjguMyAxMi41LTQuNCAyMy4zLTEuNyAzMi43IDcuNiAxNS4xIDE1LjEgMzAuMSAzMC4zIDQ1LjMgNDUuMiA2LjcgNi41IDEyLjQgMTMuNCAxMy43IDIzdjUuOGMtLjIuNS0uNCAxLjEtLjUgMS42LTEuOCA5LjUtNi42IDE3LTE1LjUgMjEuMi0zLjMgMS42LTYuOSAyLjMtMTAuNCAzLjUtMS45LjItMy44LjItNS44LjJ6Ii8+PHBhdGggZD0iTTE3MCAyMTkuNmMtMi43LjctNS40IDEuMi04LjIgMS41LTMuMS40LTYuMi42LTkuMi42LTE3LjkgMC0zNC4yLTYuNi00Ny4yLTE5LjItMTAuMi05LjgtMjAuMi0yMC0zMC0yOS44bC02LjYtNi42Yy05LjUtOS41LTExLjctMjIuNy01LjgtMzQuMyA0LjktOS42IDE0LjQtMTYgMjQuNS0xNi42LjUtNi45IDMuNS0xMy42IDguOS0xOC45IDUuMi01LjEgMTEuOC04LjIgMTguNy04LjcuMi0yLjUuNy00LjkgMS42LTcuNCAzLjgtMTAuOCAxMi42LTE4LjEgMjMuOS0yMCAxLjUtLjIgMy4xLS40IDQuNi0uNCA1LjQgMCAxMy40IDEuNiAyMS4xIDkuMiA0LjcgNC43IDkuNiA5LjUgMTQuOCAxNC43IDIuMSAyLjIgNC40IDQuNCA2LjUgNi41IDUuMyA1LjIgMTAuNyAxMC42IDE1LjkgMTYuMiAxMC4yIDEwLjkgMTYuNCAyNC41IDE3LjkgMzkuMy45IDguMi4yIDE2LjQtMS44IDI0LjJoLjFjMTIuOCAwIDI0LjcgNS4xIDM0LjcgMTQuOCAzLjYtMTAuOSA1LjYtMjIuNiA1LjYtMzQuNyAwLTYwLjgtNDkuMi0xMTAtMTEwLTExMFM0MCA4OS4yIDQwIDE1MHM0OS4yIDExMCAxMTAgMTEwYzEyLjEgMCAyMy44LTIgMzQuNy01LjYtOS44LTEwLjEtMTQuOC0yMi4xLTE0LjctMzQuOHoiLz48L3N2Zz4= -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/RedFork.svg -// @author 人民的勤务员 -// @match https://greasyfork.org/* -// @match https://sleazyfork.org/* -// @license MIT -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts - -// ==/UserScript== -const translate = (function () { - const userLang = location.pathname.split('/')[1] - const strings = { - 'en': { - 'newScript': 'Post a new Script', - 'linesOfCode': 'Lines of code', - 'wordCount': 'Word count', - 'setDisplay': 'Set display options', - 'showJump': 'Show jump to code', - 'beautifyDis': 'Beautify discussion page options', - 'AutoEnableCodeEditor': 'Auto enable code editor beautification', - 'showRating': 'Show rating', - 'scriptLinNumb': 'Script code line number display', - 'ScriptListByCreat': 'Sort script list by creation date', - 'moveSidebar': 'Move sidebar favorites up', - 'fixNavbar': 'Fix navbar', - 'addNewScript': 'Add new script option to navbar', - 'exactDate': 'Exact date', - 'addDownButton': 'Add download to scripts', - 'jumpTo18': '🔞Jump to adult scripts', - 'maxView': 'Maximize website view', - 'cleanUpOld': 'Clean up comments older than days', - 'openTab': 'Open links in new Greasemonkey tab', - 'showIcon': 'Show script icon', - 'scriptHisAddInstall': 'Add install to script history', - 'Settings': 'Settings', - 'Close': 'Close', - 'inputDaysToCleanUp': 'Please enter days to clean up:', - 'download': 'Download ⇩', - 'downloading': 'Downloading...', - 'errorCode': 'Error: Download failed, server returned status code:', - 'errorNetwork': 'Download failed, network error or cross-domain issue', - 'install': 'Install', - 'downloadFailed': 'Download failed', - 'dallScripts': 'All Released Scripts', - 'JSScripts': "Number of JS Scripts:", - 'CSSScripts': "Number of CSS Scripts:", - 'DailyTotal': "Daily Installs:", - 'TotalInstalls': "Total Installs:", - 'bad': "Total Bad Reviews:", - 'good': "Total Good Reviews:", - 'ok': "Average:", - 'loading': "Fetching, please wait.", - 'viewauthor': 'Author', - 'viewdaily_installs': 'Daily installs', - 'tviewotal_installs': 'Total installs', - 'viewfan_score': 'Fan score', - 'viewversion': 'Version', - 'viewcreated_at': 'Created at', - 'viewcode_updated_at': 'Updated at', - 'viewlicense': 'License', - 'viewlocale': 'Locale', - 'copyto': 'Copy code to clipboard.', - 'htmlViewtotext': ' Toggle the TEXT view', - 'texttohtmlView': ' Toggle the HTML view', - 'Rememberme': 'Auto check Remember Me on the login page.', - 'locklang': 'Switching the website language to:', - 'locklangset': 'Lock Language after you click the language switcher', - 'openindoc': 'Add to the navigation bar to open this page', - 'thisname': ' Greasyfork Utility Toolkit', - '脚本详情': ' Details Page', - '导航栏': 'Navigation Bar', - 'website': 'Site Settings', - '复制短链接': 'Copy short link', - '主页脚本添加操作': 'Adding Operations to Homepage Script', - 'copylib': 'Copy LIB require', - 'barvertical': 'Navigation bar vertical', - 'followsystem': 'Follow System', - 'daymode': 'Day Mode', - 'nightmode': 'Night Mode', - 'cleariconcache': 'Clear Icon Cache', - 'expandmore': 'Expand "More"', - 'localbookmarks': 'Bookmarks', - 'scriptlist': 'Script List', - 'oneclickreport': 'One-Click Report', - 'hidereadcomments': 'Hide Read Comments', - 'italicizereadcomments': 'Italicize Read Comments', - 'enableautologin': 'Enable Auto Login', - 'account': 'Account', - 'password': 'Password', - 'listdisplayinstallationdownload': 'List Display Installation Download', - 'useoldversionlist': 'Use Old Version List', - 'showscriptall': 'Show Scripts in All Languages', - 'displaystatisticsonhomepage': 'Display Statistics on Homepage', - 'beautifycontrols': 'Beautify Controls', - 'applyto': 'Apply to', - 'enableenhancements': 'Enable Enhancements', - 'openinnewwindow': 'Open in New Window', - 'detailsapplytoopen': 'Details Apply to Open', - 'forumsearch': 'Forum Search', - 'webpageopen': 'Webpage Open', - 'popupprompt': 'Popup Prompt', - 'displaycitationcount': 'Display Citation Count', - 'beautifycodesnippets': 'Beautify Code Snippets', - 'beautifycodeview': 'Beautify Code View', - 'beautifycodetheme': 'Beautify Code Theme', - 'hiderrecentcomments': 'Hide Recent Comments', - 'hiderconversations': 'Hide Home Conversations', - 'hideuserprofile': 'Hide homepage personal description', - 'personalhomepage': 'Personal Homepage', - 'showscriptsinforum': 'Show Script Count in Forum', - 'downgradeto': 'Downgrade to:', - 'reinstall': 'Reinstall:', - 'upgradeto': 'Upgrade to:', - 'autologinredirect': 'Auto Redirect to Login...', - 'nostoredaccount': 'No Account Stored Locally', - 'nostoredpassword': 'No Password Stored Locally', - 'getcsrftokenfailed': 'Failed to Get CSRF Token', - 'loginfailedconsole': 'Login Failed, Check Console for Details', - 'loginsuccessredirect': 'Login Successful, Redirecting in 1 Second', - 'loginfailedelementnotfound': 'Login Failed, Element Not Found', - 'report': 'Report', - 'useroutlines': 'outlines', - 'imageproxy': 'imageproxy', - 'ScriptListdouble': 'ScriptListdouble', - 'beautifyTopNav': 'BeautifyNav', - 'fixElementoption': 'Fix Sidebar', - '1169082': 'Thank you for visiting the 勤务员’s homepage', - }, - 'zh-CN': { - 'newScript': '发布新脚本', - 'linesOfCode': '行数', - 'wordCount': '字数', - 'setDisplay': '设置显示选项', - 'showJump': '显示跳转代码', - 'beautifyDis': '讨论页面美化选项', - 'AutoEnableCodeEditor': '自动启用代码编辑框美化', - 'showRating': '显示评分', - 'scriptLinNumb': '脚本代码显示行数字数', - 'ScriptListByCreat': '脚本列表按创建日期排序', - 'moveSidebar': '侧边栏收藏上移', - 'fixNavbar': '导航栏修复', - 'addNewScript': '导航栏增加发布新脚本选项', - 'exactDate': '精确日期', - 'addDownButton': '脚本&库增加下载按钮', - 'jumpTo18': '🔞跳转成人脚本', - 'maxView': '网站最大化浏览', - 'cleanUpOld': '清理超过天数的脚本评论', - 'openTab': '油猴新窗口打开链接', - 'showIcon': '显示脚本图标', - 'scriptHisAddInstall': '脚本历史增加安装', - 'Settings': '设置', - 'Close': '关闭', - 'inputDaysToCleanUp': '请输入清理超过天数:', - 'download': '下载 ⇩', - 'downloading': '下载中...', - 'errorCode': '错误: 下载失败,服务器返回状态码:', - 'errorNetwork': '下载失败,网络错误或跨域问题', - 'install': '安装', - 'downloadFailed': '下载失败', - 'dallScripts': '所有发布脚本', - 'JSScripts': 'JS脚本数量:', - 'CSSScripts': 'CSS脚本数量:', - 'DailyTotal': '每日安装:', - 'TotalInstalls': '总安装:', - 'bad': '总差评:', - 'good': '总好评:', - 'ok': '一般:', - 'loading': '正在获取中,请耐心等待。', - 'viewauthor': '作者', - 'viewdaily_installs': '日安装量', - 'tviewotal_installs': '总安装量', - 'viewfan_score': '评分', - 'viewversion': '版本', - 'viewcreated_at': '创建于', - 'viewcode_updated_at': '更新于', - 'viewlicense': '许可证', - 'viewlocale': '适用于', - 'copyto': '复制代码', - 'htmlViewtotext': '切换文档视图', - 'texttohtmlView': '切换网页视图', - 'Rememberme': '在登录页面勾选记住我', - 'locklang': '即将切换网站语言到:', - 'locklangset': '选择语言后设置锁定', - 'openindoc': '在导航栏添加打开本界面', - 'thisname': 'Greasyfork 糊裱匠', - '脚本详情': '脚本详情', - '导航栏': '导航栏', - 'website': '网站', - '复制短链接': '复制短链接', - '主页脚本添加操作': '主页脚本添加操作', - 'copylib': '复制库声明', - 'barvertical': '导航栏对齐', - 'followsystem': '跟随系统', - 'daymode': '白天模式', - 'nightmode': '黑夜模式', - 'cleariconcache': '清空图标缓存', - 'expandmore': '展开"更多"', - 'localbookmarks': '书签', - 'scriptlist': '脚本列表', - 'oneclickreport': '一键举报', - 'hidereadcomments': '隐藏已阅读评论', - 'italicizereadcomments': '斜体已阅读评论', - 'enableautologin': '启用自动登录', - 'account': '账号', - 'password': '密码', - 'listdisplayinstallationdownload': '列表显示安装下载', - 'useoldversionlist': '使用旧版列表', - 'showscriptall': '显示所有语言脚本', - 'displaystatisticsonhomepage': '主页显示统计', - 'beautifycontrols': '美化控件', - 'applyto': '适用于', - 'enableenhancements': '启用增强', - 'openinnewwindow': '新窗口打开', - 'detailsapplytoopen': '详情适用于打开', - 'forumsearch': '论坛搜索', - 'webpageopen': '网页打开', - 'popupprompt': '弹出提示', - 'displaycitationcount': '显示引用文件数', - 'beautifycodesnippets': '美化代码片段', - 'beautifycodeview': '美化查看代码', - 'beautifycodetheme': '美化代码主题', - 'hiderrecentcomments': '隐藏近期评论', - 'hiderconversations': '隐藏主页私信', - 'hideuserprofile': '隐藏主页个人说明', - 'personalhomepage': '个人主页', - 'showscriptsinforum': '显示在论坛的脚本数量', - 'downgradeto': '降级到:', - 'reinstall': '重新安装:', - 'upgradeto': '升级到:', - 'autologinredirect': '即将自动跳转登录...', - 'nostoredaccount': '本地尚未储存账号', - 'nostoredpassword': '本地尚未储存密码', - 'getcsrftokenfailed': '获取csrf-token失败', - 'loginfailedconsole': '登录失败,请在控制台查看原因', - 'loginsuccessredirect': '登录成功,1秒后自动跳转', - 'loginfailedelementnotfound': '登录失败,无法找到元素', - 'report': '举报', - 'imageproxy': '代理用户上传图像', - 'useroutlines': '侧边导航', - 'ScriptListdouble': '双列显示', - 'beautifyTopNav': '美化导航栏', - 'fixElementoption': '侧边栏固定', - '1169082': '感谢光临勤务员的主页', - }, - 'zh-TW': { - 'newScript': '發布新腳本', - 'linesOfCode': '行數', - 'wordCount': '字數', - 'setDisplay': '設置顯示選項', - 'showJump': '顯示跳轉程式碼', - 'beautifyDis': '討論頁面美化選項', - 'AutoEnableCodeEditor': '自動啟用程式碼編輯框美化', - 'showRating': '顯示評分', - 'scriptLinNumb': '腳本程式碼顯示行數字數', - 'ScriptListByCreat': '腳本列表按創建日期排序', - 'moveSidebar': '側邊欄收藏上移', - 'fixNavbar': '導航欄修復', - 'addNewScript': '導航欄增加發布新腳本選項', - 'exactDate': '精確日期', - 'addDownButton': '腳本&庫增加下載按鈕', - 'jumpTo18': '跳轉成人腳本', - 'maxView': '網站最大化瀏覽', - 'cleanUpOld': '清理超過天數的腳步評論', - 'openTab': '油猴新視窗打開連結', - 'showIcon': '顯示腳本圖標', - 'scriptHisAddInstall': '腳本歷史增加安裝', - 'Settings': '設置', - 'Close': '關閉', - 'inputDaysToCleanUp': '請輸入清理超過天數:', - 'download': '下載 ⇩', - 'downloading': '下載中...', - 'errorCode': '錯誤: 下載失敗,伺服器返回狀態碼:', - 'errorNetwork': '下載失敗,網路錯誤或跨域問題', - 'install': '安裝', - 'downloadFailed': '下載失敗', - 'dallScripts': "所有發布腳本", - 'JSScripts': "JS腳本數量:", - 'CSSScripts': "CSS腳本數量:", - 'DailyTotal': "每日安裝:", - 'TotalInstalls': "總安裝:", - 'bad': "總差評:", - 'good': "總好評:", - 'ok': "一般:", - 'loading': "正在獲取中,請耐心等待。", - 'viewauthor': '作者', - 'viewdaily_installs': '日安裝量', - 'viewtotal_installs': '總安裝量', - 'viewfan_score': '評分', - 'viewversion': '版本', - 'viewcreated_at': '創建於', - 'viewcode_updated_at': '更新於', - 'viewlicense': '許可證', - 'viewlocale': '適用於', - 'copyto': '複製代碼', - 'htmlViewtotext': '切換文檔視圖', - 'texttohtmlView': '切換網頁視圖', - 'Rememberme': '在登錄頁面勾選記住我', - 'locklang': '即將切換網站語言到:', - 'locklangset': '選擇語言後設置鎖定', - 'openindoc': '在導航欄添加打開本界面', - 'thisname': 'Greasyfork 糊裱匠', - '脚本详情': '腳本詳情', - '导航栏': '導航欄', - 'website': '網站', - '复制短链接': '複製短鏈接', - '主页脚本添加操作': '主頁腳本添加操作', - 'copylib': '複製庫聲明', - 'barvertical': '導航欄對齊', - 'followsystem': '跟隨系統', - 'daymode': '白天模式', - 'nightmode': '黑夜模式', - 'cleariconcache': '清空圖標緩存', - 'expandmore': '展開"更多"', - 'localbookmarks': '書籤', - 'scriptlist': '腳本列表', - 'oneclickreport': '一鍵舉報', - 'hidereadcomments': '隱藏已閱讀評論', - 'italicizereadcomments': '斜體已閱讀評論', - 'enableautologin': '啟用自動登錄', - 'account': '賬號', - 'password': '密碼', - 'listdisplayinstallationdownload': '列表顯示安裝下載', - 'useoldversionlist': '使用舊版列表', - 'showscriptall': '顯示所有語言腳本', - 'displaystatisticsonhomepage': '主頁顯示統計', - 'beautifycontrols': '美化控件', - 'applyto': '適用於', - 'enableenhancements': '啟用增強', - 'openinnewwindow': '新窗口打開', - 'detailsapplytoopen': '腳本執行於打開', - 'forumsearch': '論壇搜索', - 'webpageopen': '網頁打開', - 'popupprompt': '彈出提示', - 'displaycitationcount': '顯示引用文件數', - 'beautifycodesnippets': '美化代碼片段', - 'beautifycodeview': '美化查看代碼', - 'beautifycodetheme': '美化代碼主題', - 'hiderrecentcomments': '隱藏近期評論', - 'personalhomepage': '個人主頁', - 'showscriptsinforum': '顯示在論壇的腳本數量', - 'downgradeto': '降級到:', - 'reinstall': '重新安裝:', - 'upgradeto': '升級到:', - 'autologinredirect': '即將自動跳轉登錄...', - 'nostoredaccount': '本地尚未儲存賬號', - 'nostoredpassword': '本地尚未儲存密碼', - 'getcsrftokenfailed': '獲取csrf-token失敗', - 'loginfailedconsole': '登錄失敗,請在控制台查看原因', - 'loginsuccessredirect': '登錄成功,1秒後自動跳轉', - 'loginfailedelementnotfound': '登錄失敗,無法找到元素', - 'report': '舉報', - 'imageproxy': '代理用戶上傳圖像', - 'useroutlines': '側邊導航', - 'ScriptListdouble': '雙列顯示', - 'beautifyTopNav': '美化導覽列', - 'fixElementoption': '側邊欄固定', - }, - 'ja': { - 'newScript': '新しいスクリプトを公開する', - 'linesOfCode': 'コード行数', - 'wordCount': '単語数', - 'setDisplay': '表示オプションを設定する', - 'showJump': 'ジャンプコードを表示する', - 'beautifyDis': 'ディスカッションページの美化オプション', - 'AutoEnableCodeEditor': '自動でコードエディタを有効にする', - 'showRating': '評価を表示する', - 'scriptLinNumb': 'スクリプトコードの行番号を表示する', - 'ScriptListByCreat': '作成日でスクリプトリストをソートする', - 'moveSidebar': 'サイドバーのお気に入りを移動する', - 'fixNavbar': 'ナビゲーションバーを修正する', - 'addNewScript': 'ナビゲーションバーに新しいスクリプトの投稿オプションを追加する', - 'exactDate': '正確な日付', - 'addDownButton': 'スクリプトとライブラリにダウンロードボタンを追加する', - 'jumpTo18': '成人向けスクリプトにジャンプする', - 'maxView': 'ウェブサイトの最大化表示', - 'cleanUpOld': '指定日数を超える古いスクリプトコメントをクリアする', - 'openTab': '新しいタブでリンクを開く', - 'showIcon': 'スクリプトアイコンを表示する', - 'scriptHisAddInstall': 'スクリプト履歴にインストールを追加する', - 'Settings': '設定', - 'Close': '閉じる', - 'inputDaysToCleanUp': 'クリーンアップする日数を入力してください:', - 'download': 'ダウンロード ⇩', - 'downloading': 'ダウンロード中...', - 'errorCode': 'エラー:ダウンロードに失敗しました、サーバーからのステータスコード:', - 'errorNetwork': 'ダウンロードに失敗しました、ネットワークエラーまたはクロスドメインの問題が発生しました', - 'install': 'インストール', - 'downloadFailed': 'ダウンロードに失敗しました', - 'dallScripts': "すべてのリリースされたスクリプト", - 'JSScripts': "JSスクリプトの数:", - 'CSSScripts': "CSSスクリプトの数:", - 'DailyTotal': "毎日のインストール:", - 'TotalInstalls': "総インストール数:", - 'bad': "総悪いレビュー:", - 'good': "総良いレビュー:", - 'ok': "平均:", - 'loading': "取得中、お待ちください。", - "viewauthor": "作者", - "viewdaily_installs": "日ごとのインストール数", - "tviewotal_installs": "総インストール数", - "viewfan_score": "評価", - "viewversion": "バージョン", - "viewcreated_at": "作成日", - "viewcode_updated_at": "更新日", - "viewlicense": "ライセンス", - "viewlocale": "対応バージョン", - "copyto": "コードをコピー", - "htmlViewtotext": "ドキュメントビューを切り替え", - "texttohtmlView": "ウェブページビューを切り替え", - "Rememberme": "ログインページで「この情報を記憶する」を選択", - "locklang": "ウェブサイトの言語を切り替えます:", - "locklangset": "言語を選択後に設定をロック", - "openindoc": "ナビゲーションバーにこのページを追加", - "thisname": "Greasyfork 糊裱匠", - "脚本详情": "スクリプト詳細", - "导航栏": "ナビゲーションバー", - "website": "ウェブサイト", - "复制短链接": "短縮リンクをコピー", - "主页脚本添加操作": "ホームページのスクリプト追加操作", - "copylib": "ライブラリ宣言をコピー", - "barvertical": "ナビゲーションバーの配置", - "followsystem": "システムに従う", - "daymode": "デイモード", - "nightmode": "ナイトモード", - "cleariconcache": "アイコンキャッシュをクリア", - "expandmore": "「もっと見る」を展開", - "localbookmarks": "ブックマーク", - "scriptlist": "スクリプト一覧", - "oneclickreport": "ワンクリックで報告", - "hidereadcomments": "既読コメントを非表示", - "italicizereadcomments": "既読コメントを斜体にする", - "enableautologin": "自動ログインを有効にする", - "account": "アカウント", - "password": "パスワード", - "listdisplayinstallationdownload": "インストールとダウンロードを一覧表示", - "useoldversionlist": "旧バージョンのリストを使用", - "showscriptall": "すべての言語のスクリプトを表示", - "displaystatisticsonhomepage": "ホームページに統計を表示", - "beautifycontrols": "コントロールを美化", - "applyto": "対応バージョン", - "enableenhancements": "機能拡張を有効にする", - "openinnewwindow": "新しいウィンドウで開く", - "detailsapplytoopen": "詳細情報に適用して開く", - "forumsearch": "フォーラム検索", - "webpageopen": "ウェブページを開く", - "popupprompt": "ポップアップでの通知", - "displaycitationcount": "引用ファイル数を表示", - "beautifycodesnippets": "コードスニペットを美化", - "beautifycodeview": "コードの表示を美化", - "beautifycodetheme": "コードのテーマを美化", - "hiderrecentcomments": "最近のコメントを非表示", - "personalhomepage": "個人のホームページ", - "showscriptsinforum": "フォーラムでのスクリプト数を表示", - "downgradeto": "バージョンをダウングレードする:", - "reinstall": "再インストール", - "upgradeto": "バージョンをアップグレードする:", - "autologinredirect": "自動的にログインページにリダイレクトします...", - "nostoredaccount": "ローカルに保存されたアカウントがありません", - "nostoredpassword": "ローカルに保存されたパスワードがありません", - "getcsrftokenfailed": "CSRFトークンの取得に失敗しました", - "loginfailedconsole": "ログインに失敗しました。コンソールで原因を確認してください", - "loginsuccessredirect": "ログイン成功、1秒後に自動的にリダイレクトします", - "loginfailedelementnotfound": "ログインに失敗しました。要素が見つかりません", - "report": "報告", - "imageproxy": "ユーザーアップロード画像のプロキシ", - "useroutlines": "サイドナビゲーション", - }, - 'ko': { - 'newScript': '새 스크립트 게시', - 'linesOfCode': '코드 라인 수', - 'wordCount': '단어 수', - 'setDisplay': '표시 옵션 설정', - 'showJump': '점프 코드 표시', - 'beautifyDis': '토론 페이지 미화 옵션', - 'AutoEnableCodeEditor': '자동 코드 편집기 활성화', - 'showRating': '평점 표시', - 'scriptLinNumb': '스크립트 코드 줄 번호 표시', - 'ScriptListByCreat': '작성 날짜로 스크립트 목록 정렬', - 'moveSidebar': '사이드바 즐겨찾기 이동', - 'fixNavbar': '네비게이션 바 수정', - 'addNewScript': '네비게이션 바에 새 스크립트 게시 옵션 추가', - 'exactDate': '정확한 날짜', - 'addDownButton': '스크립트 및 라이브러리에 다운로드 버튼 추가', - 'jumpTo18': '성인 스크립트로 이동', - 'maxView': '웹사이트 최대화 보기', - 'cleanUpOld': '지정한 일 수 이상으로 오래된 스크립트 댓글 정리', - 'openTab': '새 탭에서 링크 열기', - 'showIcon': '스크립트 아이콘 표시', - 'scriptHisAddInstall': '스크립트 이력에 설치 추가', - 'Settings': '설정', - 'Close': '닫기', - 'inputDaysToCleanUp': '삭제할 일 수를 입력하십시오:', - 'download': '다운로드 ⇩', - 'downloading': '다운로드 중...', - 'errorCode': '오류: 다운로드 실패, 서버가 반환한 상태 코드:', - 'errorNetwork': '다운로드 실패, 네트워크 오류 또는 크로스도메인 문제', - 'install': '설치', - 'downloadFailed': '다운로드 실패', - 'dallScripts': "모든 릴리스된 스크립트", - 'JSScripts': "JS 스크립트 수:", - 'CSSScripts': "CSS 스크립트 수:", - 'DailyTotal': "일일 설치:", - 'TotalInstalls': "총 설치:", - 'bad': "총 나쁜 리뷰:", - 'good': "총 좋은 리뷰:", - 'ok': "보통:", - 'loading': "가져오는 중, 잠시 기다려 주세요." - }, - 'ru': { - 'newScript': 'Опубликовать новый скрипт', - 'linesOfCode': 'Количество строк кода', - 'wordCount': 'Количество слов', - 'setDisplay': 'Настройка параметров отображения', - 'showJump': 'Показать переход к коду', - 'beautifyDis': 'Опции улучшения страницы обсуждения', - 'AutoEnableCodeEditor': 'Автоматически включать редактор кода', - 'showRating': 'Показать рейтинг', - 'scriptLinNumb': 'Отображать номера строк кода скрипта', - 'ScriptListByCreat': 'Сортировать список скриптов по дате создания', - 'moveSidebar': 'Переместить боковую панель вверх', - 'fixNavbar': 'Исправить навигационную панель', - 'addNewScript': 'Добавить опцию размещения нового скрипта в навигационную панель', - 'exactDate': 'Точная дата', - 'addDownButton': 'Добавить кнопку загрузки к скриптам и библиотекам', - 'jumpTo18': 'Перейти к взрослым скриптам', - 'maxView': 'Максимизировать просмотр веб-сайта', - 'cleanUpOld': 'Очистить комментарии к скриптам старше указанного количества дней', - 'openTab': 'Открыть ссылку в новой вкладке', - 'showIcon': 'Показать иконку скрипта', - 'scriptHisAddInstall': 'Добавить установку в историю скриптов', - 'Settings': 'Настройки', - 'Close': 'Закрыть', - 'inputDaysToCleanUp': 'Введите количество дней для очистки:', - 'download': 'Скачать ⇩', - 'downloading': 'Загрузка...', - 'errorCode': 'Ошибка: сбой загрузки, сервер вернул код состояния:', - 'errorNetwork': 'Сбой загрузки, сетевая ошибка или проблема с кросс-доменом', - 'install': 'Установить', - 'downloadFailed': 'Сбой загрузки', - 'dallScripts': "Все выпущенные скрипты", - 'JSScripts': "Количество JS скриптов:", - 'CSSScripts': "Количество CSS скриптов:", - 'DailyTotal': "Ежедневные установки:", - 'TotalInstalls': "Всего установок:", - 'bad': "Всего плохих отзывов:", - 'good': "Всего хороших отзывов:", - 'ok': "Средний:", - 'loading': "Получение данных, пожалуйста, подождите." - }, - 'de': { - 'newScript': 'Neues Skript veröffentlichen', - 'linesOfCode': 'Zeilenanzahl', - 'wordCount': 'Wortanzahl', - 'setDisplay': 'Anzeigeoptionen einstellen', - 'showJump': 'Sprung zum Code anzeigen', - 'beautifyDis': 'Optionen zur Verschönerung der Diskussionsseite', - 'AutoEnableCodeEditor': 'Automatische Aktivierung des Code-Editors', - 'showRating': 'Bewertung anzeigen', - 'scriptLinNumb': 'Anzeige der Zeilennummer im Skriptcode', - 'ScriptListByCreat': 'Skriptliste nach Erstellungsdatum sortieren', - 'moveSidebar': 'Favoriten in der Seitenleiste nach oben verschieben', - 'fixNavbar': 'Navigationsleiste reparieren', - 'addNewScript': 'Option zum Veröffentlichen neuer Skripte zur Navigationsleiste hinzufügen', - 'exactDate': 'Exaktes Datum', - 'addDownButton': 'Download-Schaltfläche zu Skripten und Bibliotheken hinzufügen', - 'jumpTo18': 'Zu Erwachsenenskripten springen', - 'maxView': 'Website maximieren', - 'cleanUpOld': 'Kommentare zu Skripten, die älter als eine bestimmte Anzahl von Tagen sind, aufräumen', - 'openTab': 'Links in neuem Tab öffnen', - 'showIcon': 'Skriptsymbol anzeigen', - 'scriptHisAddInstall': 'Installation zur Skript-Historie hinzufügen', - 'Settings': 'Einstellungen', - 'Close': 'Schließen', - 'inputDaysToCleanUp': 'Bitte geben Sie die Anzahl der Tage zum Aufräumen ein:', - 'download': 'Herunterladen ⇩', - 'downloading': 'Herunterladen...', - 'errorCode': 'Fehler: Download fehlgeschlagen, Server hat Statuscode zurückgegeben:', - 'errorNetwork': 'Download fehlgeschlagen, Netzwerkfehler oder Cross-Domain-Probleme', - 'install': 'Installieren', - 'downloadFailed': 'Download fehlgeschlagen', - 'dallScripts': "Alle veröffentlichten Skripte", - 'JSScripts': "Anzahl der JS-Skripte:", - 'CSSScripts': "Anzahl der CSS-Skripte:", - 'DailyTotal': "Tägliche Installationen:", - 'TotalInstalls': "Gesamtinstallationen:", - 'bad': "Gesamtschlechte Bewertungen:", - 'good': "Gesamtgute Bewertungen:", - 'ok': "Durchschnitt:", - 'loading': "Abrufen, bitte warten." - }, - 'fr': { - 'newScript': 'Publier un nouveau script', - 'linesOfCode': 'Nombre de lignes de code', - 'wordCount': 'Nombre de mots', - 'setDisplay': 'Configurer les options d\'affichage', - 'showJump': 'Afficher le saut de code', - 'beautifyDis': 'Options d\'embellissement de la page de discussion', - 'AutoEnableCodeEditor': 'Activer automatiquement l\'éditeur de code', - 'showRating': 'Afficher la note', - 'scriptLinNumb': 'Afficher le numéro de ligne du code du script', - 'ScriptListByCreat': 'Trier la liste des scripts par date de création', - 'moveSidebar': 'Déplacer les favoris de la barre latérale vers le haut', - 'fixNavbar': 'Réparer la barre de navigation', - 'addNewScript': 'Ajouter une option de publication de nouveau script dans la barre de navigation', - 'exactDate': 'Date exacte', - 'addDownButton': 'Ajouter un bouton de téléchargement aux scripts et aux bibliothèques', - 'jumpTo18': 'Aller aux scripts pour adultes', - 'maxView': 'Maximiser la vue du site Web', - 'cleanUpOld': 'Nettoyer les commentaires de scripts plus anciens que le nombre de jours spécifié', - 'openTab': 'Ouvrir le lien dans un nouvel onglet', - 'showIcon': 'Afficher l\'icône du script', - 'scriptHisAddInstall': 'Ajouter une installation à l\'historique des scripts', - 'Settings': 'Paramètres', - 'Close': 'Fermer', - 'inputDaysToCleanUp': 'Veuillez entrer le nombre de jours pour nettoyer :', - 'download': 'Télécharger ⇩', - 'downloading': 'Téléchargement en cours...', - 'errorCode': 'Erreur : échec du téléchargement, le serveur a renvoyé le code d\'état :', - 'errorNetwork': 'Échec du téléchargement, erreur réseau ou problème de domaine croisé', - 'install': 'Installer', - 'downloadFailed': 'Échec du téléchargement', - 'dallScripts': "Tous les scripts publiés", - 'JSScripts': "Nombre de scripts JS:", - 'CSSScripts': "Nombre de scripts CSS:", - 'DailyTotal': "Installations quotidiennes:", - 'TotalInstalls': "Total des installations:", - 'bad': "Total des mauvais avis:", - 'good': "Total des bons avis:", - 'ok': "Moyenne:", - 'loading': "Récupération en cours, veuillez patienter." - }, - 'it': { - 'newScript': 'Pubblica nuovo script', - 'linesOfCode': 'Numero di righe di codice', - 'wordCount': 'Numero di parole', - 'setDisplay': 'Imposta opzioni di visualizzazione', - 'showJump': 'Mostra salto al codice', - 'beautifyDis': 'Opzioni di abbellimento della pagina di discussione', - 'AutoEnableCodeEditor': 'Abilita automaticamente l\'editor di codice', - 'showRating': 'Mostra valutazione', - 'scriptLinNumb': 'Mostra numero di righe nel codice dello script', - 'ScriptListByCreat': 'Ordina lista script per data di creazione', - 'moveSidebar': 'Sposta preferiti nella barra laterale in alto', - 'fixNavbar': 'Ripara la barra di navigazione', - 'addNewScript': 'Aggiungi opzione per pubblicare nuovo script nella barra di navigazione', - 'exactDate': 'Data esatta', - 'addDownButton': 'Aggiungi pulsante download a script e librerie', - 'jumpTo18': 'Vai a script per adulti', - 'maxView': 'Massimizza visualizzazione del sito web', - 'cleanUpOld': 'Pulisci commenti script più vecchi di un certo numero di giorni', - 'openTab': 'Apri link in una nuova scheda', - 'showIcon': 'Mostra icona dello script', - 'scriptHisAddInstall': 'Aggiungi installazione alla cronologia degli script', - 'Settings': 'Impostazioni', - 'Close': 'Chiudi', - 'inputDaysToCleanUp': 'Inserisci i giorni per la pulizia:', - 'download': 'Scarica ⇩', - 'downloading': 'Scaricamento...', - 'errorCode': 'Errore: download fallito, il server ha restituito il codice di stato:', - 'errorNetwork': 'Download fallito, errore di rete o problema di dominio incrociato', - 'install': 'Installa', - 'downloadFailed': 'Download fallito', - 'dallScripts': "Tutti gli script rilasciati", - 'JSScripts': "Numero di script JS:", - 'CSSScripts': "Numero di script CSS:", - 'DailyTotal': "Installazioni giornaliere:", - 'TotalInstalls': "Installazioni totali:", - 'bad': "Totale recensioni negative:", - 'good': "Totale recensioni positive:", - 'ok': "Media:", - 'loading': "Recupero in corso, attendere prego." - }, - 'ar': { - 'newScript': 'نشر سكريبت جديد', - 'linesOfCode': 'عدد الأسطر في الكود', - 'wordCount': 'عدد الكلمات', - 'setDisplay': 'تعيين خيارات العرض', - 'showJump': 'إظهار الانتقال إلى الكود', - 'beautifyDis': 'خيارات تجميل صفحة المناقشة', - 'AutoEnableCodeEditor': 'تمكين محرر الكود تلقائيًا', - 'showRating': 'إظهار التقييم', - 'scriptLinNumb': 'عرض أرقام الأسطر في كود السكريبت', - 'ScriptListByCreat': 'فرز قائمة السكريبتات حسب تاريخ الإنشاء', - 'moveSidebar': 'نقل الاختيارات في الشريط الجانبي لأعلى', - 'fixNavbar': 'إصلاح شريط التنقل', - 'addNewScript': 'إضافة خيار نشر سكريبت جديد إلى شريط التنقل', - 'exactDate': 'تاريخ دقيق', - 'addDownButton': 'إضافة زر التنزيل للسكريبتات والمكتبات', - 'jumpTo18': 'الانتقال إلى السكريبتات الخاصة بالبالغين', - 'maxView': 'تكبير عرض الموقع الإلكتروني', - 'cleanUpOld': 'تنظيف تعليقات السكريبتات القديمة بعد عدد معين من الأيام', - 'openTab': 'فتح الروابط في علامة تبويب جديدة', - 'showIcon': 'إظهار رمز السكريبت', - 'scriptHisAddInstall': 'إضافة التثبيت إلى سجل السكريبتات', - 'Settings': 'الإعدادات', - 'Close': 'إغلاق', - 'inputDaysToCleanUp': 'يرجى إدخال عدد الأيام لتنظيفها:', - 'download': 'تحميل ⇩', - 'downloading': 'جار التحميل...', - 'errorCode': 'خطأ: فشل التحميل، استجابة خادم برمز الحالة:', - 'errorNetwork': 'فشل التحميل، خطأ في الشبكة أو مشكلة في النطاق العابر', - 'install': 'تثبيت', - 'downloadFailed': 'فشل التحميل', - 'dallScripts': "جميع البرامج النصية المنشورة", - 'JSScripts': "عدد برامج JS النصية:", - 'CSSScripts': "عدد برامج CSS النصية:", - 'DailyTotal': "التثبيتات اليومية:", - 'TotalInstalls': "إجمالي التثبيتات:", - 'bad': "إجمالي التقييمات السلبية:", - 'good': "إجمالي التقييمات الإيجابية:", - 'ok': "متوسط:", - 'loading': "جارٍ التحميل، يرجى الانتظار." - }, - 'he': { - 'newScript': 'פרסם סקריפט חדש', - 'linesOfCode': 'מספר שורות בקוד', - 'wordCount': 'מספר מילים', - 'setDisplay': 'הגדר אפשרויות תצוגה', - 'showJump': 'הצג קפיצה לקוד', - 'beautifyDis': 'אפשרויות ייפוי דף הדיון', - 'AutoEnableCodeEditor': 'הפעל עורך קוד באופן אוטומטי', - 'showRating': 'הצג דירוג', - 'scriptLinNumb': 'הצג מספרי שורות בקוד הסקריפט', - 'ScriptListByCreat': 'מיין רשימת סקריפטים לפי תאריך יצירה', - 'moveSidebar': 'הזז את המועדפים בסרגל הצד', - 'fixNavbar': 'תקן את תפריט הניווט', - 'addNewScript': 'הוסף אפשרות לפרסום סקריפט חדש לתפריט הניווט', - 'exactDate': 'תאריך מדויק', - 'addDownButton': 'הוסף כפתור הורדה לסקריפטים וספריות', - 'jumpTo18': 'קפיצה לסקריפטים למבוגרים', - 'maxView': 'הצגה מקסימלית של האתר', - 'cleanUpOld': 'ניקוי תגובות סקריפטים ישנות מעל מספר ימים מסוים', - 'openTab': 'פתח קישור בכרטיסייה חדשה', - 'showIcon': 'הצג סמל סקריפט', - 'scriptHisAddInstall': 'הוסף התקנה להיסטוריית הסקריפטים', - 'Settings': 'הגדרות', - 'Close': 'סגור', - 'inputDaysToCleanUp': 'אנא הזן את מספר הימים לניקוי:', - 'download': 'הורדה ⇩', - 'downloading': 'מוריד...', - 'errorCode': 'שגיאה: הורדה נכשלה, השרת החזיר קוד מצב:', - 'errorNetwork': 'הורדה נכשלה, בעיה ברשת או בקריאה חוצה דומיין', - 'install': 'התקן', - 'downloadFailed': 'הורדה נכשלה', - 'dallScripts': "כל הסקריפטים שפורסמו", - 'JSScripts': "מספר סקריפטים JS:", - 'CSSScripts': "מספר סקריפטים CSS:", - 'DailyTotal': "התקנות יומיות:", - 'TotalInstalls': "סך ההתקנות:", - 'bad': "סה\"כ ביקורות רעות:", - 'good': "סה\"כ ביקורות טובות:", - 'ok': "ממוצע:", - 'loading': "טוען, נא להמתין." - }, - 'vi': { - 'newScript': 'Đăng Kịch bản mới', - 'linesOfCode': 'Số dòng mã', - 'wordCount': 'Số từ', - 'setDisplay': 'Tùy chọn hiển thị', - 'showJump': 'Hiển thị nút nhảy đến mã', - 'beautifyDis': 'Tùy chọn làm đẹp trang thảo luận', - 'AutoEnableCodeEditor': 'Tự động bật làm đẹp trình soạn thảo mã', - 'showRating': 'Hiển thị xếp hạng', - 'scriptLinNumb': 'Hiển thị số dòng mã kịch bản', - 'ScriptListByCreat': 'Sắp xếp danh sách kịch bản theo ngày tạo', - 'moveSidebar': 'Di chuyển mục yêu thích trên thanh bên lên trên', - 'fixNavbar': 'Sửa thanh điều hướng', - 'addNewScript': 'Thêm tùy chọn kịch bản mới vào thanh điều hướng', - 'exactDate': 'Ngày chính xác', - 'addDownButton': 'Thêm nút tải xuống vào kịch bản', - 'jumpTo18': '🔞Nhảy đến kịch bản người lớn', - 'maxView': 'Tối đa hóa chế độ xem trang web', - 'cleanUpOld': 'Dọn dẹp bình luận cũ hơn số ngày', - 'openTab': 'Mở liên kết trong tab Greasemonkey mới', - 'showIcon': 'Hiển thị biểu tượng kịch bản', - 'scriptHisAddInstall': 'Thêm cài đặt vào lịch sử kịch bản', - 'Settings': 'Cài đặt', - 'Close': 'Đóng', - 'inputDaysToCleanUp': 'Vui lòng nhập số ngày để dọn dẹp:', - 'download': 'Tải xuống ⇩', - 'downloading': 'Đang tải xuống...', - 'errorCode': 'Lỗi: Tải xuống không thành công, máy chủ trả về mã trạng thái:', - 'errorNetwork': 'Tải xuống không thành công, lỗi mạng hoặc sự cố liên quan đến miền chéo', - 'install': 'Cài đặt', - 'downloadFailed': 'Tải xuống không thành công', - 'dallScripts': 'Tất cả Kịch bản đã Phát hành', - 'JSScripts': "Số lượng Kịch bản JS:", - 'CSSScripts': "Số lượng Kịch bản CSS:", - 'DailyTotal': "Lượt Cài đặt Hàng ngày:", - 'TotalInstalls': "Tổng số Lượt Cài đặt:", - 'bad': "Tổng số Đánh giá Xấu:", - 'good': "Tổng số Đánh giá Tốt:", - 'ok': "Trung bình:", - 'loading': "Đang tải, vui lòng đợi.", - 'viewauthor': 'Tác giả', - 'viewdaily_installs': 'Lượt cài đặt hàng ngày', - 'tviewotal_installs': 'Tổng lượt cài đặt', - 'viewfan_score': 'Điểm người hâm mộ', - 'viewversion': 'Phiên bản', - 'viewcreated_at': 'Được tạo vào', - 'viewcode_updated_at': 'Cập nhật lúc', - 'viewlicense': 'Giấy phép', - 'viewlocale': 'Khu vực', - 'copyto': 'Sao chép mã vào khay nhớ tạm.', - 'htmlViewtotext': ' Chuyển sang chế độ xem TEXT', - 'texttohtmlView': ' Chuyển sang chế độ xem HTML', - 'Rememberme': 'Tự động chọn Ghi nhớ tôi trên trang đăng nhập.', - 'locklang': 'Chuyển ngôn ngữ trang web sang:', - 'locklangset': 'Khóa Ngôn ngữ sau khi bạn nhấp vào nút chuyển đổi ngôn ngữ', - 'openindoc': 'Thêm vào thanh điều hướng để mở trang này', - 'thisname': ' Bộ Công cụ Tiện ích Greasyfork', - '脚本详情': ' Trang Chi tiết', - '导航栏': 'Thanh Điều hướng', - 'website': 'Cài đặt Trang web', - '复制短链接': 'Sao chép liên kết ngắn', - '主页脚本添加操作': 'Thêm Thao tác vào Kịch bản Trang chủ', - 'copylib': 'Sao chép LIB yêu cầu', - 'barvertical': 'Thanh điều hướng dọc', - 'followsystem': 'Theo Hệ thống', - 'daymode': 'Chế độ Ban ngày', - 'nightmode': 'Chế độ Ban đêm', - 'cleariconcache': 'Xóa Bộ nhớ đệm Biểu tượng', - 'expandmore': 'Mở rộng "Thêm"', - 'localbookmarks': 'Dấu trang', - 'scriptlist': 'Danh sách Kịch bản', - 'oneclickreport': 'Báo cáo Một lần Nhấp', - 'hidereadcomments': 'Ẩn Bình luận đã Đọc', - 'italicizereadcomments': 'In nghiêng Bình luận đã Đọc', - 'enableautologin': 'Bật Tự động Đăng nhập', - 'account': 'Tài khoản', - 'password': 'Mật khẩu', - 'listdisplayinstallationdownload': 'Danh sách Hiển thị Cài đặt Tải xuống', - 'useoldversionlist': 'Sử dụng Danh sách Phiên bản Cũ', - 'showscriptall': 'Hiển thị Kịch bản bằng Tất cả Ngôn ngữ', - 'displaystatisticsonhomepage': 'Hiển thị Thống kê trên Trang chủ', - 'beautifycontrols': 'Làm đẹp Điều khiển', - 'applyto': 'Áp dụng cho', - 'enableenhancements': 'Bật Nâng cao', - 'openinnewwindow': 'Mở trong Cửa sổ Mới', - 'detailsapplytoopen': 'Chi tiết Áp dụng để Mở', - 'forumsearch': 'Tìm kiếm Diễn đàn', - 'webpageopen': 'Mở Trang web', - 'popupprompt': 'Nhắc nhở Bật lên', - 'displaycitationcount': 'Hiển thị Số lượng Trích dẫn', - 'beautifycodesnippets': 'Làm đẹp Đoạn mã', - 'beautifycodeview': 'Làm đẹp Chế độ xem Mã', - 'beautifycodetheme': 'Làm đẹp Chủ đề Mã', - 'hiderrecentcomments': 'Ẩn Bình luận Gần đây', - 'personalhomepage': 'Trang chủ Cá nhân', - 'showscriptsinforum': 'Hiển thị Số lượng Kịch bản trong Diễn đàn', - 'downgradeto': 'Hạ cấp xuống:', - 'reinstall': 'Cài đặt lại:', - 'upgradeto': 'Nâng cấp lên:', - 'autologinredirect': 'Tự động Chuyển hướng đến Đăng nhập...', - 'nostoredaccount': 'Không có Tài khoản nào được Lưu trữ Cục bộ', - 'nostoredpassword': 'Không có Mật khẩu nào được Lưu trữ Cục bộ', - 'getcsrftokenfailed': 'Không thể Nhận Mã thông báo CSRF', - 'loginfailedconsole': 'Đăng nhập Không thành công, Kiểm tra Bảng điều khiển để biết Chi tiết', - 'loginsuccessredirect': 'Đăng nhập Thành công, Chuyển hướng sau 1 Giây', - 'loginfailedelementnotfound': 'Đăng nhập Không thành công, Không tìm thấy Phần tử', - 'report': 'Báo cáo', - 'useroutlines': 'dàn bài', - 'imageproxy': 'proxy hình ảnh', - 'ScriptListdouble': 'Danh sách Kịch bản kép', - 'beautifyTopNav': 'Làm đẹp Thanh điều hướng', - 'fixElementoption': 'Sửa Thanh bên', - '1169082': 'Cảm ơn bạn đã ghé thăm trang chủ của 勤务员', - } - } - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } - // return id => (strings[userLang] || strings.en)[id] || strings.en[id]; -}()); -(function () { - 'use strict' - //FIXME - 基本配置 - var DEBUG = false // 控制是否启用调试模式 - function DEBUG11() { - const profileLinkElement = document.querySelector("#nav-user-info > span.user-profile-link > a") - if (profileLinkElement) { - const href = profileLinkElement.getAttribute('href') - if (href && href.includes('1169082')) { - DEBUG = true - } - } - } - DEBUG11() - const settings = { - showRating: { default: false, comment: '默认展示评分' }, - showSourceCode: { default: false, comment: '默认展示源码按钮' }, - modifyRadioLabels: { default: false, comment: '评论区梅花' }, - autocheck: { default: false, comment: '自动点击美化编辑器' }, - showtotal: { default: false, comment: '显示代码字数' }, - scriptwithdata: { default: true, comment: '导航栏点击跳转时间创建' }, - scriptset: { default: true, comment: '侧边栏脚本上移动' }, - HeaderStyleFix: { default: true, comment: '修复导航栏' }, - AbsoluteTime: { default: false, comment: '精确时间' }, - addbutton: { default: true, comment: '添加下载按钮' }, - jumpto: { default: false, comment: '跳转18' }, - greasymaxWidth: { default: false, comment: '最大窗口' }, - clearhomepage: { default: true, comment: '清理主页过期评论' }, - clearhomepagedays: { default: false, comment: '清理主页过期评论的天数' }, - newtabtoinstall: { default: false, comment: '油猴新窗口打开' }, - viewicon: { default: true, comment: '查看脚本的图标' }, - installforversions: { default: true, comment: '下载历史版本' }, - setcopylink: { default: true, comment: '复制代码' }, - sethtmlview: { default: '', comment: '脚本简介转文档查看' }, - Postlink: { default: true, comment: '发布新脚false本' }, - remme: { default: true, comment: '在登录页自动点击记住我' }, - setlocklang: { default: false, comment: '锁点语言' }, - setopenindoc: { default: true, comment: '在导航栏添加打开设置界面' }, - buttonopen: { default: true, comment: '' }, - copyshortlink: { default: true, comment: '复制短链接' }, - cleanscriptname: { default: true, comment: '清理脚本名称' }, - addedittohomepage: { default: true, comment: '在主页脚本增加编辑删除安装' }, - searchingreasyfork: { default: '1', comment: '适用于默认打开网址' }, - usersearchingreasyfork: { default: true, comment: '启用适用于增强' }, - navigateTotab: { default: true, comment: '适用于新窗口打开' }, - showlinktotal: { default: true, comment: '适用于网站数量' }, - userhandleLocaleFilter: { default: true, comment: '语言移除功能' }, - userapplyCustomStyles: { default: false, comment: '旧版本风格' }, - usercssto: { default: true, comment: '美化页面按钮等信息' }, - useHighlighting: { default: true, comment: '高亮网页文本代码' }, - useHighlighttocode: { default: true, comment: '高亮查看代码' }, - showinstallbutton: { default: true, comment: '脚本列表显示安装和下载按钮' }, - addCopyButtonBeforelibScript: { default: true, comment: '库声明前增加复制' }, - wightnav: { default: true, comment: '对齐导航栏' }, - lockmode: { default: '0', comment: '高亮美化代码和代码片段锁定黑夜模式' }, - hideuserdiscussions: { default: false, comment: '隐藏主页评论' }, - hideuserconversations: { default: false, comment: '隐藏主页私信' }, - hideuserprofile: { default: false, comment: '隐藏用户主页简介' }, - showresource: { default: false, comment: '代码页面显示引用的文件数量' }, - usereport: { default: true, comment: '讨论页面增加举报' }, - userlocalfav: { default: true, comment: '本地收藏' }, - favs: { default: '[]', comment: '本地收藏信息', parse: JSON.parse }, - hidediscussionread: { default: false, comment: '隐藏已经阅读的评论' }, - italicdiscussionread: { default: true, comment: '斜体已经阅读的评论' }, - shouwtotalonuserpage: { default: true, comment: '主页显示数量' }, - userpassword: { default: '', comment: '账号密码' }, - useremail: { default: '', comment: '账号邮箱' }, - userautologin: { default: false, comment: '使用自动登录' }, - Expandsubmenu: { default: false, comment: '展开导航栏上的"更多"' }, - useroutline: { default: true, comment: '使用侧边导航栏' }, - userimageproxy: { default: false, comment: '使用图像代理' }, - scriptlistdouble: { default: true, comment: '使用列表双列' }, - beautifyTopNav: { default: true, comment: '美化导航栏 只在pc生效' }, - fixElementoption: { default: true, comment: '固定油猴侧边操作栏目只在PC生效' } - } - // 动态创建变量 - Object.keys(settings).forEach(key => { - const setting = settings[key] - window[key] = setting.parse ? setting.parse(GM_getValue(key, setting.default)) : GM_getValue(key, setting.default) - logMessage(`${key}: ${window[key]} // ${setting.comment}`, ` `, true) - }) - if (window.location.href.includes('users/1169082')) { - const targetElement = document.querySelector("#about-user > h2") - if (targetElement) { - targetElement.innerHTML += ' ' + translate('1169082') + '' - } - } - //STUB - 发布新脚本链接放在导航栏 - if (Postlink) { - const country_code = getCountryCode() - setTimeout(function () { - addNavLink(translate('newScript'), "/" + country_code + '/script_versions/new', false) - }, 100) - } - if (remme && document.querySelector("#new_user > div:nth-child(4) > label")) { - //STUB - 登录页面自动点击记住我 - function clickLabelsDirectly() { - // 直接选中并点击第一个元素 - document.querySelector("#new_user > div:nth-child(4) > label").click() - // 直接选中并点击第二个元素 - document.querySelector("body > div.width-constraint > section > div > div > form > div.remember-me > label").click() - } - if (window.location.href.includes("users/sign_in")) { - clickLabelsDirectly() - } - } - // 调用函数 - //STUB - 增加图标 - if (viewicon) { - if (/^https:\/\/(greasy|sleazy)fork\.org\/([^/]+\/)?scripts\/([^/]+|$)/.test(window.location.href)) { - // const installArea = document.querySelector('div#install-area') - const installArea = document.querySelector('#script-info header h2') - if (installArea) { - addIcon(installArea) - } - } - } - //STUB - 油猴新窗口打开 - if (newtabtoinstall) { - // installBtn.target = '_blank'; - document.querySelectorAll('a').forEach(item => { - //不给空href和greasyfork的page页加_blank - if (!/javascript/.test(item.href) && !/page/.test(item.href)) { - item.setAttribute('target', '_blank') - } - }) - } - //STUB - 作者界面清理超过30天的评论 - if (clearhomepage) { - if (window.location.href.includes("users")) { - let items = document.querySelectorAll("#user-discussions-on-scripts-written > section > div") - let now = new Date() - let num = 0 - for (let item of items) { - let item_time = item.querySelector('relative-time').date - if (now - new Date(item_time) > 24 * 3600 * 1000 * clearhomepagedays) { - item.style.display = "none" - num += 1 - } - } - } - } - //STUB - 修复导航栏不在中间 - if (wightnav) { - var e = document.getElementsByClassName("width-constraint") - e[0].style.maxWidth = "95%" //header - } - //STUB - 最大化使用 - if (greasymaxWidth) { - try { - var e = document.getElementsByClassName("width-constraint") - e[0].style.maxWidth = "95%" //header - e[1].style.maxWidth = "95%" //content - } catch (exp) { } - try { - document.getElementById("browse-script-list").style.width = "100%" - } catch (exp) { } //suchergebnisse; - try { - document.getElementById("user-script-list").style.width = "100%" - } catch (exp) { } //suchergebnisse; - try { - document.getElementById("script-list-option-groups").style.width = "100%" - } catch (exp) { } //sidebar; - try { - document.getElementById("carbonads").style.height = "0px" - } catch (exp) { } //carbon werbung - //try{document.getElementsByClassName("adsbygoogle")[0].style.height = "0px";}catch(exp){} //google werbung - } - //STUB - 点击导航栏默认跳转创建日期 - if (scriptwithdata) { - var scriptslinks = document.getElementsByClassName("scripts-index-link") - if (userhandleLocaleFilter) { - scriptslinks[0].firstChild.href = scriptslinks[0].firstChild.href.replace("/scripts", "/scripts?sort=created&filter_locale=0") - } else { - scriptslinks[0].firstChild.href = scriptslinks[0].firstChild.href.replace("/scripts", "/scripts?sort=created") - } - } - // STUB - 跳转大人 - if (jumpto) { - var currentUrl = window.location.href - const country_code = getCountryCode() - if (currentUrl.includes("greasyfork.org")) { - addNavLink("🔞", "https://sleazyfork.org/" + country_code + '/scripts') - } else if (currentUrl.includes("sleazyfork.org")) { - addNavLink("🍴", "https://greasyfork.org/" + country_code + '/scripts', false, false) - } - } - //STUB - 本地收藏夹 - function refreshFavorites() { - favs = JSON.parse(GM_getValue('favs', '[]')) - } - if (userlocalfav) { - addNavLink(translate('localbookmarks'), "https://greasyfork.org/" + getCountryCode() + "/404?Bookmarks", true) - } - function favPage() { - if (window.location.href == "https://greasyfork.org/" + getCountryCode() + "/404?Bookmarks") { - document.title = 'bookmarks' - // document.querySelector("body > div > section").remove() - let scripts = JSON.parse(GM_getValue('favs', '[]')) - document.querySelector("body > div > section").innerHTML = `
      ` - const reverseOrder = true - for (let script of (reverseOrder ? scripts.reverse() : scripts)) { - let elm = document.querySelector("#browse-script-list"), - li = document.createElement("li") - li.innerHTML = ` -
      - ${script.title} - ${script.timestamp} - ${script.description} -
      - ` - let scriptLinkElement = li.querySelector('.script-link') - handleScriptPage(script.description, script.title, scriptLinkElement, script.href, 'a', 'custom-class', (favs, value, scriptLinks) => { - // 这里是回调函数的实现 - if (value) { - scriptLinks.style.textDecoration = 'none' - scriptLinks.style.color = '#a42121' // 文字颜色改为红色 - scriptLinks.style.fontStyle = 'normal' // 取消斜体 - } else { - scriptLinks.style.textDecoration = 'line-through' - scriptLinks.style.color = 'gray' // 文字颜色改为灰色 - scriptLinks.style.fontStyle = 'italic' // 文字变成斜体 - } - }) - elm.appendChild(li) - } - } - } - favPage() - function handleScriptPage(scriptDescription, scriptTitle, scriptLinks, href, type = 'li', customClassName = '', callback = null) { - let li = document.createElement(type) - if (customClassName) { - li.classList.add(customClassName) - } - setStar(li, false) - if (type === 'li') { - scriptLinks.appendChild(li) - } else { - scriptLinks.parentNode.insertBefore(li, scriptLinks.nextElementSibling) - } - let index = -1, - val = scriptTitle, - filteredObj = favs.find((item, i) => { - if (item.title === val) { - index = i - return i - } - }) - if (index !== -1) { - setStar(li, true) - } - li.addEventListener('click', (event) => { - event.preventDefault() - event.stopPropagation() - refreshFavorites() - const now = new Date() - const localTime = now.toLocaleString() - var value = { - title: scriptTitle, - description: scriptDescription, - href: href, - timestamp: localTime, - } - var index = -1, - val = scriptTitle, - filteredObj = favs.find(function (item, i) { - if (item.title === val) { - index = i - return i - } - }) - if (index == -1) { - favs.push(value) - setStar(li, true) - if (callback) { - callback(favs, true, scriptLinks) - } - } else { - favs.splice(index, 1) - setStar(li, false) - if (callback) { - callback(favs, false, scriptLinks) - } - } - GM_setValue('favs', JSON.stringify(favs)) - }) - } - function scriptPage() { - if (location.href.match('/scripts') && document.querySelector("#script-links")) { - let scriptLinks = document.querySelector("#script-links") - let scriptTitle = document.querySelector("#script-info > header > h2").innerText - let scriptDescription = document.querySelector(".script-description").innerText - let href = window.location.href - handleScriptPage(scriptDescription, scriptTitle, scriptLinks, href) - } - } - scriptPage() - function addStyle() { - var css = ` -.badge.badge-author { -font-size: 0.7em; -float: right; -} -.custom-class { -position: absolute; -bottom: 0; -right: 0; -margin-right: 0px; -margin-bottom: 0; -} - .parent-container { - position: relative; -} - #script-links > li:nth-child(6) { - text-decoration: none; - cursor: pointer; - color: #a42121; - }`, - style = document.createElement('style') - style.innerHTML = css - document.head.append(style) - } addStyle() - function setStar(li, condition) { - if (condition) { - li.innerHTML = '' - } else { - li.innerHTML = '' - } - } - // STUB - 脚本名称清理 https://greasyfork.org/zh-CN/scripts/431940 - const m = /(\/[^/]+\/(?:scripts|users)\/\d+)-[^/]+(\/.*)?/.exec(location.pathname) - if (m && cleanscriptname) { - history.replaceState({}, null, `${location.origin}${m[1]}${m[2] ?? ''}${location.search}${location.hash}`) - } - // STUB - 主页增加编辑 // Adds a new link plus a separator - //https://update.greasyfork.org/scripts/15201/Greasy%20Fork%20Links.user.js - if (addedittohomepage && isHomepage()) { - function insertElement(link, text, href) { - var el = document.createElement(href ? 'a' : 'span') - if (href) { - el.href = href - // console.log(el); - } - el.innerText = text - link.parentNode.insertBefore(el, link.nextElementSibling) - } - function addLink(link, text, href, separator) { - insertElement(link, text, href) - insertElement(link, separator, null) - } - if (document.querySelector('#user-script-list')) { - var loggedIn = document.querySelector('#nav-user-info > .user-profile-link') - var items = document.querySelectorAll('#user-script-list > li') - for (var i = 0; i < items.length; i++) { - var link = items[i].querySelector('a') - if (loggedIn) { - addLink(link, 'Edit', '/en/scripts/' + items[i].getAttribute('data-script-id') + '/versions/new', ' - ') - addLink(link, 'Delete', link.href + '/delete', '/') - } - addLink(link, 'Install', link.href + '/code/' + encodeURIComponent(link.innerText) + '.user.js', ' - ') - } - // Display number of userscripts - var scripts = document.querySelector("#user-script-list-section > header > h3") - if (scripts) { - scripts.innerText = `${scripts.innerText} (${items.length})` - } - } - } - //STUB - 隐藏主页评论 - if (hideuserdiscussions && isHomepage()) { - document.querySelector("#user-discussions").style.display = 'none' - } - if (hideuserconversations && isHomepage()) { - document.querySelector("#user-conversations").style.display = 'none' - } - if (hideuserprofile && document.querySelector("#user-profile") && isHomepage()) { - document.querySelector("#user-profile").style.display = 'none' - } - // STUB - 短链接复制 - const idPrefix = "" // 根据需要设置前缀 - if (copyshortlink && document.querySelector("#script-info")) { - shortLink() - } - function shortLink() { - const description = document.querySelector("div#script-content") - const url = window.location.href - const scriptId = url.match(/\/scripts\/(\d+)/)?.[1] - if (!scriptId || !description) return - const id = idPrefix + "short-link" - const current = document.getElementById(id) - const short = `https://greasyfork.org/scripts/${scriptId}` - if (current) { - logMessage('shortLink', '删除现有的短链接元素', false) - // Remove the existing short link element - current.remove() - } else { - logMessage('shortLink', '新增短链元素', true) - // Add the short link element - const p = description.insertAdjacentElement("beforebegin", document.createElement("p")) - p.id = id - p.textContent = "Short link: " - const link = p.appendChild(document.createElement("a")) - link.href = short - link.textContent = short - const copy = p.appendChild(document.createElement("a")) - copy.textContent = "Copy" - copy.style.marginLeft = "1em" - copy.style.cursor = "pointer" - copy.title = "Copy short link to clipboard" - copy.addEventListener("click", () => { - if (copy.textContent === "Copied!") return - navigator.clipboard.writeText(short).then(() => { - copy.textContent = "Copied!" - window.setTimeout(() => { - copy.textContent = "Copy" - }, 1000) - }) - }) - } - } - //webhoot - // STUB - 导航栏增加打开设置 - if (setopenindoc) { - addNavLink(translate('thisname'), '#', false, false, "renminde") - var customClassName = 'renminde' // 自定义类名 - var link = document.querySelector(`.${customClassName} > a`) - if (link) { - link.addEventListener('click', event => { - event.preventDefault() - showSettingsModal() - }) - } - } - // STUB - 评论区美化选项 - if (modifyRadioLabels) { - if (document.location.pathname.endsWith('/feedback')) { - var ratings = { - 'discussion_rating_0': { - separator: ' - ', - originalText: '' - }, - 'discussion_rating_2': { - separator: ' - ', - originalText: '' - }, - 'discussion_rating_3': { - separator: ' - ', - originalText: '' - }, - 'discussion_rating_4': { - separator: ' - ', - originalText: '' - } - } - // 遍历评分信息对象,获取并处理每个评分选项的原始文本 - Object.keys(ratings).forEach(function (key) { - ratings[key].originalText = $('.radio-label[for="' + key + '"]').text() - ratings[key].parts = ratings[key].originalText.split(ratings[key].separator) - }) - // 更新页面上的评分选项内容 - $('.radio-label[for="discussion_rating_0"]').html('' + ratings['discussion_rating_0'].parts[0] + ' - ' + ratings['discussion_rating_0'].parts[1]) - $('.radio-label[for="discussion_rating_2"]').html('' + ratings['discussion_rating_2'].parts[0] + ' - ' + ratings['discussion_rating_2'].parts[1]) - $('.radio-label[for="discussion_rating_3"]').html('' + ratings['discussion_rating_3'].parts[0] + ' - ' + ratings['discussion_rating_3'].parts[1]) - $('.radio-label[for="discussion_rating_4"]').html('' + ratings['discussion_rating_4'].parts[0] + ' - ' + ratings['discussion_rating_4'].parts[1]) - } - // - } - // STUB - 代码字数 - function get_size_from_doc(doc) { - let t = doc.querySelector('#script-content .code-container pre').innerText - const byteLength = new TextEncoder().encode(t).length - const size = formatFileSize(byteLength) - return { - lines: t.split('\n').length, - chars: t.length, - filesize: size, - } - } - function handle_code_page() { - let s = get_size_from_doc(document) - let e = document.createElement('span') - e.innerText = `Lines: ${s.lines}, Characters: ${s.chars}` - e.innerHTML = ` - - ${translate('linesOfCode')} ${s.lines}, ${translate('wordCount')} ${s.chars},大小${s.filesize} - ` - if (isMobile()) { - var parentElement = document.querySelector('#script-feedback-suggestion') - var referenceElement = parentElement.nextElementSibling - parentElement.insertAdjacentElement('afterend', e) - } else { - document.querySelector('#script-feedback-suggestion').appendChild(e) - } - } - if (isScriptCodePage() && showtotal) { - handle_code_page() - } - if (setcopylink && isScriptCodePage()) { - copycodelink() - } - // 封装的复制代码函数 - function copyCode() { - let pre = document.querySelector(".code-container > pre") - if (!pre) { - pre = document.querySelector("pre.uglyprint") - } - // const pre = document.querySelector(".code-container > pre"); - const codeText = pre.innerText - .split('\n') - .filter(line => line.trim() !== '') // 删除空白行 - .map(line => { - // 删除行首的纯数字串和紧跟其后的空白字符 - return line.replace(/^\d+/, '') - }) - .join('\n') - GM_setClipboard(codeText, "text") - } - // STUB - 代码复制按钮 - function copycodelink() { - let b = document.createElement('a') - b.href = '#' - b.draggable = false - b.innerText = translate('copyto') - b.className = 'copycode' - b.onclick = async event => { - event.preventDefault() - await copyCode() - Toast('Copy successful', 3000, '#0000ff', '#ffffff', 'top') - } - if (isMobile()) { - var parentElement = document.querySelector("#script-content > div.code-container") - var referenceElement = parentElement.nextElementSibling - parentElement.insertAdjacentElement('beforebegin', b) - } else { - document.querySelector('#script-feedback-suggestion').appendChild(b) - } - } - // STUB - 切换脚本简介greasyfork.org/scripts/471149 - let additionalInfoDiv = document.querySelector('#additional-info.user-content') - if (sethtmlview && additionalInfoDiv) { - const htmlViewb = document.createElement("a") - htmlViewb.href = "#" - htmlViewb.className = "install-link htmlViewb" - htmlViewb.style.marginLeft = "0.5rem" - htmlViewb.textContent = translate('htmlViewtotext') - htmlViewb.addEventListener('click', (event) => { - event.preventDefault() - // Toggle the HTML view - if (additionalInfoDiv.dataset.htmlView === 'true') { - // Revert to the original content - additionalInfoDiv.dataset.htmlView = 'false' - additionalInfoDiv.innerHTML = additionalInfoDiv.dataset.originalContent - htmlViewb.textContent = translate('htmlViewtotext') - } else { - // Save the original content and replace with the HTML view - additionalInfoDiv.dataset.htmlView = 'true' - additionalInfoDiv.dataset.originalContent = additionalInfoDiv.innerHTML - additionalInfoDiv.textContent = additionalInfoDiv.innerHTML - htmlViewb.textContent = translate('texttohtmlView') - } - }) - if (additionalInfoDiv) { - additionalInfoDiv.parentNode.insertBefore(htmlViewb, additionalInfoDiv) - } - } - // STUB - 侧边栏脚本上移动 - const findlis = document.getElementById("script-list-sort") - if (scriptset && findlis) { - var observer = new MutationObserver(function (mutationsList) { - for (var mutation of mutationsList) { - if (mutation.type === 'childList') { - // 检查是否出现了 Script set 元素 - var setDiv = document.getElementById("script-list-set") - if (setDiv) { - // 找到 script-list-sort 元素 - var sortDiv = document.getElementById("script-list-sort") - // 将 setDiv 插入到 sortDiv 下面 - sortDiv.parentNode.insertBefore(setDiv, sortDiv.nextSibling) - // 弹出提示 - // 停止监听DOM的变化 - observer.disconnect() - break - } - } - } - }) - observer.observe(document.body, { - childList: true, - subtree: true - }) - } - // STUB - 编辑器自动美化 - if (/\/(versions|script_versions)\/new/.test(window.location.href)) { - if (autocheck) { - var textarea = document.getElementById('script_version_code') - waitForElement('#enable-source-editor-code').then(() => { - // 选择 enable-source-editor-code 元素 - const checkbox = document.querySelector('#enable-source-editor-code') - if (checkbox && !checkbox.checked) { - checkbox.click() - textarea.style.height = '800px' - logMessage('autocheck', '自动点击完成', true) - } - }) - } - } - // 注册油猴菜单命令 - GM_registerMenuCommand(translate('setDisplay'), () => { - // 创建一个设置窗口 - // createsetui(); - showSettingsModal() - }) - function handleCheckboxChange() { - if (this.checked) { - let input = prompt(translate('inputDaysToCleanUp'), "30") - let number = parseInt(input) - if (isNaN(number)) { - number = 30 - } - GM_setValue('clearhomepage', true) - GM_setValue('clearhomepagedays', number) - } else { - GM_setValue('clearhomepage', false) - } - } - //STUB - 列表增加评分各种操作按钮 - /** - * 创建一个自定义的链接元素 - * @param {string} url - 链接的目标地址 - * @param {string} text - 链接的文本内容 - * @param {string} className - 链接的 CSS 类名 - * @param {string} backgroundColor - 链接的背景颜色 - * @param {string} textColor - 链接的文字颜色 - * @param {string} [fontSize='12px'] - 链接的字体大小(可选,默认为 '12px') - * @returns {HTMLAnchorElement} - 创建的链接元素 - */ - function createCodeLink({ - url, - text = 'code', - className = 'code-link', - backgroundColor = '#0084ff', - textColor = 'white', - fontSize = '12px' - }) { - let newLink = document.createElement('a') - newLink.textContent = text // 链接文本内容 - newLink.href = url // 将链接地址设置为传入的 URL - newLink.className = className // 添加一个类来标识这个链接 - newLink.style.marginLeft = '10px' // 添加一些左边距以增加间距 - newLink.style.paddingLeft = '2px' - newLink.style.paddingRight = '2px' - newLink.style.fontSize = fontSize // 设置链接的字体大小 - newLink.style.background = backgroundColor // 设置背景颜色 - newLink.style.color = textColor // 设置文字颜色 - newLink.style.textDecoration = 'none' // 移除链接下划线 - return newLink // 返回创建的链接元素 - } - // 函数:在 .script-link 元素上方添加一个新的链接 - function addLinkAboveScriptList(article) { - let scriptLink = article.querySelector('.script-link') - // 如果 .script-link 元素存在,获取它的 href 属性 - if (scriptLink) { - // 检查链接是否已经存在,以避免重复添加 - if (!scriptLink.nextElementSibling || !scriptLink.nextElementSibling.classList.contains('code-link')) { - let scriptLinkUrl = scriptLink.getAttribute('href') // 获取原始链接地址 - let newCodeLinkUrl = scriptLinkUrl + '/code' // 在原始地址后添加 /code - // 创建新的链接元素 - let newLink = createCodeLink({ - url: newCodeLinkUrl, - text: 'code', - className: 'code-link', - backgroundColor: '#0084ff', - textColor: 'white', - fontSize: '12px' - }) - // 将新链接插入到现有 .script-link 元素后面 - scriptLink.insertAdjacentElement('afterend', newLink) - } - } - } - // 请求队列的最大并发数 - // 请求队列的最大并发数 - const MAX_CONCURRENT_REQUESTS = 5 - let activeRequests = 0 - const requestQueue = [] - async function checkVersionInfo(metaUrl, button, netversion) { - // 创建一个新的 Promise 以将当前请求添加到请求队列中 - await new Promise(resolve => { - const request = async () => { - // 在请求开始之前增加活跃请求数 - activeRequests++ - try { - const metaText = await fetchTextFromURL(metaUrl, true) - const name = metaText.name - const namespace = metaText.namespace - if (name && namespace) { - // 使用 checkVersion 库的方法 1大于。-1小于 0 等于 - try { - const installedVersion = await checkVersion.getInstalledVersion(name, namespace) - if (installedVersion) { - const comparisonResult = checkVersion.compareVersionPart(installedVersion, netversion) - let status - switch (comparisonResult) { - case 1: - status = `${translate('downgradeto')}${netversion}` - break - case 0: - status = `${translate('reinstall')}${netversion}` - break - case -1: - status = `${translate('upgradeto')}${netversion}` - break - default: - status = `Install:${installedVersion}` - } - button.textContent = status - } else { - // button.textContent = `${name} is not installed.` - } - } catch (error) { - logMessage('checkVersionInfo', '检查失败:', false, error) - // button.textContent = 'Error checking version.' - } - } else { - // button.textContent = 'Failed to extract name or namespace from meta.js' - logMessage('checkVersionInfo', '读取空间失败', false, error) - } - } catch (error) { - logMessage('checkVersionInfo', '获取json失败:', false, error) - // button.textContent = 'Error fetching meta.js.' - } finally { - // 请求完成后减少活跃请求数 - activeRequests-- - // 从队列中取出下一个请求并执行 - if (requestQueue.length > 0) { - requestQueue.shift()() - } - } - } - // 如果活跃请求数已达到最大限制,则将请求加入队列中 - if (activeRequests >= MAX_CONCURRENT_REQUESTS) { - requestQueue.push(request) - } else { - request() - } - resolve() - }) - } - /** - * 在 article 元素的底部添加安装和下载链接 - * @param {HTMLElement} article - 要在其底部添加链接的 article 元素 - */ - function addInstallAndDownloadLinks(article) { - let liElement = article.closest('li[data-script-id]') // 获取最近的父级
    1. 元素 - if (liElement) { - // 从
    2. 元素中提取 data-code-url - const codeUrl = article.getAttribute('data-code-url') - const scripver = article.getAttribute('data-script-version') - const scriptid = article.getAttribute('data-script-id') - const scriptlang = article.getAttribute('data-script-language') - // 检查 "Install" 链接是否已经存在 - const existingInstallLink = article.querySelector('.install-link') - if (!existingInstallLink) { - // 创建安装链接 - let installLink = document.createElement('a') - installLink.href = codeUrl - installLink.textContent = 'Install' - installLink.className = 'install-link' - installLink.innerHTML = ` - Install ${scripver} -` - installLink.addEventListener('click', function (event) { - event.preventDefault() // 阻止默认的链接跳转行为 - event.stopPropagation() // 阻止事件进一步传播 - navigateTo(codeUrl, false) - }) - // 将安装链接添加到 article 元素的底部 - article.appendChild(installLink) - if (scriptlang === "js") { - checkVersionInfo(`https://greasyfork.org/scripts/${scriptid}.json`, installLink, scripver) - } else { - logMessage('addInstallAndDownloadLinks', `${scriptlang}文件暂未添加检测版本`, false) - } - } - // 检查 "Download" 链接是否已经存在 - const existingDownloadLink = article.querySelector('.install-link.down-code-link') - if (!existingDownloadLink) { - // 创建下载链接 - const downloadLink = document.createElement('a') - downloadLink.href = codeUrl // 设置链接的目标地址 - downloadLink.textContent = 'Download' // 设置链接的文本内容 - downloadLink.className = 'install-link down-code-link' // 设置 CSS 类名 - toggleDownloadIcon(downloadLink, false) - downloadLink.addEventListener('click', function (event) { - event.preventDefault() // 阻止默认的链接跳转行为 - event.stopPropagation() // 阻止事件进一步传播 - toggleDownloadIcon(downloadLink, true) - const filename = getFilenameFromUrl(codeUrl) - downloadFile(codeUrl, filename, function (error) { - // 下载完成后执行的操作 - if (error) { - Toast(error.message, 3000, '#ff6347', '#ffffff', 'top') - } else { - toggleDownloadIcon(downloadLink, false) - } - }, 2) - }) - // 将下载链接添加到 article 元素的底部 - article.appendChild(downloadLink) - } - } - } - // 函数:在 .script-link 元素添加本地收藏 - function addlocalfav(article) { - if (window.location.href.includes('Bookmarks')) { - return - } - const scriptLink = article.querySelector('.script-link') - const description = article.querySelector('.script-description') - if (scriptLink) { - handleScriptPage(description.textContent.trim(), scriptLink.textContent.trim(), scriptLink, scriptLink.getAttribute('href'), 'a') - } - } - // 函数:向指定元素中添加一个显示评分的 span 元素 - /** - * 从 article 元素中提取评分信息,并根据参数决定如何显示评分信息 - * @param {HTMLElement} article - 包含评分信息的 article 元素 - * @param {boolean} [insertAtScriptLink=true] - 如果为 true,将评分信息添加到 .script-list-ratings 内部;如果为 false,将评分信息添加到 .script-link 后面 - */ - function addRatingSpan(article, insertAtScriptLink = true) { - // 查找包含评分信息的元素 - let ratingsItems = article.querySelectorAll('div > dl > dd.script-list-ratings') - ratingsItems.forEach(item => { - let ratingScore = item.getAttribute('data-rating-score') // 从数据属性中获取评分 - if (insertAtScriptLink) { - // 如果 insertAtScriptLink 为 true,添加评分信息到 .script-link 后面 - let scriptLink = article.querySelector('.script-link') - if (scriptLink) { - // 检查评分信息是否已经存在,以避免重复添加 - if ( - !scriptLink.nextElementSibling || - !scriptLink.nextElementSibling.matches('.good-rating-count[title="rating-score"]') && - (!scriptLink.nextElementSibling.nextElementSibling || - !scriptLink.nextElementSibling.nextElementSibling.matches('.good-rating-count[title="rating-score"]')) - ) { - let newSpan = document.createElement('span') - newSpan.className = 'good-rating-count' - newSpan.title = 'rating-score' - newSpan.textContent = 'Score: ' + ratingScore // 将文本内容设置为评分 - newSpan.style.marginLeft = '10px' // 添加一些左边距以增加间距 - newSpan.style.fontSize = '12px' // 设置字体大小 - scriptLink.insertAdjacentElement('afterend', newSpan) // 将新 span 元素添加到 .script-link 后面 - } - } - } else { - // 如果 insertAtScriptLink 为 false,添加评分信息到 .script-list-ratings 内部 - if (!item.querySelector('.good-rating-count[title="rating-score"]')) { - let newSpan = document.createElement('span') - newSpan.className = 'good-rating-count' - newSpan.title = 'rating-score' - newSpan.textContent = 'Score: ' + ratingScore // 将文本内容设置为评分 - newSpan.style.marginLeft = '10px' // 添加一些左边距以增加间距 - newSpan.style.fontSize = '12px' // 设置字体大小 - item.insertAdjacentElement('beforeend', newSpan) // 将新 span 元素添加为现有元素的子元素 - } - } - }) - } - // 函数:处理脚本列表中的每个项 - function processScriptItem(article) { - if (userlocalfav) { - addlocalfav(article) - } - if (showRating) { - addRatingSpan(article, true) - } - if (showSourceCode) { - addLinkAboveScriptList(article) - } - if (showinstallbutton) { - addInstallAndDownloadLinks(article) - } - } - function initializeScriptList() { - const articles = document.querySelectorAll('#browse-script-list > li, #user-script-list > li') - if (articles.length > 0) { - articles.forEach(article => { - processScriptItem(article) - }) - } else { - return // 或者返回某个特定值,例如 return false; - } - } - if (document.querySelectorAll('#browse-script-list > li, #user-script-list > li')) { - // 初次调用处理现有脚本列表项 - initializeScriptList() - // 创建 MutationObserver 以检测 DOM 中的变化 - const ScriptListobserver = new MutationObserver((mutations) => { - mutations.forEach(mutation => { - if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { - mutation.addedNodes.forEach(node => { - if (node.nodeType === 1 && (node.id === "user-script-list-section" || node.id === "browse-script-list")) { - if (node.id === "user-script-list-section") { - node = node.querySelector("#user-script-list") - logMessage('用户列表', '元素', true, node) - } - if (node.id === "browse-script-list") { - logMessage('脚本列表', '元素', true, node) - } - Array.from(node.children).forEach(li => { - processScriptItem(li) - }) - } - if (node.nodeType === 1 && (node.matches('#browse-script-list > li') || node.matches('#user-script-list > li'))) { - logMessage('脚本列表_规则2', '元素', true, node) - processScriptItem(node) - } - }) - } - }) - }) - // 观察整个文档主体中的变化 - ScriptListobserver.observe(document.body, { childList: true, subtree: true }) - } - // STUB - 修复导航栏https://update.greasyfork.org/scripts/473269/GreasyFork%20Header%20Style%20Fix.user.js - if (HeaderStyleFix) { - let css = ` - /* Insert code here... */ - html { - --main-header-scale: 1.0; - } - #site-nav { - font-size: min(16px, calc(20px * var(--main-header-scale))); - } - #site-name { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - margin: 0; - } - #site-name-text h1 { - font-size: calc(38pt * var(--main-header-scale)); - white-space: nowrap; - margin: 0; - } - #site-name-text { - margin: 0; - } - #main-header > .width-constraint:only-child { - display: flex; - place-items: center; - padding-top: calc(8px * var(--main-header-scale)); - padding-bottom: calc(8px * var(--main-header-scale)); - padding-right: calc(24px * var(--main-header-scale)); - padding-left: calc(24px * var(--main-header-scale)); - flex-direction: row; - margin: 0; - } - #site-nav > nav, - #nav-user-info { - position: static; - margin: 0; - } - #site-nav { - display: flex; - row-gap: 4px; - flex-direction: column; - margin: 0; - } - #main-header > .width-constraint:only-child > #site-nav:last-child { - flex-grow: 1; - margin: 0; - } - html #site-name img { - width: calc(58px * var(--main-header-scale)); - height: calc(58px * var(--main-header-scale)); - margin: 0; - } - @media screen and (max-width: 768px) { - html { - --main-header-scale: 0.74; - } - } - @media screen and (max-width: 672px) { - html { - --main-header-scale: 0.62; - } - } -` - if (typeof GM_addStyle !== "undefined") { - GM_addStyle(css) - } else { - let styleNode = document.createElement("style") - styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) - } - } - //STUB - 显示绝对时间 https://update.greasyfork.org/scripts/470348/Absolute%20Time%20on%20GreasyFork.user.js - if (AbsoluteTime) { - let langUsed = null - const Promise = (async () => { })().constructor - const PromiseExternal = ((resolve_, reject_) => { - const h = (resolve, reject) => { - resolve_ = resolve - reject_ = reject - } - return class PromiseExternal extends Promise { - constructor(cb = h) { - super(cb) - if (cb === h) { - /** @type {(value: any) => void} */ - this.resolve = resolve_ - /** @type {(reason?: any) => void} */ - this.reject = reject_ - } - } - } - })() - function pad(s, d) { - s = `000000${s}` - return s.substring(s.length - d) - } - /** - * @callback formatDateTimeFn - * @param {DateTime} dt - * @returns {string} formated text for date & time - */ - /** @type {formatDateTimeFn} */ - const formatUFn = (dt) => { - return `${dt.getFullYear()}.${pad(dt.getMonth() + 1, 2)}.${pad(dt.getDate(), 2)} ${pad(dt.getHours(), 2)}:${pad(dt.getMinutes(), 2)}:${pad(dt.getSeconds(), 2)}` - } - /** @type {formatDateTimeFn} */ - const formatFrFn = (dt) => { - return `${pad(dt.getDate(), 2)}.${pad(dt.getMonth() + 1, 2)}.${dt.getFullYear()} ${pad(dt.getHours(), 2)}:${pad(dt.getMinutes(), 2)}:${pad(dt.getSeconds(), 2)}` - } - let formatFn = formatUFn - let rafPromise = null - const getRafPromise = () => rafPromise || (rafPromise = new Promise(resolve => { - requestAnimationFrame(hRes => { - rafPromise = null - resolve(hRes) - }) - })) - let delay100 = null - delay100 = new PromiseExternal() - setInterval(() => { - delay100.resolve() - delay100 = new PromiseExternal() - }, 100) - let psk = 0 - const cssText = ` - @keyframes relativeTimeNotAbsoluteAppended { - from{ - background-position-x: 1px; - } - to{ - background-position-x: 2px; - } - } - relative-time[datetime]:not(.absolute) { - animation: relativeTimeNotAbsoluteAppended 1ms linear 0s 1 normal forwards; - } - ` - async function fixRelativeTime(s) { - psk = Date.now() - s.classList.add("absolute") - s.format = 'datetime' - await Promise.resolve().then() - await getRafPromise().then() - if (langUsed === null) { - langUsed = document.documentElement.lang - if (typeof langUsed === 'string' && (langUsed === 'fr' || langUsed.startsWith('fr-'))) { - formatFn = formatFrFn - } - } - let d = s.getAttribute('datetime') - let dt = d ? new Date(d) : null - if (dt && s.shadowRoot && s.shadowRoot.firstChild) { - psk = Date.now() - while (Date.now() - psk < 800) { - s.shadowRoot.firstChild.textContent = formatFn(dt) - await delay100.then() - } - } - } - document.addEventListener('animationstart', (evt) => { - const animationName = evt.animationName - if (!animationName) return - if (animationName === 'relativeTimeNotAbsoluteAppended') { - fixRelativeTime(evt.target) - } - }, { - capture: true, - passive: true - }) - document.head.appendChild(document.createElement('style')).textContent = cssText - } - //STUB - 给库和脚本详情页增加下载按钮 https://greasyfork.org/users/980489 - if (addbutton && document.querySelector('div#script-feedback-suggestion')) { - const installArea = document.querySelector('div#install-area') - const installBtns = installArea?.querySelectorAll(':scope > a.install-link') - const installHelpLinks = document.querySelectorAll('a.install-help-link') - const suggestion = document.querySelector('div#script-feedback-suggestion') - const libraryRequire = document.querySelector('div#script-content > p > code') - const libraryVersion = document.querySelector( - '#script-stats > dd.script-show-version > span' - ) - if ( - installArea && - (installBtns.length > 0) && - (installBtns.length === installHelpLinks.length) - ) { - for (let i = 0; i < installBtns.length; i++) { - mountScriptDownloadButton(installBtns[i], installArea, installHelpLinks[i]) - } - } - // or maybe a library - else if (suggestion && libraryRequire) { - mountLibraryDownloadButton(suggestion, libraryRequire, libraryVersion) - } - function mountLibraryDownloadButton(suggestion, libraryRequire, libraryVersion) { - let [ - libraryHref, - libraryName, - ] = libraryRequire.innerText.match( - /\/\/ @require (https:\/\/.+\/scripts\/\d+\/\d+\/(.*)\.js)/ - ).slice(1) - // this probably is completely useless but whatever - if (!libraryHref) throw new Error('library href is not found') - libraryName = decodeURIComponent(libraryName) - if (libraryVersion?.innerText) libraryName += ` ${libraryVersion.innerText}` - const b = document.createElement('a') - b.href = '#' - b.draggable = false - b.innerText = translate('download') - b.className = 'GF-DSB__library-download-button' - suggestion.appendChild(b) - b.addEventListener('click', function (event) { - event.preventDefault() - const filename = getFilenameFromUrl(libraryHref) - b.textContent = translate('downloading') // 修改链接文本为 "下载中..." - b.style.pointerEvents = 'none' // 禁用点击事件,防止重复点击 - b.blur() // 让链接失去焦点 - downloadFile(libraryHref, filename, function (error) { - // 下载完成后执行的操作 - if (error) { - b.textContent = translate('download') // 恢复链接文本为 "下载" - b.style.pointerEvents = 'auto' // 恢复点击事件 - // 如果下载失败,处理错误情况 - Toast(error.message, 3000, '#ff6347', '#ffffff', 'top') - // 可以进行其他错误处理,例如显示错误消息给用户 - } else { - // 下载成功后执行的操作 - b.textContent = translate('download') // 恢复链接文本为 "下载" - b.style.pointerEvents = 'auto' // 恢复点击事件 - b.focus() // 让链接重新获取焦点,给用户一种下载完成的感觉 - } - }, 2) - }) - } - function mountScriptDownloadButton( - installBtn, - installArea, - installHelpLink, - ) { - if (!installBtn.href) throw new Error('script href is not found') - const linkText = installBtn.textContent.trim() - installBtn.innerHTML = ` - - ${linkText}` - const downloadButton = document.createElement('a') - downloadButton.href = "#" - downloadButton.className = "install-link down-code-link" - toggleDownloadIcon(downloadButton, false) - downloadButton.style.marginLeft = '"0.5rem' - // suggestion.appendChild(downloadButton); - installArea.insertBefore(downloadButton, installHelpLink) - installHelpLink.remove() - downloadButton.addEventListener('click', function (event) { - event.preventDefault() - event.stopPropagation() // 阻止事件冒泡 - toggleDownloadIcon(downloadButton, true) - const filename = getFilenameFromUrl(installBtn.href) - downloadFile(installBtn.href, filename, function (error) { - // 下载完成后执行的操作 - if (error) { - Toast(error.message, 3000, '#ff6347', '#ffffff', 'top') - } else { - toggleDownloadIcon(downloadButton, false) - } - }, 2) - }) - } - } - //插入图标选项 - function addIcon(h2Element) { - const scripts = JSON.parse(GM_getValue('scriptsIcon', '{}')) // 将存储的 JSON 字符串解析为对象 - var scriptID = location.href.match(/scripts\/(\d+)/)[1] - var iconsrc = scripts[scriptID] - // var iconsrc = GM_getValue(scriptID); - if (iconsrc && iconsrc.match(/^data:image|https:/)) { - __addIcon(iconsrc, h2Element) - } else { - GM_xmlhttpRequest({ - method: 'GET', - url: location.pathname.replace(/(scripts\/\d+[^/]+)(\/.*)?$/, '$1/code/1.user.js'), - timeout: 10000, - onload: function (r) { - var url = (r.responseText.match(/\n\s*\/\/\s+@icon(?:url)?\s+((?:https?:\/\/|data:image\/).+)|$/i)[1] || '').trim() - if (!url) { - url = "https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/default.png" - return __addIcon(url, h2Element, true) - } - if (!/^http:/.test(url)) - return __addIcon(url, h2Element) - // download http icon and store it in script db if it's small - GM_xmlhttpRequest({ - method: 'GET', - url: url, - timeout: 10000, - headers: { - 'Accept': 'image/png,image/*;q=0.8,*/*;q=0.5' - }, - responseType: 'arraybuffer', - onload: function (ri) { - var /**@type ArrayBuffer*/ rb = ri.response, - rbl = rb.byteLength - if (rbl > 100000) { - logMessage('addIcon', '图标超过100k', false) - return - } - var mime = ri.responseHeaders.match(/(^|\n\s*)Content-Type:\s*(image\/[^;,\s]+)|$/i)[2] - var rb8 = new Uint8Array(rb) - var rbs = Array(rbl) - for (var i = 0; i < rbl; i++) - rbs[i] = String.fromCharCode(rb8[i]) - var dataUrl = 'data:image/' + (mime || 'png') + ';base64,' + btoa(rbs.join('')) - __addIcon(dataUrl, h2Element) - } - }) - } - }) - } - function __addIcon(url, h2Element, NoCache = false) { - if (!h2Element) { - logMessage('addIcon', '缺少附加图标的元素', false) - return - } - h2Element.insertAdjacentHTML('afterbegin', '
      ') - var img = document.createElement('img') - const imgsize = '32px' - img.style.maxWidth = img.style.maxHeight = imgsize - img.style.width = img.style.height = 'auto' - img.src = url - h2Element.insertAdjacentElement('afterbegin', img) - if (!NoCache) { - logMessage("添加图标", "nocache,为false,进行缓存", true) - const scripts = JSON.parse(GM_getValue('scriptsIcon', '{}')) - scripts[scriptID] = url - GM_setValue('scriptsIcon', JSON.stringify(scripts)) - } else { - logMessage("添加图标", "nocache为true,不缓存", false) - } - // GM_setValue(scriptID, url); - } - } - //STUB - 美化控件 - const beautifyMarkdownCSS = 'code {\r\n font-family: Menlo, Monaco, Consolas, "Courier New", monospace;\r\n font-size: 0.85em;\r\n color: #000;\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n padding: 0.2em 0;\r\n}\r\ntable {\r\n text-indent: initial;\r\n}\r\ntable {\r\n margin: 10px 0 15px 0;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n display: block;\r\n width: 100%;\r\n overflow: auto;\r\n word-break: normal;\r\n word-break: keep-all;\r\n}\r\ncode,\r\npre {\r\n color: #333;\r\n background: 0 0;\r\n font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;\r\n text-align: left;\r\n white-space: pre;\r\n word-spacing: normal;\r\n word-break: normal;\r\n word-wrap: normal;\r\n line-height: 1.4;\r\n -moz-tab-size: 8;\r\n -o-tab-size: 8;\r\n tab-size: 8;\r\n -webkit-hyphens: none;\r\n -moz-hyphens: none;\r\n -ms-hyphens: none;\r\n hyphens: none;\r\n}\r\npre {\r\n padding: 0.8em;\r\n overflow: auto;\r\n border-radius: 3px;\r\n background: #f5f5f5;\r\n}\r\n:not(pre) > code {\r\n padding: 0.1em;\r\n border-radius: 0.3em;\r\n white-space: normal;\r\n background: #f5f5f5;\r\n}\r\nhtml body {\r\n font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans,\r\n sans-serif;\r\n font-size: 16px;\r\n line-height: 1.6;\r\n color: #333;\r\n background-color: #fff;\r\n overflow: initial;\r\n box-sizing: border-box;\r\n word-wrap: break-word;\r\n}\r\nhtml body > :first-child {\r\n margin-top: 0;\r\n}\r\nhtml body h1,\r\nhtml body h2,\r\nhtml body h3,\r\nhtml body h4,\r\nhtml body h5,\r\nhtml body h6 {\r\n line-height: 1.2;\r\n margin-top: 1em;\r\n margin-bottom: 16px;\r\n color: #000;\r\n}\r\nhtml body h1 {\r\n font-size: 2.25em;\r\n font-weight: 300;\r\n padding-bottom: 0.3em;\r\n}\r\nhtml body h2 {\r\n font-size: 1.75em;\r\n font-weight: 400;\r\n padding-bottom: 0.3em;\r\n}\r\nhtml body h3 {\r\n font-size: 1.5em;\r\n font-weight: 500;\r\n}\r\nhtml body h4 {\r\n font-size: 1.25em;\r\n font-weight: 600;\r\n}\r\nhtml body h5 {\r\n font-size: 1.1em;\r\n font-weight: 600;\r\n}\r\nhtml body h6 {\r\n font-size: 1em;\r\n font-weight: 600;\r\n}\r\nhtml body h1,\r\nhtml body h2,\r\nhtml body h3,\r\nhtml body h4,\r\nhtml body h5 {\r\n font-weight: 600;\r\n}\r\nhtml body h5 {\r\n font-size: 1em;\r\n}\r\nhtml body h6 {\r\n color: #5c5c5c;\r\n}\r\nhtml body strong {\r\n color: #000;\r\n}\r\nhtml body del {\r\n color: #5c5c5c;\r\n}\r\nhtml body a:not([href]) {\r\n color: inherit;\r\n}\r\nhtml body a {\r\n text-decoration: underline;\r\n text-underline-offset: 0.2rem;\r\n}\r\nhtml body a:hover {\r\n color: #00a3f5;\r\n}\r\nhtml body img {\r\n max-width: 100%;\r\n}\r\nhtml body > p {\r\n margin-top: 0;\r\n margin-bottom: 16px;\r\n word-wrap: break-word;\r\n}\r\nhtml body > ol,\r\nhtml body > ul {\r\n margin-bottom: 16px;\r\n}\r\nhtml body ol,\r\nhtml body ul {\r\n padding-left: 2em;\r\n}\r\nhtml body ol.no-list,\r\nhtml body ul.no-list {\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\nhtml body ol ol,\r\nhtml body ol ul,\r\nhtml body ul ol,\r\nhtml body ul ul {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\nhtml body li {\r\n margin-bottom: 0;\r\n}\r\nhtml body li.task-list-item {\r\n list-style: none;\r\n}\r\nhtml body li > p {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\nhtml body .task-list-item-checkbox {\r\n margin: 0 0.2em 0.25em -1.8em;\r\n vertical-align: middle;\r\n}\r\nhtml body .task-list-item-checkbox:hover {\r\n cursor: pointer;\r\n}\r\nhtml body blockquote {\r\n margin: 16px 0;\r\n font-size: inherit;\r\n padding: 0 15px;\r\n color: #5c5c5c;\r\n background-color: #f0f0f0;\r\n border-left: 4px solid #d6d6d6 !important;\r\n}\r\nhtml body blockquote > :first-child {\r\n margin-top: 0;\r\n}\r\nhtml body blockquote > :last-child {\r\n margin-bottom: 0;\r\n}\r\nhtml body hr {\r\n height: 4px;\r\n margin: 32px 0;\r\n background-color: #d6d6d6;\r\n border: 0 none;\r\n}\r\nhtml body table {\r\n margin: 10px 0 15px 0;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n display: block;\r\n width: 100%;\r\n overflow: auto;\r\n word-break: normal;\r\n word-break: keep-all;\r\n}\r\nhtml body table th {\r\n font-weight: 700;\r\n color: #000;\r\n}\r\nhtml body table td,\r\nhtml body table th {\r\n border: 1px solid #d6d6d6;\r\n padding: 6px 13px;\r\n}\r\nhtml body dl {\r\n padding: 0;\r\n}\r\nhtml body dl dt {\r\n padding: 0;\r\n margin-top: 16px;\r\n font-size: 1em;\r\n font-style: italic;\r\n font-weight: 700;\r\n}\r\nhtml body dl dd {\r\n padding: 0 16px;\r\n margin-bottom: 16px;\r\n}\r\nhtml body code {\r\n font-family: Menlo, Monaco, Consolas, "Courier New", monospace;\r\n font-size: 0.85em;\r\n color: #000;\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n padding: 0.2em 0;\r\n}\r\nhtml body code::after,\r\nhtml body code::before {\r\n letter-spacing: -0.2em;\r\n content: "\\00a0";\r\n}\r\nhtml body pre > code {\r\n padding: 0;\r\n margin: 0;\r\n word-break: normal;\r\n white-space: pre;\r\n background: 0 0;\r\n border: 0;\r\n}\r\nhtml body .highlight {\r\n margin-bottom: 16px;\r\n}\r\nhtml body .highlight pre,\r\nhtml body pre {\r\n padding: 1em;\r\n overflow: auto;\r\n line-height: 1.45;\r\n border: #d6d6d6;\r\n border-radius: 3px;\r\n}\r\nhtml body .highlight pre {\r\n margin-bottom: 0;\r\n word-break: normal;\r\n}\r\nhtml body pre code,\r\nhtml body pre tt {\r\n display: inline;\r\n max-width: initial;\r\n padding: 0;\r\n margin: 0;\r\n overflow: initial;\r\n line-height: inherit;\r\n word-wrap: normal;\r\n background-color: transparent;\r\n border: 0;\r\n}\r\nhtml body pre code:after,\r\nhtml body pre code:before,\r\nhtml body pre tt:after,\r\nhtml body pre tt:before {\r\n content: normal;\r\n}\r\nhtml body blockquote,\r\nhtml body dl,\r\nhtml body ol,\r\nhtml body p,\r\nhtml body pre,\r\nhtml body ul {\r\n margin-top: 0;\r\n margin-bottom: 16px;\r\n}\r\nhtml body kbd {\r\n color: #000;\r\n border: 1px solid #d6d6d6;\r\n border-bottom: 2px solid #c7c7c7;\r\n padding: 2px 4px;\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n}\r\n@media print {\r\n html body {\r\n background-color: #fff;\r\n }\r\n html body h1,\r\n html body h2,\r\n html body h3,\r\n html body h4,\r\n html body h5,\r\n html body h6 {\r\n color: #000;\r\n page-break-after: avoid;\r\n }\r\n html body blockquote {\r\n color: #5c5c5c;\r\n }\r\n html body pre {\r\n page-break-inside: avoid;\r\n }\r\n html body table {\r\n display: table;\r\n }\r\n html body img {\r\n display: block;\r\n max-width: 100%;\r\n max-height: 100%;\r\n }\r\n html body code,\r\n html body pre {\r\n word-wrap: break-word;\r\n white-space: pre;\r\n }\r\n}\r\n.scrollbar-style::-webkit-scrollbar {\r\n width: 8px;\r\n}\r\n.scrollbar-style::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n background-color: transparent;\r\n}\r\n.scrollbar-style::-webkit-scrollbar-thumb {\r\n border-radius: 5px;\r\n background-color: rgba(150, 150, 150, 0.66);\r\n border: 4px solid rgba(150, 150, 150, 0.66);\r\n background-clip: content-box;\r\n}\r\n' - const beautifyButtonCSS = '/* 美化按钮 */\r\ninput[type="submit"],\r\nbutton {\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n line-height: 1;\r\n height: 32px;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n /* color: #606266; */\r\n text-align: center;\r\n box-sizing: border-box;\r\n outline: none;\r\n transition: 0.1s;\r\n font-weight: 500;\r\n user-select: none;\r\n vertical-align: middle;\r\n -webkit-appearance: none;\r\n background-color: #ffffff;\r\n border: 1px solid #dcdfe6;\r\n border-color: #dcdfe6;\r\n padding: 8px 15px;\r\n font-size: 14px;\r\n border-radius: 4px;\r\n}\r\n\r\ninput[type="submit"]:hover,\r\ninput[type="submit"]:focus,\r\nbutton:hover,\r\nbutton:focus {\r\n color: #409eff;\r\n border-color: #c6e2ff;\r\n background-color: #ecf5ff;\r\n outline: none;\r\n}\r\n\r\ninput[type="url"] {\r\n position: relative;\r\n font-size: 14px;\r\n display: inline-flex;\r\n line-height: 32px;\r\n box-sizing: border-box;\r\n vertical-align: middle;\r\n -webkit-appearance: none;\r\n /* color: #606266; */\r\n padding: 0;\r\n outline: none;\r\n border: none;\r\n background: none;\r\n flex-grow: 1;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 1px 11px;\r\n background-color: #ffffff;\r\n background-image: none;\r\n border-radius: 4px;\r\n cursor: text;\r\n transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\r\n transform: translateZ(0);\r\n box-shadow: 0 0 0 1px #dcdfe6 inset;\r\n\r\n width: 100%;\r\n width: -moz-available;\r\n width: -webkit-fill-available;\r\n width: fill-available;\r\n}\r\n\r\ninput[type="url"]::placeholder {\r\n color: #a8abb2;\r\n}\r\n\r\ninput[type="url"]:hover {\r\n box-shadow: 0 0 0 1px #c0c4cc inset;\r\n}\r\n\r\ninput[type="url"]:focus {\r\n box-shadow: 0 0 0 1px #409eff inset;\r\n}\r\n' - const beautifyRadioCSS = 'label.radio-label {\r\n font-weight: 500;\r\n position: relative;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n white-space: normal;\r\n outline: none;\r\n font-size: 14px;\r\n user-select: none;\r\n margin-right: 32px;\r\n height: 32px;\r\n padding: 4px;\r\n border-radius: 4px;\r\n box-sizing: border-box;\r\n}\r\nlabel:has(input[type="radio"]:checked),\r\nlabel:has(input[type="radio"]:checked) a {\r\n color: #409eff;\r\n}\r\nlabel.radio-label input[type="radio"] {\r\n margin-right: 4px;\r\n width: 14px;\r\n height: 14px;\r\n}\r\nlabel.radio-label input[type="radio"]:checked {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n border-radius: 50%;\r\n width: 14px;\r\n height: 14px;\r\n outline: none;\r\n border: 4px solid #409eff;\r\n cursor: pointer;\r\n}\r\nlabel.radio-label input[type="radio"]:checked + span {\r\n color: #409eff;\r\n}\r\n' - const beautifyTextAreaCSS = "textarea {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n vertical-align: bottom;\r\n font-size: 14px;\r\n position: relative;\r\n display: block;\r\n resize: vertical;\r\n padding: 5px 11px;\r\n line-height: 1.5;\r\n box-sizing: border-box;\r\n width: 100%;\r\n font-size: inherit;\r\n font-family: inherit;\r\n /* color: #606266; */\r\n background-color: #ffffff;\r\n background-image: none;\r\n -webkit-appearance: none;\r\n box-shadow: 0 0 0 1px #dcdfe6 inset;\r\n border-radius: 4px;\r\n transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\r\n border: none;\r\n}\r\ntextarea:focus {\r\n outline: none;\r\n box-shadow: 0 0 0 1px #409eff inset;\r\n}\r\n" - const beautifyVersionsPageCSS = 'ul.history_versions,\r\nul.history_versions li {\r\n width: 100%;\r\n}\r\nul.history_versions li {\r\n display: flex;\r\n flex-direction: column;\r\n margin: 25px 0px;\r\n}\r\n.diff-controls input[type="radio"]:nth-child(2) {\r\n margin-left: 5px;\r\n}\r\n.flex-align-item-center {\r\n display: flex;\r\n align-items: center;\r\n}\r\n.script-tag {\r\n margin-bottom: 8px;\r\n}\r\n.script-tag-version a {\r\n color: #656d76;\r\n fill: #656d76;\r\n text-decoration: none;\r\n width: fit-content;\r\n width: -moz-fit-content;\r\n}\r\n.script-tag-version a:hover svg {\r\n color: #00a3f5;\r\n fill: #00a3f5;\r\n}\r\n.script-tag-version a > span {\r\n margin-left: 0.25rem;\r\n}\r\n.script-note-box-body {\r\n border-radius: 0.375rem;\r\n border-style: solid;\r\n border-width: max(1px, 0.0625rem);\r\n border-color: #d0d7de;\r\n color: #1f2328;\r\n padding: 16px;\r\n overflow-wrap: anywhere;\r\n}\r\n.script-note-box-body p {\r\n margin-bottom: unset;\r\n}\r\n' - const beautifyUploadImageCSS = '/* 隐藏 添加: */\r\nlabel[for="discussion_comments_attributes_0_attachments"],\r\nlabel[for="comment_attachments"] {\r\n display: none;\r\n}\r\ninput[type="file"] {\r\n width: 100%;\r\n font-size: 20px;\r\n background: #e2e2e2;\r\n padding: 40px 0px;\r\n border-radius: 10px;\r\n text-align-last: center;\r\n}\r\n' - const compatibleBeautifyCSS = "#main-header {\r\n background-color: #670000 !important;\r\n background-image: linear-gradient(#670000, #990000) !important;\r\n}\r\n#site-nav-vue {\r\n flex-wrap: wrap;\r\n justify-content: flex-end;\r\n}\r\n.open-sidebar {\r\n border-width: 1px;\r\n border-radius: 3px;\r\n margin-right: 0;\r\n}\r\ninput.search-submit {\r\n transform: translateY(-5%) !important;\r\n margin-left: 10px;\r\n}\r\n#script-content code {\r\n word-wrap: break-word;\r\n}\r\n.code-container ::selection {\r\n background-color: #3d4556 !important;\r\n}\r\n" - if (usercssto) { - GM_addStyle(` -${beautifyMarkdownCSS} -${beautifyButtonCSS} -${beautifyRadioCSS} -${beautifyTextAreaCSS} -${beautifyVersionsPageCSS} -${beautifyUploadImageCSS} -${compatibleBeautifyCSS} - `) - // 添加 CSS 样式到页面 - } - //STUB - 美化版本列表边框 - function beautifyChangelog() { - document.querySelectorAll(".version-changelog").forEach(element => { - element.style.cssText = ` - border: 2px solid #4CAF50; /* 绿色边框 */ - border-radius: 8px; /* 边框圆角 */ - padding: 10px; /* 内边距 */ - background-color: #f9f9f9; /* 背景颜色 */ - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 阴影效果 */ - font-family: Arial, sans-serif; /* 字体样式 */ - color: #333; /* 文字颜色 */ - ` - }) - } - function replaceVersionLinks() { - // 选择所有的包含版本号的 元素 - const versionLinks = document.querySelectorAll('#script-content > form > ul a[rel="nofollow"]') - versionLinks.forEach((versionLink) => { - // 提取版本号文本和 href 链接 - const versionNumber = versionLink.textContent.trim() - const versionUrl = versionLink.getAttribute('href') - // 创建新的
      元素 - const newDiv = document.createElement('div') - newDiv.className = 'script-tag-version' - newDiv.innerHTML = ` - - - - - ${versionNumber} - - ` - // 替换原来的 元素 - versionLink.parentNode.replaceChild(newDiv, versionLink) - }) - } - // 调用函数来执行替换操作 - //STUB - 下载历史版本 - if (window.location.href.includes('versions') && installforversions) { - beautifyChangelog()//m美化日志 - replaceVersionLinks()//美化信息边框 - window.addEventListener('load', function () { - fetchHistoryVersions() - }, false) - } - function fetchHistoryVersions() { - var jsonLink = document.querySelector('link[href$=".json"]') - var currentUrl = window.location.href - // 在 `versions` 后面添加 `.json` - var jsonUrl = currentUrl.replace(/(\/versions)([^\/]*)$/, '$1.json$2') - if (jsonUrl) { - fetch(jsonUrl) - .then(response => response.json()) - .then(data => { - logMessage('fetchHistoryVersions', '历史版本', true, data) - createHistoryLinks(data) - }) - .catch(error => { - logMessage('fetchHistoryVersions', 'Error fetching JSON:', true, error) - }) - } else { - logMessage('fetchHistoryVersions', 'JSON link element not found', true) - } - } - function createHistoryLinks(jsonData) { - var ulElement = document.querySelector("#script-content > form > ul") - if (ulElement) { - logMessage('createHistoryLinks', 'Parent element found:', true, ulElement) - // Iterate over each version in JSON data - jsonData.forEach(function (versionInfo, index) { - // console.log("Version info " + (index + 1) + ":", versionInfo); - // Create link element - var link = document.createElement('a') - link.href = versionInfo.code_url // 设置链接地址为当前版本的 url - link.textContent = translate('install') // 设置链接文本为 "安装" - var link2 = document.createElement('a') - link2.href = '#' // 设置链接地址为 "#",这里假设点击后执行下载操作 - link2.textContent = translate('download') // 设置链接文本为 "下载" - link2.style.color = 'bule' // 请根据需要设置具体的颜色值b - link2.setAttribute('download', '') // 设置下载属性,空字符串表示使用默认文件名 - // 创建一个容器元素 - var container = document.createElement('div') - // 设置容器样式,这里通过CSS来控制间距 - container.style.display = 'flex' // 使用flex布局 - container.style.gap = '10px' // 设置链接元素之间的间距为20px - // 将链接元素添加到容器中 - container.appendChild(link) - container.appendChild(link2) - // Find corresponding .diff-controls element (assuming index corresponds to the order) - var diffControls = ulElement.querySelectorAll(".diff-controls") - if (index < diffControls.length) { - var diffControl = diffControls[index] - diffControl.insertAdjacentElement('beforebegin', container) - link2.addEventListener('click', function (event) { - event.preventDefault() // 阻止默认的链接跳转行为 - var name = getFilenameFromUrl(versionInfo.code_url) - name = name.replace(/\?version=\d+/g, '') - link2.textContent = translate('downloading') // 修改链接文本为 "下载中..." - link2.style.pointerEvents = 'none' // 禁用点击事件,防止重复点击 - link2.blur() // 让链接失去焦点 - downloadFile(versionInfo.code_url, name, function (error) { - // 下载完成后执行的操作 - if (error) { - link2.textContent = translate('download') // 恢复链接文本为 "下载" - link2.style.pointerEvents = 'auto' // 恢复点击事件 - // 如果下载失败,处理错误情况 - Toast(error.message, 3000, '#ff6347', '#ffffff', 'top') - // 可以进行其他错误处理,例如显示错误消息给用户 - } else { - // 下载成功后执行的操作 - link2.textContent = translate('download') // 恢复链接文本为 "下载" - link2.style.pointerEvents = 'auto' // 恢复点击事件 - link2.focus() // 让链接重新获取焦点,给用户一种下载完成的感觉 - } - }) - }, 2) - } else { - logMessage('createHistoryLinks', '找不到版本信息对应的 .diff-controls 元素', false, versionInfo) - } - }) - } else { - logMessage('createHistoryLinks', '找不到父元素', false) - } - } - //STUB - 脚本详情页增加作者所有脚本 - function createAuthorScriptsLink() { - // 检查是否已经存在作者其他脚本链接 - if (document.querySelector('[data-author-scripts-link]')) { - // 如果已经存在,则添加点击事件监听器 - document.querySelector('[data-author-scripts-link]').addEventListener('click', function (event) { - event.preventDefault() - switchToAuthorScript() // 调用 switchToAuthorScript 函数 - }) - return // 结束函数,不再继续执行 - } - // 创建新的链接元素 - var newLink = document.createElement('a') - newLink.textContent = translate('dallScripts') - newLink.setAttribute('href', '#') - newLink.setAttribute('data-author-scripts-link', '') // 添加标记 - // 获取或创建用于显示新链接的容器 li 元素 - var targetLi = document.querySelector('#script-links > li:first-child') - // 检查目标 li 元素是否存在,如果存在则添加新的 li 元素和链接 - if (targetLi) { - var newLi = document.createElement('li') - newLi.appendChild(newLink) - targetLi.insertAdjacentElement('afterend', newLi) - } else { - logMessage('createAuthorScriptsLink', '找不到目标 li 元素。', false) - } - // 添加点击事件监听器 - newLink.addEventListener('click', function (event) { - event.preventDefault() - switchToAuthorScript() // 调用 switchToAuthorScript 函数 - }) - } - if (/\/scripts\/\d+[^\s\/\\]*\/?/.test(location.href)) { - createAuthorScriptsLink() - } - async function getUserJSON(urls) { - try { - // 使用Promise.all并行获取多个JSON数据 - logMessage('用户信息', 'JSON地址', true, urls) - const responses = await Promise.all(urls.map(url => fetch(url))) - const jsonResults = await Promise.all(responses.map(response => response.json())) - // 将所有数据合并到一个数组中 - const allScripts = jsonResults.reduce((acc, curr) => { - return acc.concat(curr.all_listable_scripts || curr.scripts) - // return acc.concat(curr.all_listable_scripts); - }, []) - // 返回合并后的JSON数组 - return allScripts - } catch (error) { - logMessage('getUserJSON', '错误', false, error) - throw error // 抛出错误以便上层处理 - } - } - function getUserIdFormJson(jsonlink) { - return fetch(jsonlink) - .then(response => response.json()) - .catch(error => { - logMessage('fetchJSON', '获取或解析 JSON 时出错:', false, error) - throw error - }) - } - function getUserIdFromAuthorLink(selector) { - const link = document.querySelector(`${selector} a`) - const match = link ? link.href.match(/(\d+)/) : null - return match ? parseInt(match[1], 10) : null - } - function switchToAuthorScript() { - let scriptDetail = [] //从脚本提取用户名称 - var useridformlink = getUserIdFromAuthorLink("#script-stats > dd.script-show-author") - var textContents = getDtContents("#script-stats") - var jsonlink = null - const currentUrl = window.location.href // 获取当前页面的 URL - const match2 = currentUrl.match(/\/scripts\/(\d+)/) - if (useridformlink) { - const userscripts = ['https://greasyfork.org/zh-CN/users/' + useridformlink + '.json'] - logMessage('switchToAuthorScript', '用户主页地址', false, userscripts) - getUserJSON(userscripts) - .then(mergedData => { - const scrName = document.querySelector("#script-stats > dd.script-show-author > span > a").textContent - insertUserScript(mergedData, { name: scrName }, textContents) - }) - .catch(error => { - // 处理错误情况 - logMessage('switchToAuthorScript', '获取或解析 JSON 时出错:', false, error) - }) - } else { - if (!match2) { - logMessage('switchToAuthorScript', '无法从当前 URL 中提取脚本 ID', false, '错误') - return - } - jsonlink = 'https://greasyfork.org/zh-CN/scripts/' + match2[1] + '.json' - getUserIdFormJson(jsonlink) - .then(data => { - scriptDetail = data.users[0] - const userscripts = ['https://greasyfork.org/zh-CN/users/' + scriptDetail.id + '.json'] - logMessage('switchToAuthorScript', '用户主页地址', false, userscripts) - return getUserJSON(userscripts) - }) - .then(mergedData => { - // 调用封装后的函数处理 `mergedData` - insertUserScript(mergedData, scriptDetail, textContents) - }) - .catch(error => { - // 处理错误情况 - logMessage('switchToAuthorScript', '获取或解析 JSON 时出错:', false, error) - }) - } - } - //STUB - 主页显示统计 - const userHeader = document.querySelector('#about-user h2') - if (userHeader && shouwtotalonuserpage) { - var userId = window.location.href.match(/\d+/)?.[0] - userId = `https://greasyfork.org/zh-CN/users/${userId}.json` - getUserJSON([userId]) - .then(mergedData => { - const userHeader = document.querySelector('#about-user h2') - // insertUserScript(mergedData, { name: scrName }, textContents) - const totala = generateStatsHtml(mergedData, '#ffcc00', true) - userHeader.insertAdjacentHTML('afterend', ` -
      ${totala}
      - `) - }) - .catch(error => { - // 处理错误情况 - logMessage('switchToAuthorScript', '获取或解析 JSON 时出错:', false, error) - }) - } - function generateStatsHtml(scriptData, color = '#ffcc00', plainText = false) { - const cssCount = scriptData.filter(obj => obj.code_url.endsWith('.css')).length - const jsCount = scriptData.filter(obj => obj.code_url.endsWith('.js')).length - const LatestCreated = new Date(Math.max(...scriptData.map(obj => new Date(obj.created_at)))) - const LatestUpdated = new Date(Math.max(...scriptData.map(obj => new Date(obj.code_updated_at)))) - const ok = scriptData.reduce((acc, obj) => acc + parseInt(obj.ok_ratings, 10), 0) - const bad = scriptData.reduce((acc, obj) => acc + parseInt(obj.bad_ratings, 10), 0) - const good = scriptData.reduce((acc, obj) => acc + parseInt(obj.good_ratings, 10), 0) - const DailyTotal = scriptData.reduce((acc, obj) => acc + parseInt(obj.daily_installs, 10), 0) - const TotalInstalls = scriptData.reduce((acc, obj) => acc + parseInt(obj.total_installs, 10), 0) - const stats = [ - { label: translate('JSScripts'), count: jsCount }, - { label: translate('CSSScripts'), count: cssCount }, - { label: translate('dallScripts'), count: scriptData.length }, - { label: translate('DailyTotal'), count: DailyTotal }, - { label: translate('TotalInstalls'), count: TotalInstalls }, - { label: translate('ok'), count: ok }, - { label: translate('bad'), count: bad }, - { label: translate('good'), count: good } - ] - return stats.map(stat => plainText - ? `
      ${stat.label} ${stat.count.toLocaleString()}
      ` - : ` - - - ${stat.label} ${stat.count.toLocaleString()} -
      `).join('') - } - //插入所有脚本内容函数 - function insertUserScript(scriptData, scr, textContents) { - // 计算各项统计 - const statsHtml = generateStatsHtml(scriptData) - const backup = document.querySelector('#script-info').innerHTML - beautifyUserScript() - document.querySelector('#script-info').innerHTML = ` -
      -
      -

      ${scr.name}: ${translate('dallScripts')} - -

      -
      -
      - ${statsHtml} -
      -
        -
      -
      - ` - // 绑定关闭按钮事件 - document.getElementById('close-button').addEventListener('click', restoreBackup) - // 处理下载链接点击事件 - document.addEventListener('click', function (event) { - // 查找被点击的 `.install-link.down` 链接 - const link = event.target.closest('a.install-link.down') - // 如果没有找到链接,直接返回 - if (!link) return - // 阻止默认行为,如跳转到下载链接 - event.preventDefault() - event.stopPropagation() - toggleDownloadIcon(link, true) - // 获取文件名 - const filename = getFilenameFromUrl(link.href) - // 调用下载文件的函数 - downloadFile(link.href, filename, function (error) { - // 下载完成后执行的操作 - if (error) { - Toast(error.message, 3000, '#ff6347', '#ffffff', 'top') - } else { - link.textContent = "下载" - } - }, 2) - }) - // 动态插入列表项 - scriptData.forEach(scriptDetails => { - const scriptHtml = createScriptInfoHtml(scriptDetails, scr.name, scr.url, textContents) - document.querySelector('#browse-script-list').insertAdjacentHTML('beforeend', scriptHtml) - const installLinks = document.querySelectorAll('#browse-script-list .install-link:not(.down)') - const installLink = installLinks[installLinks.length - 1] - checkVersionInfo(`https://greasyfork.org/scripts/${scriptDetails.id}.json`, installLink, scriptDetails.version) - }) - function restoreBackup() { - document.querySelector('#script-info').innerHTML = backup - createAuthorScriptsLink() - } - } - //给所有脚本页面增加下CSS美化下 - function beautifyUserScript() { - GM_addStyle(` - [style-54998] { - float: right; - font-size: 70%; - text-decoration: none; - } - input[type="submit"], -button { - display: inline-flex; - justify-content: center; - align-items: center; - line-height: 1; - height: 32px; - white-space: nowrap; - cursor: pointer; - text-align: center; - box-sizing: border-box; - outline: none; - transition: 0.1s; - font-weight: 500; - user-select: none; - vertical-align: middle; - -webkit-appearance: none; - background-color: #ff6666; /* 红色背景 */ - border: 1px solid #ff6666; /* 红色边框 */ - padding: 8px 15px; - font-size: 14px; - color: #ffffff; /* 白色文字 */ - border-radius: 4px; -} -button:hover, -button:focus { - color: #ffffff; /* 白色文字 */ - border-color: #ff0000; /* 淡红色边框 */ - background-color: #ff0000; /* 淡红色背景 */ - outline: none; -} -.badge { - /* 通用的徽章样式 */ - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; -} -.badge-css { - background-color: #254bdd; - color: #fff -} -.badge-js { - /* JavaScript 相关的徽章样式 */ - background-color: #efd81d; /* 蓝色背景 */ - color: #fff; /* 白色文字 */ - padding: 0.2em 0.4em; /* 调整内边距 */ - margin-left: 5px; /* 可选:左侧间距 */ -} - `) - } - //从信息页面获取,如果在其他如代码页等失效。 - function getDtContents(selector) { - const elements = document.querySelectorAll(`${selector} > dt`) - const dtContents = Array.from(elements) - .map(element => element.textContent.trim()) - return dtContents - } - //构建HTML内容 - function createScriptInfoHtml(scriptDetails, fname, fuRl, tran) { - // 解构传入的脚本详情对象 - const { - url, - name, - description, - created_at, - code_updated_at, - daily_installs, - total_installs, - good_ratings, - ok_ratings, - bad_ratings, - code_url, - version, - fan_score, - license - } = scriptDetails - const extension = code_url.substring(code_url.lastIndexOf('.') + 1) - // logMessage('createScriptInfoHtml', '翻译', true,tran); - let badgeContent = '' - let badgeClass = '' - if (extension === 'js') { - badgeContent = 'JS' - badgeClass = 'badge-js' - } else if (extension === 'css') { - badgeContent = 'CSS' - badgeClass = 'badge-css' - } - // 构建 HTML 结构 - const scriptInfoHtml = ` -
    3. -

      - ${name} - ${badgeContent} - ${translate('install')} ${version} - 下载 - - -
      - - ${description} - -

      -
      -
      -
      ${translate('viewauthor')}
      -
      ${fname}
      -
      ${translate('viewdaily_installs')}
      -
      ${daily_installs}
      -
      ${translate('tviewotal_installs')}
      -
      ${total_installs}
      -
      ${translate('viewfan_score')}
      -
      ${good_ratings} - ${ok_ratings} - ${bad_ratings} -
      -
      ${translate('viewversion')}
      -
      ${version}
      -
      ${translate('viewcreated_at')}
      -
      2024-06-26
      -
      ${translate('viewcode_updated_at')}
      -
      2024-06-26
      -
      ${translate('viewlicense')}
      -
      ${license}
      -
      -
      -
    4. - ` - // checkVersionInfo(`https://greasyfork.org/scripts/${scriptid}.json`, installLink, version) - return scriptInfoHtml - } - //STUB - 锁定语言 greasyfork.org/scripts/6245/ - if (setlocklang) { - let valuehe = '' - if (window.location.origin == 'https://greasyfork.org') { - valuehe = 'language' - } else if (window.location.origin == 'https://sleazyfork.org') { - valuehe = 'language_sleasy' - } else { - // 如果没有匹配的情况,可以设置一个默认值 - valuehe = 'language' - } - var language = GM_getValue(valuehe, 'en') - maybeRedirect(location) - window.addEventListener('load', function _() { - window.removeEventListener('load', _) - var _timer, _title - document.getElementById('language-selector-locale').addEventListener('change', function () { - GM_setValue(valuehe, this.value) - _title = _title || this.title - this.title = this.value + ' saved in ' + GM_info.script.name - clearTimeout(_timer) - _timer = setTimeout(function () { - this.title = _title - _title = null - }, 5000) - }) - }) - window.addEventListener('mousedown', function (e) { - var a = e.target.closest('a') - if (a && - (a.origin === 'https://greasyfork.org' || a.origin === 'https://sleazyfork.org') && - a.pathname.lastIndexOf('/system/', 0) < 0 && - !a.pathname.match(/\/code\/.*?\.user\.(js|css)/)) - maybeRedirect(a) - }, true) - function makeRedirectedUrl(url) { - var m = url.href.split('/') - if (!/^\w\w(?:-\w\w)?$/.test(m[3])) - m.splice(3, 0, '') - if (m[3] === language) - return url.href - m[3] = language - var newUrl = m.join('/').replace(/&?locale_override[^&]*/, '').replace(/\?$/, '') - var noOvr = m[4] === 'forum' || m[4] === 'scripts' && /^\D|^$/.test(m[5]) - return noOvr ? newUrl : newUrl + (newUrl.indexOf('?') > 0 ? '&' : '?') + 'locale_override=1' - } - function maybeRedirect(url) { - var newUrl = makeRedirectedUrl(url) - if (newUrl === url.href || - document.referrer && makeRedirectedUrl({ - href: document.referrer - }) === newUrl) - return - Toast(translate('locklang', language) + language, 1000, '#0000ff', '#ffffff', 'top') - url.href = newUrl - } - } - // 添加Bootstrap CSS - function addScopedStyles() { - GM_addStyle(` - /* 模态框整体样式 */ - #settingsModal { - display: none; - position: fixed; - z-index: 1000; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - width: 90%; - max-width: 800px; - background-color: white; - border: 1px solid #ccc; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - border-radius: 8px; - overflow: hidden; - font-family: Arial, sans-serif; - } - /* 模态框标题栏和底部按钮样式 */ - #settingsModal .modal-header, #settingsModal .modal-footer { - padding: 0.75rem; - border-bottom: 1px solid #eee; - background-color: #f8f9fa; - } -#settingsModal .form-control, -#settingsModal .form-check-label { - font-size: 16px; /* 这里可以设置你想要的字体大小 */ -} - #settingsModal .modal-footer { - border-top: none; - text-align: right; - } - /* 关闭按钮样式 */ - #settingsModal .close { - position: absolute; - top: 0.5rem; - right: 0.5rem; - font-size: 1.5rem; - color: #dc3545; - opacity: 0.7; - } - #settingsModal .close:hover { - opacity: 1; - } - /* 模态框内容样式 */ - #settingsModal .modal-body { - padding: 1rem; - } - /* 导航菜单样式 */ - #settingsModal .nav { - display: flex; - flex-direction: column; - gap: 0.5rem; - } - #settingsModal .nav-item { - margin-bottom: 0; - } - #settingsModal .nav-link { - cursor: pointer; - padding: 0.5rem 1rem; - border: none; - border-radius: 0; - color: #007bff; - background-color: transparent; - } - #settingsModal .nav-link.active { - background-color: #007bff; - color: white; - } - /* Tab内容样式 */ - #settingsModal .tab-content > .tab-pane { - display: none; - } - #settingsModal .tab-content > .tab-pane.active { - display: block; - } - /* 表单控件样式 */ - #settingsModal .form-group { - margin-bottom: 1rem; - } - #settingsModal .form-check-input { - margin-top: 0.25rem; - } - /* 按钮样式 */ - #settingsModal .btn { - padding: 0.5rem 1rem; - margin: 0.25rem; - font-size: 0.9rem; - border-radius: 4px; - } - #settingsModal .btn-secondary { - background-color: #6c757d; - border-color: #6c757d; - } - #settingsModal .btn-secondary:hover { - background-color: #5a6268; - border-color: #545b62; - } - #settingsModal .btn-primary { - background-color: #007bff; - border-color: #007bff; - } - #settingsModal .btn-primary:hover { - background-color: #0069d9; - border-color: #0062cc; - } - .nav-link { - white-space: nowrap; - } .close:focus { - background-color: red; -} -.close:hover { - background-color: red; -} -#settingsTabs { - list-style-type: none; /* 去掉列表项前的小黑点 */ - padding-left: 0; /* 去掉左侧内边距 */ - margin: 0; /* 去掉外边距 */ -} -/* 自定义的栅格系统 */ -.row { - display: flex; - flex-wrap: wrap; -} -.col-md-1 { flex: 0 0 8.33%; max-width: 8.33%; } -.col-md-2 { flex: 0 0 16.66%; max-width: 16.66%; } -.col-md-3 { flex: 0 0 25%; max-width: 25%; } -.col-md-4 { flex: 0 0 33.33%; max-width: 33.33%; } -.col-md-5 { flex: 0 0 41.66%; max-width: 41.66%; } -.col-md-6 { flex: 0 0 50%; max-width: 50%; } -.col-md-7 { flex: 0 0 58.33%; max-width: 58.33%; } -.col-md-8 { flex: 0 0 66.66%; max-width: 66.66%; } -.col-md-9 { flex: 0 0 75%; max-width: 75%; } -.col-md-10 { flex: 0 0 83.33%; max-width: 83.33%; } -.col-md-11 { flex: 0 0 91.66%; max-width: 91.66%; } -.col-md-12 { flex: 0 0 100%; max-width: 100%; } -@media (max-width: 600px) {//NOTE - 修正在移动设备上显示错乱问题 - #settingsModal { - width: 100%; - max-width: 100%; - padding: 1rem; - } - #settingsModal .modal-header, - #settingsModal .modal-footer { - padding: 0.5rem; - } - #settingsModal .modal-body { - padding: 0.5rem; - } - #settingsModal .nav-link { - padding: 0.25rem 0.5rem; - font-size: 14px; - } - #settingsModal .form-control, - #settingsModal .form-check-label { - font-size: 14px; - } - /* 强制不折行 */ - .nav-link { - white-space: nowrap; - } - #settingsModal .nav { - width: 30%; /* 缩小分类切换栏的宽度 */ - } - #settingsModal .nav-link { - font-size: 12px; /* 缩小字体 */ - } - #settingsModal .tab-content { - width: 70%; /* 增加内容区域的宽度 */ - } -} - `) - } - // 控件数据示例 - // 创建模态框的HTML结构 - const modalHTML = ` - - - ` - $('#closeModal').click(function () { - $('#settingsModal').hide() - }) - // 将模态框HTML添加到页面 - $('body').prepend(modalHTML) - // 封装函数:创建分类 - function createCategory(id, name, controls, controlsPerRow = 1) { - const tabId = `${id}-tab` - const tabPaneId = id - // 计算每列的宽度 - const colWidth = Math.floor(12 / controlsPerRow) - // 添加Tab项 - $('#settingsTabs').append(` - -`) - // 添加Tab内容 - $('#settingsTabsContent').append(` -
      -
      -
      -
      - ${controls.map(control => generateControlHTML(control, colWidth)).join('')} -
      -
      -
      -
      - `) - // 绑定事件 - controls.forEach(control => { - if (control.onclick) { - $(`#${control.id}`).click(control.onclick) - } - if (control.onchange) { - $(`#${control.id}`).change(control.onchange) - } - }) - // 初始化第一个分类为激活状态 - if ($('#settingsTabs .nav-link.active').length === 0) { - $(`#${tabId}`).addClass('active') - $(`#${tabPaneId}`).addClass('show active') - } - } - // 生成控件HTML,并指定每列的宽度 - function generateControlHTML(control, colWidth) { - switch (control.type) { - case 'link': - return ` -
      - -
      - ` - case 'label': - return ` -
      -
      - -
      -
      - ` - case 'checkbox': - return ` -
      -
      - - -
      -
      - ` - case 'text': - return ` -
      -
      - - -
      -
      - ` - case 'button': - return ` -
      - -
      - ` - case 'textarea': - return ` -
      -
      - - -
      -
      - ` - case 'select': - return ` -
      -
      - - -
      -
      - ` - case 'divider': - return ` -
      -
      -
      - ` - default: - return '' - } - } - // 初始化模态框 - $(document).ready(function () { - $('#settingsModal').on('shown.bs.modal', function () { - addScopedStyles() - }) - $('#settingsModal').on('hidden.bs.modal', function () { - saveSettings() - }) - $('#settingsTabs').on('click', '.nav-link', function (e) { - e.preventDefault() - $('.nav-link').removeClass('active') - $('.tab-pane').removeClass('show active') - $(this).addClass('active') - $($(this).attr('href')).addClass('show active') - }) - }) - // 保存设置 - function saveSettings() { - // 遍历每个控件 - $('#settingsTabsContent').find('input, select').each(function () { - const element = this - const controlId = element.id - const controlType = element.type - // 根据控件类型保存值 - if (updateAndSetValue === 'checkbox') { - GM_setValue(controlId, element.checked) - } else if (controlType === 'text' || controlType === 'number' || controlType === 'select-one') { - updateAndSetValue(controlId, element.value) - } - }) - // 弹出提示或执行其他操作 - // alert('设置已保存'); - } - // 显示模态框 - function showSettingsModal() { - // $('body').addClass('modal-open'); - $('#settingsModal').modal('show') - } - $('#closeXSettings').on('click', function () { - $('#settingsModal').modal('hide') - }) - $('#closeSettings').on('click', function () { - $('#settingsModal').modal('hide') - }) - // 保存设置按钮事件 - $('#saveSettings').on('click', function () { - saveSettings() - $('#settingsModal').modal('hide') - }) - const viewMode = isMobileDevice() ? 1 : 2 - //FIXME - 修改设置 - // 使用封装函数创建分类 - createCategory('category1', translate('脚本详情'), [ - { type: 'checkbox', id: 'sethtmlview', label: translate('htmlViewtotext'), checked: sethtmlview, onchange: function () { updateAndSetValue('sethtmlview', this.checked) } }, - { type: 'checkbox', id: 'setcopylink', label: translate('copyto'), checked: setcopylink, onchange: function () { updateAndSetValue('setcopylink', this.checked) } }, - { type: 'checkbox', id: 'viewicon', label: translate('showIcon'), checked: viewicon, onchange: function () { updateAndSetValue('viewicon', this.checked) } }, - { type: 'button', id: 'clear-icon-cache', text: `${translate('cleariconcache')} ${Object.keys(JSON.parse(GM_getValue('scriptsIcon', '{}'))).length}`, class: 'btn-danger', onclick: () => { GM_setValue('scriptsIcon', JSON.stringify({})); Toast('success', 1000, '#0000ff', '#ffffff', 'top') } }, - { type: 'checkbox', id: 'installforversions', label: translate('scriptHisAddInstall'), checked: installforversions, onchange: function () { updateAndSetValue('installforversions', this.checked) } }, - { type: 'checkbox', id: 'addbutton', label: translate('addDownButton'), checked: addbutton, onchange: function () { updateAndSetValue('addbutton', this.checked) } }, - { type: 'checkbox', id: 'showtotal', label: translate('scriptLinNumb'), checked: showtotal, onchange: function () { updateAndSetValue('showtotal', this.checked) } }, - { type: 'checkbox', id: 'addCopyButtonBeforelibScript', label: translate('copylib'), checked: addCopyButtonBeforelibScript, onchange: function () { updateAndSetValue('addCopyButtonBeforelibScript', this.checked) } }, - { type: 'checkbox', id: 'showresource', label: translate('displaycitationcount'), checked: showresource, onchange: function () { updateAndSetValue('showresource', this.checked) } }, - { type: 'checkbox', id: 'copyshortlink', label: translate('复制短链接'), checked: copyshortlink, onchange: function () { updateAndSetValue('copyshortlink', this.checked) } }, - { type: 'checkbox', id: 'useHighlighting', label: translate('beautifycodesnippets'), checked: useHighlighting, onchange: function () { updateAndSetValue('useHighlighting', this.checked) } }, - { type: 'checkbox', id: 'useHighlighttocode', label: translate('beautifycodeview'), checked: useHighlighttocode, onchange: function () { updateAndSetValue('useHighlighttocode', this.checked) } }, - { - type: 'select', - id: 'lockmode', - label: translate('beautifycodetheme'), - placeholder: 'Select...', - options: [ - { value: '0', text: translate('followsystem'), selected: true }, - { value: '1', text: translate('nightmode'), selected: false }, - { value: '2', text: translate('daymode'), selected: false }, - { value: 'Tomorrow-Night', text: 'Tomorrow-Night', selected: false }, - { value: 'Tomorrow-Night-Eighties', text: 'Tomorrow-Night-Eighties', selected: false }, - { value: 'Tomorrow-Night-Blue', text: 'Tomorrow-Night-Blue', selected: false }, - { value: 'Tomorrow-Night-Bright', text: 'Tomorrow-Night-Bright', selected: false }, - { value: 'Vibrant-Ink', text: 'Vibrant-Ink', selected: false }, - { value: 'Hemisu-Dark', text: 'Hemisu-Dark', selected: false }, - { value: 'Tranquil-Heart', text: 'Tranquil-Heart', selected: false }, - { value: 'Atelier-Dune-Dark', text: 'Atelier-Dune-Dark', selected: false }, - { value: 'Atelier-Estuary-Dark', text: 'Atelier-Estuary-Dark', selected: false }, - { value: 'Atelier-Forest-Dark', text: 'Atelier-Forest-Dark', selected: false }, - { value: 'Atelier-Heath-Dark', text: 'Atelier-Heath-Dark', selected: false }, - { value: 'Atelier-Lakeside-Dark', text: 'Atelier-Lakeside-Dark', selected: false }, - { value: 'Atelier-Plateau-Dark', text: 'Atelier-Plateau-Dark', selected: false }, - { value: 'Atelier-Savanna-Dark', text: 'Atelier-Savanna-Dark', selected: false }, - { value: 'Atelier-Seaside-Dark', text: 'Atelier-Seaside-Dark', selected: false }, - { value: 'Atelier-Sulphurpool-Dark', text: 'Atelier-Sulphurpool-Dark', selected: false }, - { value: 'Desert', text: 'Desert', selected: false }, - { value: 'Sunburst', text: 'Sunburst', selected: false }, - { value: 'Sons-Of-Obsidian', text: 'Sons-Of-Obsidian', selected: false } - ], - onchange: thandleSelectChange('lockmode') - } - ], viewMode) - createCategory('category2', translate('导航栏'), [ - { type: 'checkbox', id: 'Postlink', label: translate('addNewScript'), checked: Postlink, onchange: function () { updateAndSetValue('Postlink', this.checked) } }, - { type: 'checkbox', id: 'jumpto', label: translate('jumpTo18'), checked: jumpto, onchange: function () { updateAndSetValue('jumpto', this.checked) } }, - { type: 'checkbox', id: 'HeaderStyleFix', label: translate('fixNavbar'), checked: HeaderStyleFix, onchange: function () { updateAndSetValue('HeaderStyleFix', this.checked) } }, - { type: 'checkbox', id: 'setopenindoc', label: translate('openindoc'), checked: setopenindoc, onchange: function () { updateAndSetValue('setopenindoc', this.checked) } }, - { type: 'checkbox', id: 'wightnav', label: translate('barvertical'), checked: wightnav, onchange: function () { updateAndSetValue('wightnav', this.checked) } }, - { type: 'checkbox', id: 'Expandsubmenu', label: translate('expandmore'), checked: Expandsubmenu, onchange: function () { updateAndSetValue('Expandsubmenu', this.checked) } }, - { type: 'checkbox', id: 'beautifyTopNav', label: translate('beautifyTopNav'), checked: beautifyTopNav, onchange: function () { updateAndSetValue('beautifyTopNav', this.checked) } }, - ] - ) - createCategory('category3', translate('website'), [//网站设置 - { type: 'checkbox', id: 'autocheck', label: translate('AutoEnableCodeEditor'), checked: autocheck, onchange: function () { updateAndSetValue('autocheck', this.checked) } }, - { type: 'checkbox', id: 'newtabtoinstall', label: translate('openTab'), checked: newtabtoinstall, onchange: function () { updateAndSetValue('newtabtoinstall', this.checked) } }, - { type: 'checkbox', id: 'AbsoluteTime', label: translate('exactDate'), checked: AbsoluteTime, onchange: function () { updateAndSetValue('AbsoluteTime', this.checked) } }, - { type: 'checkbox', id: 'greasymaxWidth', label: translate('maxView'), checked: greasymaxWidth, onchange: function () { updateAndSetValue('greasymaxWidth', this.checked) } }, - { type: 'checkbox', id: 'usereport', label: translate('oneclickreport'), checked: usereport, onchange: function () { updateAndSetValue('usereport', this.checked) } }, - { type: 'checkbox', id: 'userlocalfav', label: translate('localbookmarks'), checked: userlocalfav, onchange: function () { updateAndSetValue('userlocalfav', this.checked) } }, - { type: 'checkbox', id: 'remme', label: translate('Rememberme'), checked: remme, onchange: function () { updateAndSetValue('remme', this.checked) } }, - { type: 'checkbox', id: 'hidediscussionread', label: translate('hidereadcomments'), checked: hidediscussionread, onchange: function () { updateAndSetValue('hidediscussionread', this.checked) } }, - { type: 'checkbox', id: 'italicdiscussionread', label: translate('italicizereadcomments'), checked: italicdiscussionread, onchange: function () { updateAndSetValue('italicdiscussionread', this.checked) } }, - { type: 'checkbox', id: 'useroutline', label: translate('useroutlines'), checked: useroutline, onchange: function () { updateAndSetValue('useroutline', this.checked) } }, - { type: 'checkbox', id: 'userimageproxy', label: translate('imageproxy'), checked: userimageproxy, onchange: function () { updateAndSetValue('userimageproxy', this.checked) } }, - { type: 'checkbox', id: 'fixElementoption', label: translate('fixElementoption'), checked: fixElementoption, onchange: function () { updateAndSetValue('fixElementoption', this.checked) } }, - ], viewMode) - createCategory('checkLogin', translate('enableautologin'), [ - { type: 'checkbox', id: 'userautologin', label: translate('enableautologin'), checked: userautologin, onchange: function () { updateAndSetValue('userautologin', this.checked) } }, - { type: 'text', id: 'useremail', label: translate('account'), value: useremail }, - { type: 'text', id: 'userpassword', label: translate('password'), value: userpassword }, - ], 1) - createCategory('sl', translate('scriptlist'), [ - { type: 'checkbox', id: 'showinstallbutton', label: translate('listdisplayinstallationdownload'), checked: showinstallbutton, onchange: function () { updateAndSetValue('showinstallbutton', this.checked) } }, - { type: 'checkbox', id: 'setlocklang', label: translate('locklangset'), checked: setlocklang, onchange: function () { updateAndSetValue('setlocklang', this.checked) } }, - { type: 'checkbox', id: 'showRating', label: translate('showRating'), checked: showRating, onchange: function () { updateAndSetValue('showRating', this.checked) } }, - { type: 'checkbox', id: 'showSourceCode', label: translate('showJump'), checked: showSourceCode, onchange: function () { updateAndSetValue('showSourceCode', this.checked) } }, - { type: 'checkbox', id: 'userapplyCustomStyles', label: translate('useoldversionlist'), checked: userapplyCustomStyles, onchange: function () { updateAndSetValue('userapplyCustomStyles', this.checked) } }, - { type: 'checkbox', id: 'userhandleLocaleFilter', label: translate('showscriptall'), checked: userhandleLocaleFilter, onchange: function () { updateAndSetValue('userhandleLocaleFilter', this.checked) } }, - { type: 'checkbox', id: 'scriptset', label: translate('moveSidebar'), checked: scriptset, onchange: function () { updateAndSetValue('scriptset', this.checked) } }, - { type: 'checkbox', id: 'scriptwithdata', label: translate('ScriptListByCreat'), checked: scriptwithdata, onchange: function () { updateAndSetValue('scriptwithdata', this.checked) } }, - { type: 'checkbox', id: 'scriptlistdouble', label: translate('ScriptListdouble'), checked: scriptlistdouble, onchange: function () { updateAndSetValue('scriptlistdouble', this.checked) } }, - ], viewMode) - createCategory('sl2', translate('personalhomepage'), [ - { type: 'checkbox', id: 'clearhomepage', label: translate('cleanUpOld'), checked: clearhomepage, onchange: function () { updateAndSetValue('clearhomepage', this.checked) } }, - { type: 'text', id: 'clearhomepagedays', label: translate('cleanUpOld'), value: clearhomepagedays }, - { type: 'checkbox', id: 'addedittohomepage', label: translate('主页脚本添加操作'), checked: addedittohomepage, onchange: function () { updateAndSetValue('addedittohomepage', this.checked) } }, - { type: 'checkbox', id: 'hideuserdiscussions', label: translate('hiderrecentcomments'), checked: hideuserdiscussions, onchange: function () { updateAndSetValue('hideuserdiscussions', this.checked) } }, - { type: 'checkbox', id: 'hideuserconversations', label: translate('hiderconversations'), checked: hideuserconversations, onchange: function () { updateAndSetValue('hideuserconversations', this.checked) } }, - { type: 'checkbox', id: 'hideuserprofile', label: translate('hideuserprofile'), checked: hideuserprofile, onchange: function () { updateAndSetValue('hideuserprofile', this.checked) } }, - { type: 'checkbox', id: 'shouwtotalonuserpage', label: translate('displaystatisticsonhomepage'), checked: shouwtotalonuserpage, onchange: function () { updateAndSetValue('shouwtotalonuserpage', this.checked) } }, - ], viewMode) - createCategory('sl3', translate('beautifycontrols'), [ - { type: 'checkbox', id: 'usercssto', label: translate('beautifycontrols'), checked: usercssto, onchange: function () { updateAndSetValue('usercssto', this.checked) } }, - { type: 'checkbox', id: 'modifyRadioLabels', label: translate('beautifyDis'), checked: modifyRadioLabels, onchange: function () { updateAndSetValue('modifyRadioLabels', this.checked) } }, - ], viewMode) - createCategory('openabout', translate('applyto'), [ - { type: 'checkbox', id: 'usersearchingreasyfork', label: translate('enableenhancements'), checked: usersearchingreasyfork, onchange: function () { updateAndSetValue('usersearchingreasyfork', this.checked) } }, - // { type: 'divider' }, - { - type: 'checkbox', id: 'newtabopenabout', label: translate('openinnewwindow'), checked: navigateTotab, onchange: function () { updateAndSetValue('navigateTotab', this.checked) } - }, - { type: 'checkbox', id: 'showlinktotal', label: translate('showscriptsinforum'), checked: navigateTotab, onchange: function () { updateAndSetValue('showlinktotal', this.checked) } }, - { type: 'select', id: 'searchingreasyfork', label: translate('detailsapplytoopen'), placeholder: 'Select...', options: [{ value: '0', text: translate('forumsearch'), selected: false }, { value: '1', text: translate('webpageopen'), selected: true }, { value: '2', text: translate('popupprompt'), selected: false }], onchange: thandleSelectChange('searchingreasyfork') } - ], 1) - const controls2 = [ - { type: 'label', label: 'Thank You', class: 'text-center', link: { href: '', target: '_blank', class: 'ml-2', text: '' } }, - { type: 'link', id: 'greasyforkInYourLanguage', text: 'Greasyfork in your language', href: 'https://greasyfork.org/zh-CN/scripts/6245', target: '_blank' }, - { type: 'link', id: 'greasyforkOptimization', text: 'Greasyfork 优化', href: 'https://greasyfork.org/zh-CN/scripts/411837', target: '_blank' }, - { type: 'link', id: 'greasyforkCopyCodeSnippet', text: 'GreasyFork Copy Code Snippet', href: 'https://greasyfork.org/zh-CN/scripts/423726', target: '_blank' }, - { type: 'link', id: 'downloadScriptButton', text: 'download script button', href: 'https://greasyfork.org/zh-CN/scripts/420872', target: '_blank' }, - { type: 'link', id: 'greasyforkScriptIcon', text: 'GreasyFork script icon', href: 'https://greasyfork.org/zh-CN/scripts/6861', target: '_blank' }, - { type: 'link', id: 'postANewScript', text: 'Add "Post a new script" link', href: 'https://greasyfork.org/zh-CN/scripts/450357', target: '_blank' }, - { type: 'link', id: 'openScriptsListSorting', text: 'Open scripts list sorting for creation date by default', href: 'https://greasyfork.org/zh-CN/scripts/495477', target: '_blank' }, - { type: 'link', id: 'absoluteTimeOnGreasyFork', text: 'Absolute Time on GreasyFork', href: 'https://greasyfork.org/zh-CN/scripts/470348', target: '_blank' }, - { type: 'link', id: 'collapseGreasyforkExpiredDiscussion', text: '折叠 greasyfork 过期讨论', href: 'https://greasyfork.org/scripts/426549/', target: '_blank' }, - { type: 'link', id: 'maximaleFensterbreite', text: 'maximale Fensterbreite auf nutzen', href: 'https://greasyfork.org/de/scripts/36037', target: '_blank' }, - { type: 'link', id: 'toggleHTMLView', text: 'Toggle HTML View', href: 'https://greasyfork.org/de/scripts/471149', target: '_blank' }, - { type: 'link', id: 'greasyforkHeaderStyleFix', text: 'GreasyFork Header Style Fix', href: 'https://greasyfork.org/zh-CN/scripts/473269', target: '_blank' }, - { type: 'link', id: 'autoEnableSyntaxHighlightingSourceEditor', text: 'Auto Enable Syntax-Highlighting Source Editor', href: 'https://greasyfork.org/zh-CN/scripts/22223', target: '_blank' }, - ] - createCategory('category52', 'Thank You', controls2, 1) - function thandleSelectChange(searchingValue) { - return function (event) { - // 获取选中的值 - const selectedValue = event.target.value - // 使用传递的 searchingValue 作为键来设置 GM_setValue - updateAndSetValue(searchingValue, selectedValue) - } - } - function updateAndSetValue(key, value) { - GM_setValue(key, value) // 更新 GM 存储中的值 - eval(`${key} = GM_getValue('${key}')`) // 使用 eval 动态更新全局变量 - } - handleSelectChange('searchingreasyfork', searchingreasyfork) - handleSelectChange('lockmode', lockmode) - function handleSelectChange(searchingid, searchingValue) { - const selectElement = document.getElementById(searchingid) - for (let option of selectElement.options) { - if (option.value === searchingValue) { - selectElement.value = searchingValue // 设置 元素并获取其 value 值 - const inputElement = doc.querySelector("input#promoted_script_id") - if (inputElement) { - const value = inputElement.value - console.log(`${linkTitle}${value}`) - } else { - console.error(`Link Title: ${linkTitle}`) - } - }) - .catch(error => console.error('Error:', error)) - } - //NOTE - 美化WEBHOOK页面 - function checkAndRun() { - const url = window.location.href - const lastSegment = url.substring(url.lastIndexOf('/') + 1) - if (lastSegment === 'webhook-info') { - addAdminButtons() - //FIXME - 没啥用,不改了 addButtonToScipstsList() - } - } - // 调用函数以检查 URL 并执行操作 - checkAndRun() - // 调用函数 - customizeWebhookInfoPage() - customizeWebhookInfoPage2() - function customizeWebhookInfoPage2() { - if (window.location.href.indexOf("https://greasyfork.org/zh-CN/users/webhook-info") != -1) //webhook - { - $("h3").each(function () { - if ($(this).text() == 'GitHub') { - $(this).html(' Github') - } - else if ($(this).text() == 'Bitbucket') { - $(this).html(' Bitbucket') - } - else if ($(this).text() == 'GitLab') { - $(this).html(' GitLab') - } - }) - $('textarea').attr('cols', '130') - if (getCountryCode() === "zh-CN") { - $("input").each(function () { - if ($(this).val() == "Generate") - $(this).val("生成") - if ($(this).val() == "Regenerate") - $(this).val("重新生成") - }) - } - } - } - //STUB - 隐藏AD 482672 - function addStyleToHideElements(classSelectors) { - classSelectors.forEach(selector => { - var style = document.createElement('style') - style.type = 'text/css' - style.innerHTML = selector + ' { display: none !important; }' - document.head.appendChild(style) - }) - } - addStyleToHideElements(['.ad-entry', '.ad.ad-ea']) - //STUB - 语言筛选器 greasyfork.org/scripts/467463 - function handleLocaleFilter(linkSelector, filterParam = 'filter_locale', defaultValue = '0') { - const currentURL = new URL(window.location.href) - const regex = /^https:\/\/greasyfork\.org\/.*\/scripts\?.*/ - if (!regex.test(currentURL)) { - return // 如果 URL 不匹配,退出函数 - } - const searchParams = new URLSearchParams(currentURL.search) - // Check if the user manually clicked the filter locale link. - const manuallyClicked = sessionStorage.getItem('filterLocaleClicked') - // If user did not manually select language, and filter_locale is not set, redirect to show scripts from all languages. - if (manuallyClicked !== 'true' && !searchParams.has(filterParam)) { - searchParams.append(filterParam, defaultValue) - currentURL.search = searchParams.toString() - window.location.replace(currentURL.toString()) - } - // On a page where the locale can be filtered, add click listener to the filter locale link. - const filterLocaleLink = document.querySelector(linkSelector) // Selector for the "Show English results only" or equivalent link - if (filterLocaleLink) { - filterLocaleLink.addEventListener('click', () => { - sessionStorage.setItem('filterLocaleClicked', 'true') - }) - } - } - if (userhandleLocaleFilter) { - handleLocaleFilter('.sidebarred-main-content p a') - } - //STUB - 旧版本视图greasyfork.org/scripts/464089/ - function applyCustomStyles() { - let css = ` - /* disable default properties */ - .inline-script-stats { - display: unset; - margin: 0; - } - .script-meta-block { - max-width: none; - } - /* return old properties */ - .inline-script-stats dt, - .inline-script-stats dd { - float: left; - width: 50%; - } - /* make 600px max width for script meta block if this is script page */ - #script-content .script-meta-block { - max-width: 600px; - } - /* to prevent style breaking, 18px is minimal height if element doesn't have any content (e.g. author link may not appear) */ - .inline-script-stats dd span:empty { - display: block; - height: 20px; - } - ` - if (typeof GM_addStyle !== "undefined") { - GM_addStyle(css) - } else { - let styleNode = document.createElement("style") - styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) - } - } - if (userapplyCustomStyles) { - applyCustomStyles() - } - // Call the function to apply the styles - //STUB - 高亮代码片段 - // Define a function to set up code highlighting - function setupCodeHighlighting() { - if (checkMode()) { - setCodeContainerTheme(false, false) - } else { - setCodeContainerTheme(true, false) - } - // Function to highlight code blocks - function highlightTextCode() { - const selectors = [ - 'pre:not([class])', // 选择没有 class 属性的
       元素
      -                'code',            // 选择所有  元素
      -            ]
      -            selectors.forEach(selector => {
      -                document.querySelectorAll(selector).forEach(block => {
      -                    $(block).css({
      -                        'font-size': 'smaller',
      -                        'word-break': 'break-word',
      -                        'white-space': 'pre-wrap',
      -                        'word-wrap': 'break-word'
      -                    })
      -                    // Get the text content of the  element
      -                    const codeContent = block.textContent
      -                    hljs.highlightElement(block)
      -                })
      -            })
      -        }
      -        // Run the highlightTextCode function immediately for existing code blocks
      -        highlightTextCode()
      -    }
      -    if (useHighlighting) {
      -        setupCodeHighlighting()
      -    }
      -    // Call the setupCodeHighlighting function to initialize code highlighting
      -    function isMobileDevice() {
      -        const userAgent = navigator.userAgent || navigator.vendor || window.opera
      -        return /android|iPad|iPhone|iPod|IEMobile|WPDesktop|Windows Phone|webOS|BlackBerry|Opera Mini|Mobile|tablet/i.test(userAgent) ||
      -            (window.innerWidth <= 1024 && (window.innerHeight <= 768 || window.orientation !== undefined))
      -    }
      -    //STUB - 库页面增加复制按钮 greasyfork.org/scripts/463
      -    function addCopyButtonBeforeScriptLink() {
      -        var scriptLink = $('#script-content > p > code:first-child')
      -        if (scriptLink.length > 0) {
      -            GM_addStyle(`
      -            .custom-container {
      -                display: flex;
      -                align-items: center;
      -                gap: 10px; /* 增加 button 和 code 之间的间隔 */
      -            }
      -            .custom-button {
      -                background-color: #007bff;
      -                color: white;
      -                border: none;
      -                padding: 8px 12px;
      -                border-radius: 5px;
      -                cursor: pointer;
      -                font-size: 14px;
      -            }
      -            .custom-button:hover {
      -                background-color: #0056b3;
      -            }
      -            .custom-button:active {
      -                background-color: #004a99;
      -            }
      -        `)
      -            // 创建一个包含复制按钮和原始 code 元素的 div 元素
      -            var container = $('
      ') - // 创建一个复制按钮 - var copyButton = $('') - // 添加点击事件来复制内容到剪贴板 - copyButton.on('click', function () { - var codeContent = scriptLink.text() // 获取原始 code 元素内容 - // 直接复制内容到剪贴板 - navigator.clipboard.writeText(codeContent).then(function () { - // 提示用户内容已复制 - copyButton.text('Copied') - // 1 秒后将按钮标题恢复为 "Copy" - setTimeout(function () { - copyButton.text('Copy') - }, 1000) - }).catch(function (error) { - logMessage('addCopyButtonBeforeScriptLink', '复制失败:', false, error) - }) - }) - // 将复制按钮和原始 code 元素添加到 container 中 - container.append(copyButton) - container.append(scriptLink.clone()) - // 用 container 替换 scriptLink - scriptLink.replaceWith(container) - } - } - if (addCopyButtonBeforelibScript) { - addCopyButtonBeforeScriptLink() - } - //STUB - 代码查看页面增加梅花 - function setCodeContainerTheme(isDayMode, addde = true) { - // const themeCSS = isDayMode ? GM_getResourceText('nnfx-light.min.css') : GM_getResourceText('nnfx-dark.min.css'); - const themeCSS = isDayMode ? GM_getResourceText('atom-one-light.css') : GM_getResourceText('atom-one-dark.css') - GM_addStyle(themeCSS) - let lockmode1 = GM_getValue('lockmode') - // 检查 lockmode1 是否是一个字符串,并且是否包含英文字母 - if (typeof lockmode1 === 'string' && /[a-zA-Z]/.test(lockmode1)) { - //下面的CSS代码不允许添加,防止控件超出范围 - return - } - if (addde) { - GM_addStyle(` -.code-container { - background-color: ${isDayMode ? '#fafafa' : '#282c34'}; - border-radius: 8px; - max-height: 100%; - overflow: visible; -} -.code-container ::-webkit-scrollbar { - width: 14px; - height: 14px; - background-color: transparent; -} -.code-container ::-webkit-scrollbar-track { - background-color: transparent; -} -.code-container ::-webkit-scrollbar-thumb { - background-color: rgba(78, 86, 102, 0); -} -.code-container ::-webkit-scrollbar-corner { - background-color: transparent; -} -.code-container:hover ::-webkit-scrollbar-thumb { - background-color: ${isDayMode ? '#FF8C00' : '#636d83'}; -} -.code-container ::selection { - background-color: ${isDayMode ? '#f5f5f5' : '#636d83'}; -} -.code-container pre code { - padding: 0; - font-family: Consolas; - cursor: text; - overflow: auto; - max-height: calc(100vh - 267px); -} -.code-container pre code .marker { - display: inline-block; - color:${isDayMode ? '#FF8C00' : '#636d83'}; - text-align: right; - padding-right: 20px; - user-select: none; - cursor: auto; -} - `) - } - } - // 选择白天模式或黑夜模式 //反选 - function checkMode() { - // 获取 #script-info 元素 - const scriptInfoElement = document.querySelector('#script-info') - // 检查元素是否存在 - if (scriptInfoElement) { - if (lockmode === "1") { - return true // 锁定黑夜 - } - if (lockmode === "2") { - return false // 锁定白天 - } - // 获取元素的计算样式 - const computedStyle = window.getComputedStyle(scriptInfoElement) - // 获取背景颜色 - const backgroundColor = computedStyle.backgroundColor - // 打印背景颜色到控制台 - // 判断背景颜色是否为白色 - if (backgroundColor === 'rgb(255, 255, 255)') { // 白色背景 - return false // 白色背景为白天模式 - } else { - return true // 其他背景色为黑夜模式 - } - } else { - return false // 如果没有找到元素,假设为白天模式 - } - } - function checkAndSetTheme() { - const scriptInfoElement = document.querySelector('#script-info') - if (scriptInfoElement) { - if (checkMode()) { - setCodeContainerTheme(false) - } else { - setCodeContainerTheme(true) - } - } else { - } - } - if (useHighlighttocode && window.location.href.includes('/code')) { - let lockmode1 = GM_getValue('lockmode') - // 检查 lockmode1 是否是一个字符串,并且是否包含英文字母 - if (typeof lockmode1 === 'string' && /[a-zA-Z]/.test(lockmode1)) { - // 执行不等于 0、1、2 时的逻辑 - const type = lockmode1 - const css = getCssRules(type) - GM_addStyle(` - .prettyprint { - font-size: 12px - } - #script-content > div.code-container > pre { - white-space: pre-wrap; /* 自动换行 */ - word-wrap: break-word; /* 长单词换行 */ - width: unset - } - `) - GM_addStyle(css) - return - } - checkAndSetTheme() - $(document).ready(function () { - function processCodeBlocks(selector, languageClass) { - $(selector).each((pre_i, pre) => { - // 调整代码,给一些压缩代码增加换行 - $(pre).find('li').append('\n') - const code = $(``).html(pre.innerHTML) - // 清空原始代码容器,放置新容器 - $(pre).removeClass().html('').append(code).addClass('code-container') - // 高亮 - hljs.highlightElement(pre.querySelector('code')) - // 增加行号 - const html = $(pre).find('code').html() - const htmlSplit = html.split('\n') - const totalLines = htmlSplit.length - $(pre).find('code').html( - htmlSplit.map((n, i) => `${i + 1}${n}`).join('\n') - ) - }) - } - if ($('pre.lang-js').length > 0) { - // 存在 .lang-js 元素时,高亮 JavaScript 代码 - processCodeBlocks('pre.lang-js', 'language-javascript') - } else if ($('pre.lang-css').length > 0) { - // 不存在 .lang-js 元素且存在 .lang-css 元素时,高亮 CSS 代码 - processCodeBlocks('pre.lang-css', 'language-css') - } else if ($('pre.uglyprint').length > 0) { - processCodeBlocks('pre.uglyprint', 'language-javascript') - } - }) - } - //STUB - 选择器透明 - function fuckselector() { - const languageSelector = document.querySelector("#language-selector-locale") - if (languageSelector) { - // 设置默认背景颜色为透明 - languageSelector.style.backgroundColor = 'transparent' - // 取消边框 - languageSelector.style.border = 'none' - // 添加样式来控制下拉时和悬停时的背景颜色 - const styleSheet = document.createElement("style") - styleSheet.type = "text/css" - styleSheet.innerText = ` - #language-selector-locale { - background-color: transparent !important; /* 默认状态下背景透明 */ - border: none !important; /* 取消边框 */ - } - #language-selector-locale:focus { - background-color: #fff !important; /* 下拉时的背景颜色 */ - border: none !important; /* 取消边框 */ - } - #language-selector-locale:hover { - background-color: #f0f0f0 !important; /* 鼠标悬停时的背景颜色 */ - border: none !important; /* 取消边框 */ - } - ` - document.head.appendChild(styleSheet) - // 监听焦点和失去焦点事件以调试背景颜色 - languageSelector.addEventListener('focus', () => { - languageSelector.style.backgroundColor = '#fff' // 下拉时的背景颜色 - }) - languageSelector.addEventListener('blur', () => { - languageSelector.style.backgroundColor = 'transparent' // 收起时的背景颜色 - }) - } - } - // 执行函数以应用样式 - // fuckselector(); - function getCssRules(type) { - switch (type) { - case 'Tomorrow-Night': - return `.prettyprint{background:#1d1f21;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#c5c8c6}ol.linenums{margin-top:0;margin-bottom:0;color:#969896}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#1d1f21;list-style-type:decimal}@media screen{.str{color:#b5bd68}.kwd{color:#b294bb}.com{color:#969896}.typ{color:#81a2be}.lit{color:#de935f}.pun{color:#c5c8c6}.opn{color:#c5c8c6}.clo{color:#c5c8c6}.tag{color:#c66}.atn{color:#de935f}.atv{color:#8abeb7}.dec{color:#de935f}.var{color:#c66}.fun{color:#81a2be}} - .ace_gutter{background:#25282c!important;color:#C5C8C6!important}.ace_print-margin{width:1px!important;background:#25282c!important}.ace_editor{background-color:#1D1F21!important;color:#C5C8C6!important}.ace_cursor{color:#AEAFAD!important}.ace_marker-layer .ace_selection{background:#373B41!important}.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px 0 #1D1F21!important}.ace_marker-layer .ace_step{background:rgb(102,82,0)!important}.ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px!important;border:1px solid #4B4E55!important}.ace_marker-layer .ace_active-line{background:#282A2E!important}.ace_gutter-active-line{background-color:#282A2E!important}.ace_marker-layer .ace_selected-word{border:1px solid #373B41!important}.ace_invisible{color:#4B4E55!important}.ace_keyword,.ace_meta,.ace_storage,.ace_storage.ace_type,.ace_support.ace_type{color:#B294BB!important}.ace_keyword.ace_operator{color:#8ABEB7!important}.ace_constant.ace_character,.ace_constant.ace_language,.ace_constant.ace_numeric,.ace_keyword.ace_other.ace_unit,.ace_support.ace_constant,.ace_variable.ace_parameter{color:#DE935F!important}.ace_constant.ace_other{color:#CED1CF!important}.ace_invalid{color:#CED2CF!important;background-color:#DF5F5F!important}.ace_invalid.ace_deprecated{color:#CED2CF!important;background-color:#B798BF!important}.ace_fold{background-color:#81A2BE!important;border-color:#C5C8C6!important}.ace_entity.ace_name.ace_function,.ace_support.ace_function,.ace_variable{color:#81A2BE!important}.ace_support.ace_class,.ace_support.ace_type{color:#F0C674!important}.ace_heading,.ace_markup.ace_heading,.ace_string{color:#B5BD68!important}.ace_entity.ace_name.ace_tag,.ace_entity.ace_other.ace_attribute-name,.ace_meta.ace_tag,.ace_string.ace_regexp,.ace_variable{color:#CC6666!important}.ace_comment{color:#969896!important}.ace_indent-guide{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC') right repeat-y!important} - ` - case 'Tomorrow-Night-Eighties': - return `.prettyprint{background:#2d2d2d;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#ccc}ol.linenums{margin-top:0;margin-bottom:0;color:#999}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#2d2d2d;list-style-type:decimal}@media screen{.str{color:#9c9}.kwd{color:#c9c}.com{color:#999}.typ{color:#69c}.lit{color:#f99157}.pun{color:#ccc}.opn{color:#ccc}.clo{color:#ccc}.tag{color:#f2777a}.atn{color:#f99157}.atv{color:#6cc}.dec{color:#f99157}.var{color:#f2777a}.fun{color:#69c}} - .ace_gutter{background:#272727!important;color:#CCC!important}.ace_print-margin{width:1px!important;background:#272727!important}.ace_editor{background-color:#2D2D2D!important;color:#CCCCCC!important}.ace_constant.ace_other,.ace_cursor{color:#CCCCCC!important}.ace_marker-layer .ace_selection{background:#515151!important}.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px 0 #2D2D2D!important}.ace_marker-layer .ace_step{background:rgb(102,82,0)!important}.ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px!important;border:1px solid #6A6A6A!important}.ace-tomorrow-night-bright .ace_stack{background:rgb(66,90,44)!important}.ace_marker-layer .ace_active-line{background:#393939!important}.ace_gutter-active-line{background-color:#393939!important}.ace_marker-layer .ace_selected-word{border:1px solid #515151!important}.ace_invisible{color:#6A6A6A!important}.ace_keyword,.ace_meta,.ace_storage,.ace_storage.ace_type,.ace_support.ace_type{color:#CC99CC!important}.ace_keyword.ace_operator{color:#66CCCC!important}.ace_constant.ace_character,.ace_constant.ace_language,.ace_constant.ace_numeric,.ace_keyword.ace_other.ace_unit,.ace_support.ace_constant,.ace_variable.ace_parameter{color:#F99157!important}.ace_invalid{color:#CDCDCD!important;background-color:#F2777A!important}.ace_invalid.ace_deprecated{color:#CDCDCD!important;background-color:#CC99CC!important}.ace_fold{background-color:#6699CC!important;border-color:#CCCCCC!important}.ace_entity.ace_name.ace_function,.ace_support.ace_function,.ace_variable{color:#6699CC!important}.ace_support.ace_class,.ace_support.ace_type{color:#FFCC66!important}.ace_heading,.ace_markup.ace_heading,.ace_string{color:#99CC99!important}.ace_comment{color:#999999!important}.ace_entity.ace_name.ace_tag,.ace_entity.ace_other.ace_attribute-name,.ace_meta.ace_tag,.ace_variable{color:#F2777A!important}.ace_indent-guide{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC') right repeat-y!important} - ` - case 'Tomorrow-Night-Blue': - return `.prettyprint{background:#002451;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#fff}ol.linenums{margin-top:0;margin-bottom:0;color:#7285b7}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#002451;list-style-type:decimal}@media screen{.str{color:#d1f1a9}.kwd{color:#ebbbff}.com{color:#7285b7}.typ{color:#bbdaff}.lit{color:#ffc58f}.pun{color:#fff}.opn{color:#fff}.clo{color:#fff}.tag{color:#ff9da4}.atn{color:#ffc58f}.atv{color:#9ff}.dec{color:#ffc58f}.var{color:#ff9da4}.fun{color:#bbdaff}} - .ace_gutter{background:#00204b!important;color:#7388b5!important}.ace_print-margin{width:1px!important;background:#00204b!important}.ace_editor{background-color:#002451!important;color:#FFFFFF!important}.ace_constant.ace_other,.ace_cursor{color:#FFFFFF!important}.ace_marker-layer .ace_selection{background:#003F8E!important}.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px 0 #002451!important}.ace_marker-layer .ace_step{background:rgb(127,111,19)!important}.ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px!important;border:1px solid #404F7D!important}.ace_marker-layer .ace_active-line{background:#00346E!important}.ace_gutter-active-line{background-color:#022040!important}.ace_marker-layer .ace_selected-word{border:1px solid #003F8E!important}.ace_invisible{color:#404F7D!important}.ace_keyword,.ace_meta,.ace_storage,.ace_storage.ace_type,.ace_support.ace_type{color:#EBBBFF!important}.ace_keyword.ace_operator{color:#99FFFF!important}.ace_constant.ace_character,.ace_constant.ace_language,.ace_constant.ace_numeric,.ace_keyword.ace_other.ace_unit,.ace_support.ace_constant,.ace_variable.ace_parameter{color:#FFC58F!important}.ace_invalid{color:#FFFFFF!important;background-color:#F99DA5!important}.ace_invalid.ace_deprecated{color:#FFFFFF!important;background-color:#EBBBFF!important}.ace_fold{background-color:#BBDAFF!important;border-color:#FFFFFF!important}.ace_entity.ace_name.ace_function,.ace_support.ace_function,.ace_variable{color:#BBDAFF!important}.ace_support.ace_class,.ace_support.ace_type{color:#FFEEAD!important}.ace_heading,.ace_markup.ace_heading,.ace_string{color:#D1F1A9!important}.ace_entity.ace_name.ace_tag,.ace_entity.ace_other.ace_attribute-name,.ace_meta.ace_tag,.ace_string.ace_regexp,.ace_variable{color:#FF9DA4!important}.ace_comment{color:#7285B7!important}.ace_indent-guide{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC') right repeat-y!important} - ` - case 'Tomorrow-Night-Bright': - return `.prettyprint{background:#000;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#eaeaea}ol.linenums{margin-top:0;margin-bottom:0;color:#969896}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#000;list-style-type:decimal}@media screen{.str{color:#b9ca4a}.kwd{color:#c397d8}.com{color:#969896}.typ{color:#7aa6da}.lit{color:#e78c45}.pun{color:#eaeaea}.opn{color:#eaeaea}.clo{color:#eaeaea}.tag{color:#d54e53}.atn{color:#e78c45}.atv{color:#70c0b1}.dec{color:#e78c45}.var{color:#d54e53}.fun{color:#7aa6da}} - #ace-editor{border:1px solid rgba(255,255,255,.1)}.ace_gutter{background:#1a1a1a!important;color:#DEDEDE!important}.ace_print-margin{width:1px!important;background:#1a1a1a!important}.ace_editor{background-color:#000000!important;color:#DEDEDE!important}.ace_cursor{color:#9F9F9F!important}.ace_marker-layer .ace_selection{background:#424242!important}.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px 0 #000000!important}.ace_marker-layer .ace_step{background:rgb(102,82,0)!important}.ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px!important;border:1px solid #888888!important}.ace_marker-layer .ace_highlight{border:1px solid rgb(110,119,0)!important;border-bottom:0!important;box-shadow:inset 0 -1px rgb(110,119,0)!important;margin:-1px 0 0 -1px!important;background:rgba(255,235,0,.1)!important}.ace_marker-layer .ace_active-line{background:#2A2A2A!important}.ace_gutter-active-line{background-color:#2A2A2A!important}.ace_stack{background-color:rgb(66,90,44)!important}.ace_marker-layer .ace_selected-word{border:1px solid #888888!important}.ace_invisible{color:#343434!important}.ace_keyword,.ace_meta,.ace_storage,.ace_storage.ace_type,.ace_support.ace_type{color:#C397D8!important}.ace_keyword.ace_operator{color:#70C0B1!important}.ace_constant.ace_character,.ace_constant.ace_language,.ace_constant.ace_numeric,.ace_keyword.ace_other.ace_unit,.ace_support.ace_constant,.ace_variable.ace_parameter{color:#E78C45!important}.ace_constant.ace_other{color:#EEEEEE!important}.ace_invalid{color:#CED2CF!important;background-color:#DF5F5F!important}.ace_invalid.ace_deprecated{color:#CED2CF!important;background-color:#B798BF!important}.ace_fold{background-color:#7AA6DA!important;border-color:#DEDEDE!important}.ace_entity.ace_name.ace_function,.ace_support.ace_function,.ace_variable{color:#7AA6DA!important}.ace_support.ace_class,.ace_support.ace_type{color:#E7C547!important}.ace_heading,.ace_markup.ace_heading,.ace_string{color:#B9CA4A!important}.ace_entity.ace_name.ace_tag,.ace_entity.ace_other.ace_attribute-name,.ace_meta.ace_tag,.ace_string.ace_regexp,.ace_variable{color:#D54E53!important}.ace_comment{color:#969896!important}.ace_c9searchresults.ace_keyword{color:#C2C280!important}.ace_indent-guide{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC') right repeat-y!important} - ` - case 'Vibrant-Ink': - return `.prettyprint{background:#000;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#fff}ol.linenums{margin-top:0;margin-bottom:0;color:#666}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#000;list-style-type:decimal}@media screen{.str{color:#6f0}.kwd{color:#f60}.com{color:#93c}.typ{color:#458}.lit{color:#458}.pun{color:#fff}.opn{color:#fff}.clo{color:#fff}.tag{color:#fff}.atn{color:#9c9}.atv{color:#6f0}.dec{color:#fff}.var{color:#fff}.fun{color:#fc0}} - .ace_gutter{background:#1a1a1a!important;color:#BEBEBE!important}.ace_print-margin{width:1px!important;background:#1a1a1a!important}.ace_editor{background-color:#0F0F0F!important;color:#FFFFFF!important}.ace_cursor{color:#FFFFFF!important}.ace_marker-layer .ace_selection{background:#6699CC!important}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px 0 #0F0F0F!important}.ace_marker-layer .ace_step{background:rgb(102,82,0)!important}.ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px!important;border:1px solid #404040!important}.ace_marker-layer .ace_active-line{background:#333333!important}.ace_gutter-active-line{background-color:#333333!important}.ace_marker-layer .ace_selected-word{border:1px solid #6699CC!important}.ace_invisible{color:#404040!important}.ace_keyword,.ace_meta{color:#FF6600!important}.ace_constant,.ace_constant.ace_character,.ace_constant.ace_character.ace_escape,.ace_constant.ace_other{color:#339999!important}.ace_constant.ace_numeric{color:#99CC99!important}.ace_invalid,.ace_invalid.ace_deprecated{color:#CCFF33!important;background-color:#000000!important}.ace_fold{background-color:#FFCC00!important;border-color:#FFFFFF!important}.ace_entity.ace_name.ace_function,.ace_support.ace_function,.ace_variable{color:#FFCC00!important}.ace_variable.ace_parameter{font-style:italic!important}.ace_string{color:#66FF00!important}.ace_string.ace_regexp{color:#44B4CC!important}.ace_comment{color:#9933CC!important}.ace_entity.ace_other.ace_attribute-name{font-style:italic!important;color:#99CC99!important}.ace_indent-guide{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC') right repeat-y!important} - ` - case 'Hemisu-Dark': - return `.prettyprint{background:#000;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#eee}ol.linenums{margin-top:0;margin-bottom:0;color:#777}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#000;list-style-type:decimal}@media screen{.str{color:#b1d631}.kwd{color:#b1d631}.com{color:#777}.typ{color:#bfa}.lit{color:#9fd3e6}.pun{color:#eee}.opn{color:#eee}.clo{color:#eee}.tag{color:#eee}.atn{color:#b1d631}.atv{color:#bfa}.dec{color:#eee}.var{color:#eee}.fun{color:#9fd3e6}} - ` - case 'Tranquil-Heart': - return `.prettyprint{background:#2f3640;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#e6e9ed}ol.linenums{margin-top:0;margin-bottom:0;color:#656d78}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#2f3640;list-style-type:decimal}@media screen{.str{color:#ffce54}.kwd{color:#4fc1e9}.com{color:#656d78}.typ{color:#4fc1e9}.lit{color:#ac92ec}.pun{color:#e6e9ed}.opn{color:#e6e9ed}.clo{color:#e6e9ed}.tag{color:#ed5565}.atn{color:#a0d468}.atv{color:#ffce54}.dec{color:#ac92ec}.var{color:#e6e9ed}.fun{color:#e6e9ed}} - ` - case 'Atelier-Cave-Dark': - return `.prettyprint{background:#19171c;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#efecf4}ol.linenums{margin-top:0;margin-bottom:0;color:#655f6d}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#19171c;list-style-type:decimal}@media screen{.str{color:#2a9292}.kwd{color:#955ae7}.com{color:#655f6d}.typ{color:#576ddb}.lit{color:#aa573c}.pun{color:#efecf4}.opn{color:#efecf4}.clo{color:#efecf4}.tag{color:#be4678}.atn{color:#aa573c}.atv{color:#398bc6}.dec{color:#aa573c}.var{color:#be4678}.fun{color:#576ddb}} - ` - case 'Atelier-Dune-Dark': - return `.prettyprint{background:#20201d;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#fefbec}ol.linenums{margin-top:0;margin-bottom:0;color:#7d7a68}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#20201d;list-style-type:decimal}@media screen{.str{color:#60ac39}.kwd{color:#b854d4}.com{color:#7d7a68}.typ{color:#6684e1}.lit{color:#b65611}.pun{color:#fefbec}.opn{color:#fefbec}.clo{color:#fefbec}.tag{color:#d73737}.atn{color:#b65611}.atv{color:#1fad83}.dec{color:#b65611}.var{color:#d73737}.fun{color:#6684e1}} - ` - case 'Atelier-Estuary-Dark': - return `.prettyprint{background:#22221b;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#f4f3ec}ol.linenums{margin-top:0;margin-bottom:0;color:#6c6b5a}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#22221b;list-style-type:decimal}@media screen{.str{color:#7d9726}.kwd{color:#5f9182}.com{color:#6c6b5a}.typ{color:#36a166}.lit{color:#ae7313}.pun{color:#f4f3ec}.opn{color:#f4f3ec}.clo{color:#f4f3ec}.tag{color:#ba6236}.atn{color:#ae7313}.atv{color:#5b9d48}.dec{color:#ae7313}.var{color:#ba6236}.fun{color:#36a166}} - ` - case 'Atelier-Forest-Dark': - return `.prettyprint{background:#1b1918;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#f1efee}ol.linenums{margin-top:0;margin-bottom:0;color:#766e6b}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#1b1918;list-style-type:decimal}@media screen{.str{color:#7b9726}.kwd{color:#6666ea}.com{color:#766e6b}.typ{color:#407ee7}.lit{color:#df5320}.pun{color:#f1efee}.opn{color:#f1efee}.clo{color:#f1efee}.tag{color:#f22c40}.atn{color:#df5320}.atv{color:#3d97b8}.dec{color:#df5320}.var{color:#f22c40}.fun{color:#407ee7}} - ` - case 'Atelier-Heath-Dark': - return `.prettyprint{background:#1b181b;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#f7f3f7}ol.linenums{margin-top:0;margin-bottom:0;color:#776977}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#1b181b;list-style-type:decimal}@media screen{.str{color:#918b3b}.kwd{color:#7b59c0}.com{color:#776977}.typ{color:#516aec}.lit{color:#a65926}.pun{color:#f7f3f7}.opn{color:#f7f3f7}.clo{color:#f7f3f7}.tag{color:#ca402b}.atn{color:#a65926}.atv{color:#159393}.dec{color:#a65926}.var{color:#ca402b}.fun{color:#516aec}} - ` - case 'Atelier-Lakeside-Dark': - return `.prettyprint{background:#161b1d;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#ebf8ff}ol.linenums{margin-top:0;margin-bottom:0;color:#5a7b8c}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#161b1d;list-style-type:decimal}@media screen{.str{color:#568c3b}.kwd{color:#6b6bb8}.com{color:#5a7b8c}.typ{color:#257fad}.lit{color:#935c25}.pun{color:#ebf8ff}.opn{color:#ebf8ff}.clo{color:#ebf8ff}.tag{color:#d22d72}.atn{color:#935c25}.atv{color:#2d8f6f}.dec{color:#935c25}.var{color:#d22d72}.fun{color:#257fad}} - ` - case 'Atelier-Plateau-Dark': - return `.prettyprint{background:#1b1818;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#f4ecec}ol.linenums{margin-top:0;margin-bottom:0;color:#655d5d}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#1b1818;list-style-type:decimal}@media screen{.str{color:#4b8b8b}.kwd{color:#8464c4}.com{color:#655d5d}.typ{color:#7272ca}.lit{color:#b45a3c}.pun{color:#f4ecec}.opn{color:#f4ecec}.clo{color:#f4ecec}.tag{color:#ca4949}.atn{color:#b45a3c}.atv{color:#5485b6}.dec{color:#b45a3c}.var{color:#ca4949}.fun{color:#7272ca}} - ` - case 'Atelier-Savanna-Dark': - return `.prettyprint{background:#171c19;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#ecf4ee}ol.linenums{margin-top:0;margin-bottom:0;color:#5f6d64}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#171c19;list-style-type:decimal}@media screen{.str{color:#489963}.kwd{color:#55859b}.com{color:#5f6d64}.typ{color:#478c90}.lit{color:#9f713c}.pun{color:#ecf4ee}.opn{color:#ecf4ee}.clo{color:#ecf4ee}.tag{color:#b16139}.atn{color:#9f713c}.atv{color:#1c9aa0}.dec{color:#9f713c}.var{color:#b16139}.fun{color:#478c90}} - ` - case 'Atelier-Seaside-Dark': - return `.prettyprint{background:#131513;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#f4fbf4}ol.linenums{margin-top:0;margin-bottom:0;color:#687d68}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#131513;list-style-type:decimal}@media screen{.str{color:#29a329}.kwd{color:#ad2bee}.com{color:#687d68}.typ{color:#3d62f5}.lit{color:#87711d}.pun{color:#f4fbf4}.opn{color:#f4fbf4}.clo{color:#f4fbf4}.tag{color:#e6193c}.atn{color:#87711d}.atv{color:#1999b3}.dec{color:#87711d}.var{color:#e6193c}.fun{color:#3d62f5}} - ` - case 'Atelier-Sulphurpool-Dark': - return `.prettyprint{background:#202746;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#f5f7ff}ol.linenums{margin-top:0;margin-bottom:0;color:#6b7394}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#202746;list-style-type:decimal}@media screen{.str{color:#ac9739}.kwd{color:#6679cc}.com{color:#6b7394}.typ{color:#3d8fd1}.lit{color:#c76b29}.pun{color:#f5f7ff}.opn{color:#f5f7ff}.clo{color:#f5f7ff}.tag{color:#c94922}.atn{color:#c76b29}.atv{color:#22a2c9}.dec{color:#c76b29}.var{color:#c94922}.fun{color:#3d8fd1}} - ` - case 'Desert': - return `pre.prettyprint,pre.prettyprinted,.Message pre ol{display:block;background-color:#333}pre .nocode{background-color:none;color:#000}pre .str{color:#ffa0a0}pre .kwd{color:khaki;font-weight:700}pre .com{color:#87ceeb}pre .typ{color:#98fb98}pre .lit{color:#cd5c5c}pre .pun{color:#fff}pre .pln{color:#fff}pre .tag{color:khaki;font-weight:700}pre .atn{color:#bdb76b;font-weight:700}pre .atv{color:#ffa0a0}pre .dec{color:#98fb98}ol.linenums{margin-top:0;margin-bottom:0;color:#AEAEAE}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:none} - ` - case 'Sunburst': - return `pre .str, code .str { color: #65B042; }pre .kwd, code .kwd { color: #E28964; }pre .com, code .com { color: #AEAEAE; font-style: italic; } - pre .typ, code .typ { color: #89bdff; }pre .lit, code .lit { color: #3387CC; }pre .pun, code .pun { color: #fff; }pre .pln, code .pln { color: #fff; }pre .tag, code .tag { color: #89bdff; }pre .atn, code .atn { color: #bdb76b; }pre .atv, code .atv { color: #65B042; } pre .dec, code .dec { color: #3387CC; }pre.prettyprint, code.prettyprint, , pre.prettyprinted, .Message pre ol {background-color: #000;border-radius: 8px;}ol.linenums { margin-top: 0; margin-bottom: 0; color: #AEAEAE; }li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none }li.L1,li.L3,li.L5,li.L7,li.L9 { background: none } - ` - case 'Sons-Of-Obsidian': - return ` - .str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pun{color:#F1F2F3}.pln{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint,,pre.prettyprinted,.Message pre ol{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555;list-style-type:decimal}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111} - ` - default: - return null - } - } - //STUB - 已经阅读的评论斜体 - function applyDiscussionReadStyles(hide, applyStyles) { - const style = document.createElement('style') - let css = '.discussion-list-container.discussion-read {' - if (hide) css += 'display: none;' - if (applyStyles) { - css += 'color: gray;font-size: 0.9em;font-style: italic; opacity: 0.3;' - } - css += '}' - style.textContent = css - document.head.appendChild(style) - } - applyDiscussionReadStyles(hidediscussionread, italicdiscussionread) - //STUB - 在代码页面增加引用库数量显示 - function logUserScriptOccurrences(textContent) { - const urlPattern = /(https?:\/\/[^\s]+)/g // 匹配网址的正则表达式 - const scriptPattern = /(@require|@resource)/ // 查找 @require 或 @resource 的正则表达式 - const targetSubstring = '==/UserScript==' // 目标匹配子串 - const urls = [] // 用于存储匹配的网址 - // 如果文件内容包含 "==/UserScript==" - if (textContent.includes(targetSubstring)) { - // 在文件内容中查找 @require 和 @resource - const lines = textContent.split('\n') - for (const line of lines) { - // 如果当前行包含 @require 或 @resource - if (scriptPattern.test(line)) { - const matches = line.match(urlPattern) - if (matches) { - for (const match of matches) { - if (!urls.includes(match)) { - urls.push(match) // 将唯一的匹配网址添加到数组中 - } - } - } - } - } - // 当找到目标子串并停止遍历后,将收集到的网址传递给 createDetailsWithLinks 函数 - if (urls.length > 0) { - createDetailsWithLinks("#install-area", urls.map(url => [url, url]), '6666', `引用${urls.length}个文件`) - } else { - logMessage('logUserScriptOccurrences', '没有找到 @require 或 @resource 相关的链接', true) - } - } else { - logMessage('logUserScriptOccurrences', '目标文件不包含 "==/UserScript==" 子串', true) - } - } - /** - * 从指定的 URL 中获取文本内容 - * @param {string} url - 需要获取文本的 URL - * @returns {Promise} - 返回一个 Promise,解析为获取到的文本内容 - */ - async function fetchTextFromURL(url, json = false) { - try { - // 从指定的 URL 中获取文件内容 - const response = await fetch(url) - if (!response.ok) throw new Error('网络响应失败') - if (json) { - // 如果 json 参数为 true,返回 JSON 数据 - const jsonData = await response.json() - return jsonData - } else { - // 否则返回文本内容 - const textContent = await response.text() - return textContent - } - } catch (error) { - throw error // 将错误抛出,以便调用者处理 - } - } - if (isScriptCodePage() && showresource) { - $(document).ready(function () { - const number = getNumberFromURL() - if (number) { - // 构建 URL 并调用 logUserScriptOccurrences 函数 - const url = `https://update.greasyfork.org/scripts/${number}.meta.js` - fetchTextFromURL(url) - .then(textContent => { - // 将文本内容传递给 logUserScriptOccurrences 函数 - logUserScriptOccurrences(textContent) - }) - .catch(error => { - logMessage('fetchTextFromURL', '获取文本内容失败', true) - }) - } else { - logMessage('getNumberFromURL', '当前网址中未找到数字串', true) - } - }) - } function getNumberFromURL() { - const match = window.location.href.match(/(\d+)/) // 匹配第一个数字串 - return match ? match[0] : null // 返回第一个匹配的数字串或 null - } - /** - * 创建包含链接列表的 details 元素,并将其插入到指定元素之后 - * @param {string} selector - 插入位置的选择器 - * @param {Array} URLs - 包含 URL 和描述文本的数组 - * @param {string} detailsId - details 元素的 id - * @param {string} summaryText - summary 元素的文本内容 - */ - function createDetailsWithLinks(selector, URLs, detailsId, summaryText) { - const description = document.querySelector(selector) - if (description) { - const details = document.createElement("details") - const summary = document.createElement("summary") - summary.textContent = summaryText || "Links" // 如果未提供 summaryText,则默认为 "Links" - details.appendChild(summary) - const list = document.createElement("ul") - for (const [url, text] of URLs) { - const listItem = document.createElement("li") - const link = document.createElement("a") - link.href = url - link.textContent = getFilenameFromUrl(url) - link.title = text - link.target = "_blank" - listItem.appendChild(link) - list.appendChild(listItem) - } - details.appendChild(list) - description.after(details) - details.id = detailsId || 'default-details-id' // 如果未提供 detailsId,则默认为 'default-details-id' - } else { - //console.error('指定的插入位置不存在'); - } - } - //STUB - 添加举报 - const TEST_MODE = 0 - let skipMode = false - const onIframeLoad = async (evt) => { - const iframe = evt.target - if (!(iframe instanceof HTMLIFrameElement)) return - if (skipMode) return - const onNewUrl = async () => { - skipMode = true - Toast('reported', 2000, '#00FF00', '#ffffff', 'top') - await new Promise(requestAnimationFrame) - iframe.remove() - skipMode = false - } - const onAbort = async () => { - skipMode = true - await new Promise(requestAnimationFrame) - iframe.remove() - skipMode = false - } - iframe.removeEventListener('load', onIframeLoad, false) - if (!iframe.contentDocument) { - Toast('Iframe Access Error. Action aborted.', 2000, '#FF0000', '#ffffff', 'top') - onAbort() - return - } - const reportReasonRadio = iframe.contentDocument.querySelector('input[name="report[reason]"]') - if (reportReasonRadio) { - for (const s of iframe.contentDocument.querySelectorAll('html, body, main')) { - s.style.scrollBehavior = 'auto' - } - reportReasonRadio.scrollIntoView() - await new Promise(requestAnimationFrame) - reportReasonRadio.click() - const form = reportReasonRadio.closest('form') - let currentUrl = iframe.contentWindow.location.pathname - skipMode = true - if (TEST_MODE) { - iframe.contentWindow.location.href = 'https://greasyfork.org/' - } else { - form.submit() - } - let cid = setInterval(() => { - if (!cid) return - let nextUrl = iframe.contentWindow.location.pathname - if (nextUrl !== currentUrl) { - clearInterval(cid) - cid = 0 - setTimeout(onNewUrl, 300) - } - }, 100) - } else if (iframe.contentDocument.querySelector('#open-report-:not(:empty)')) { - Toast("The spam report is already submitted for moderator's review. Action aborted.", 2000, '#FF0000', '#ffffff', 'top') - onAbort() - } else { - Toast("Cannot find the report[reason] radio button. Action aborted.", 2000, '#FF0000', '#ffffff', 'top') - onAbort() - } - } - const clickHandler = (evt) => { - evt.preventDefault() - if (!(evt.target instanceof HTMLElement)) return - let url = evt.target.getAttribute('data-href') - if (!url) return - let discussionId = /id=(\d+)\b/.exec(url) - if (discussionId) discussionId = discussionId[1] - let r = window.confirm(` ${translate('report')}#${discussionId || "------"} ?`) - if (!r) return - const iframe = document.createElement('iframe') - skipMode = false - iframe.addEventListener('load', onIframeLoad, false) - iframe.name = "u423323" - iframe.src = url - Object.assign(iframe.style, { - display: 'block', - position: 'fixed', - top: '0px', - left: '0px', - width: '300px', - height: '300px', - 'contain': 'strict', - }) - document.body.appendChild(iframe) - } - document.head.appendChild(document.createElement('style')).textContent = ` -.re { -font-weight: bold; -font-size: 14px; -cursor: pointer; -} -` - function addReportButtonToDiscussionItem(li) { - let a = li.querySelector('a[href*="/discussions/"].discussion-title') - if (!a) return - let href = a.getAttribute('href') - let discussionIdMatch = href.match(/(\d+)\/?$/) - let discussionId = discussionIdMatch ? parseInt(discussionIdMatch[1]) : null - let lastSegment = href.split('/').pop() - if (isNaN(lastSegment) || lastSegment < 0) return - let span = document.createElement('span') // 使用 document.createElement 创建元素 - span.classList.add('rating-icon', 'rating-icon-bad', 're') // 添加自定义类名 're' - span.textContent = translate('report') - span.setAttribute('data-href', 'https://greasyfork.org/en/reports/new?item_class=discussion&item_id=' + discussionId) - span.addEventListener('click', clickHandler, false) - let meta = li.querySelector('.discussion-meta') // 选择 .discussion-meta 元素 - let relativeTime = meta ? meta.querySelector('.relative-time') : null // 选择 .relative-time 元素 - if (meta) { - if (relativeTime) { - // 将按钮插入到 .relative-time 之后 - meta.insertBefore(span, relativeTime.nextSibling) - } else { - // 如果没有 .relative-time 元素,则将按钮插入到 .discussion-meta 之后 - meta.appendChild(span) - } - } else { - li.parentNode.insertBefore(span, li.nextSibling) // 如果没有 .discussion-meta 元素,则插入到 .discussion-list-item 之后 - } - } - // 定义观察器回调函数 - const observerCallback = (mutationsList, observer) => { - for (let mutation of mutationsList) { - if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { - mutation.addedNodes.forEach(node => { - if (node.nodeType === 1 && node.classList.contains('discussion-list-item')) { - } else if (node.nodeType === 1) { - // 检查子孙节点 - const items = node.querySelectorAll('.discussion-list-item') - items.forEach(item => { - addReportButtonToDiscussionItem(item) - logMessage('一键举报', '元素', true, item) - }) - } - }) - } - } - } - if (usereport) { - for (const anchor of document.querySelectorAll('a[href*="/reports/new?item_class=comment&item_id="],a[href*="/reports/new?item_class=discussion&item_id="]')) { - let anchorNode = anchor - if (anchor.parentNode.firstElementChild === anchor.parentNode.lastElementChild) { - anchorNode = anchorNode.parentNode - } - let newAnchorNode = anchorNode.cloneNode(true) - let newAnchor = newAnchorNode.querySelector('a[href]') || newAnchorNode - newAnchor.classList.add('report-spam-btn') - newAnchor.setAttribute('data-href', newAnchor.getAttribute('href')) - newAnchor.setAttribute('href', '#') - newAnchor.addEventListener('click', clickHandler, false) - newAnchor.textContent = translate('report') - anchorNode.parentNode.insertBefore(newAnchorNode, anchorNode.nextSibling) - } - // 创建一个观察器实例并传入回调函数 - const observer = new MutationObserver(observerCallback) - // 配置观察器选项 - const observerOptions = { - childList: true, // 观察子节点的变化 - subtree: true // 观察整个子树(包括子节点及其后代)的变化 - } - // 选择要观察的目标节点 - const targetNode = document.body // 观察整个文档树的变化 - // 开始观察目标节点 - observer.observe(targetNode, observerOptions) - setTimeout(() => { - document.querySelectorAll('.discussion-list-item').forEach(item => addReportButtonToDiscussionItem(item)) - }, 270) - } - //----------------------------------------------通用函数--------------------------------------------- - function isMobile() { - let flag = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) - return flag - } - function formatFileSize(byteSize) { - if (byteSize < 1024) { - return `${byteSize.toFixed(2)} B` // 小于 1 KB 显示为字节 - } else if (byteSize < 1024 * 1024) { - return `${(byteSize / 1024).toFixed(2)} KB` // 介于 1 KB 到 1 MB 之间 - } else { - return `${(byteSize / (1024 * 1024)).toFixed(2)} MB` // 大于 1 MB - } - } - function toggleDownloadIcon(linkElement, isSpinning) { - // 确保传入的参数是一个有效的 HTML 元素 - if (!(linkElement instanceof HTMLElement)) { - return - } - // 添加 CSS 动画样式 - // 确保样式只添加一次 - if (!document.querySelector('.spin')) { - GM_addStyle(` - @keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } - } - .spin { - animation: spin 1s linear infinite; /* 旋转动画,持续时间 1 秒,线性渐变,无限循环 */ - } - `) - } - // 查找 svg 元素 - const svg = linkElement.querySelector('svg') - if (isSpinning) { - // 设置旋转的圆圈图标 - linkElement.innerHTML = ` - - ` - // 查找新创建的 svg 元素 - const newSvg = linkElement.querySelector('svg') - // 添加旋转效果的类 - if (newSvg) { - newSvg.classList.add('spin') - } - } else { - // 设置下载箭头图标 - linkElement.innerHTML = ` - - ` - // 查找新创建的 svg 元素 - const newSvg = linkElement.querySelector('svg') - // 移除旋转效果的类 - if (newSvg) { - newSvg.classList.remove('spin') - } - } - } - /** - * 检查当前网址是否匹配给定的正则表达式路径模式 - * @returns {boolean} - 如果当前网址匹配该路径模式,则返回 true;否则返回 false - */ - function isScriptCodePage() { - //const regex = /\/scripts\/\d+[^\s\/\\]*\/code(\/|$)/; - const regex = /\/code/ - return regex.test(window.location.href) - } - //是否为主页 - function isHomepage() { - - const profileLinkElement = document.querySelector("#nav-user-info > span.user-profile-link > a") - if (profileLinkElement) { - const href = profileLinkElement.getAttribute('href') - const match = href.match(/\/users\/(\d+)-/) - if (match) { - const userId = match[1] - const currentUrl = window.location.href - if (currentUrl.includes(`/users/${userId}`)) { - return true - } - } - } - return false - } - //下载函数 - function downloadFile(url, filename, callback, maxRetries = 3, zipInstance) { - let attempt = 0 // 当前尝试次数 - function tryDownload() { - var xhr = new XMLHttpRequest() - xhr.open('GET', url, true) - xhr.responseType = 'blob' - xhr.onload = function () { - if (xhr.status === 200) { - var blob = xhr.response - if (zipInstance) { - zipInstance.file(filename, blob) - } else { - var objectUrl = window.URL.createObjectURL(blob) - var a = document.createElement('a') - a.href = objectUrl - a.download = filename // 设置下载文件名 - document.body.appendChild(a) - a.click() - window.URL.revokeObjectURL(objectUrl) - document.body.removeChild(a) // 清理 DOM - } - if (callback && typeof callback === 'function') { - callback(null) // 执行回调,传递 null 表示没有错误 - } - } else { - // 请求失败的处理 - if (attempt < maxRetries) { - attempt++ - logMessage('downloadFile', `下载失败。正在重试... (${attempt}/${maxRetries})`, false) - tryDownload() // 重试下载 - } else { - if (callback && typeof callback === 'function') { - callback(new Error(translate('errorCode') + xhr.status)) - } - } - } - } - xhr.onerror = function () { - // 网络错误等导致请求无法完成时的处理 - if (attempt < maxRetries) { - attempt++ - logMessage('downloadFile', `网络错误。正在重试... (${attempt}/${maxRetries})`, false) - tryDownload() // 重试下载 - } else { - if (callback && typeof callback === 'function') { - callback(new Error(translate('errorNetwork'))) - } - } - } - xhr.send() - } - tryDownload() // 开始下载 - } - function getFilenameFromUrl(url) { - if (typeof url !== 'string' || url.trim() === '') { - logMessage('getFilenameFromUrl', 'URL无效,默认文件名download', false) - return 'download' // 返回一个默认的文件名 - } - var lastSlashIndex = url.lastIndexOf('/') - if (lastSlashIndex === -1 || lastSlashIndex === url.length - 1) { - logMessage('getFilenameFromUrl', 'URL格式无效缺少文件名,默认文件名download', false) - return 'download' // 返回一个默认的文件名 - } - var filenameWithExtension = url.substring(lastSlashIndex + 1) - var decodedFilename = decodeURIComponent(filenameWithExtension) - decodedFilename = decodedFilename.replace(/%20/g, '_') // 替换所有的 %20 为下划线 - return decodedFilename - } - async function printAllDataCodeUrls() { - const scriptList = document.querySelector('.script-list') - if (!scriptList) { - console.error('Script list not found') - return - } - - const button = document.createElement('button') - button.textContent = 'DownAll' - button.style.marginBottom = '10px' - scriptList.parentNode.insertBefore(button, scriptList) - - button.addEventListener('click', async () => { - button.disabled = true - const scriptItems = scriptList.querySelectorAll('li') - const totalFiles = scriptItems.length - let currentFile = 0 - const zip = new JSZip() - - function updateButtonText() { - button.textContent = ` (${currentFile}/${totalFiles})` - } - const downloadPromises = Array.from(scriptItems).map(item => { - const codeUrl = item.getAttribute('data-code-url') - const filename = getFilenameFromUrl(codeUrl) - return new Promise((resolve, reject) => { - downloadFile(codeUrl, filename, (error) => { - currentFile++ - updateButtonText() - if (error) { - reject(error) - } else { - resolve() - } - }, 3, zip) - }) - }) - try { - await Promise.all(downloadPromises) - const zipBlob = await zip.generateAsync({ type: 'blob' }) - const objectUrl = window.URL.createObjectURL(zipBlob) - const a = document.createElement('a') - a.href = objectUrl - a.download = `${document.title}.zip` - document.body.appendChild(a) - a.click() - window.URL.revokeObjectURL(objectUrl) - document.body.removeChild(a) - button.textContent = 'DownAll' - } catch (error) { - logMessage('', '下载所有脚本失败', false, error) - button.textContent = 'Failed' - } - button.disabled = false - }) - } - - printAllDataCodeUrls() - /** -* 在控制台输出带有样式的日志信息 -* @param {string} mainMessage - 主要日志信息 -* @param {string} extraMessage - 附加信息 -* @param {boolean} isSuccess - 如果为 true,附加信息为绿色;如果为 false,附加信息为红色 -*/ - function logMessage(mainMessage, extraMessage, isSuccess, extraMessageObject) { - if (!DEBUG) return - // 确保主要消息是字符串 - mainMessage = String(mainMessage) - // 确保附加信息是字符串 - extraMessage = String(extraMessage) - const formattedMainMessage = `[Greasyfork 糊裱匠-${mainMessage}]` - // 根据 isSuccess 参数设置附加信息的颜色 - const extraMessageStyle = isSuccess - ? 'color: green; font-size: 16px;' // 绿色样式 - : 'color: red; font-size: 16px;' // 红色样式 - // 输出日志信息 - if (extraMessageObject && typeof extraMessageObject === 'object') { - console.log( - '%c%s %c%s %c%o', - 'color: orange; font-size: 16px;', // 主要日志信息的橙色字体样式 - formattedMainMessage, // 主要日志信息 - extraMessageStyle, // 附加信息样式 - extraMessage, // 附加信息 - 'color: black; font-size: 16px;', // 对象信息样式 - extraMessageObject // 直接输出对象信息 - ) - } else { - console.log( - '%c%s %c%s', - 'color: orange; font-size: 16px;', // 主要日志信息的橙色字体样式 - formattedMainMessage, // 主要日志信息 - extraMessageStyle, // 附加信息样式 - extraMessage // 附加信息 - ) - } - } - function getCountryCode() { - return window.location.pathname.split('/')[1] - } - function addNavLink(link_text, linkurl, newtab, lastone, lclassname) { - var li = document.createElement('li') - if (lclassname) { - li.className = lclassname - } else { - li.className = 'scripts-index-link' - } - // 创建新的 元素 - var a = document.createElement('a') - a.href = linkurl - a.innerText = link_text - if (newtab) { - a.target = "_blank" // 设置为新窗口打开 - } - // 将 元素添加到
    5. 中 - li.appendChild(a) - // 将
    6. 元素添加到导航栏中 - var nav = document.querySelector('div#site-nav > nav') - if (nav) { - if (lastone) { - nav.append(li) - } else { - nav.prepend(li) - } - } else { - logMessage('addNavLink', '导航栏未找到', false) - } - } - // ------------------------------------------------------------- - //--STUB - 增加本地中文汉化 - if (getCountryCode() === 'zh-CN') { - const translatet = new Map() - translatet.set("Script Sets", "脚本收藏夹") - translatet.set("Edit", "编辑") - $("label, span, li, h3, a").each(function () { - var currentText = $(this).text() - if (translatet.has(currentText)) { - $(this).html(translatet.get(currentText)) - } - }) - } - //STUB - 导航栏更多不收缩 - if (Expandsubmenu) { - waitForElement('a[href="#"][onclick="return false"]').then(() => { - /* var submenu = document.querySelector('.with-submenu') - var links = submenu.querySelectorAll('nav li a') - var targetNav = document.querySelector('#site-nav > nav') - links.forEach(function (link) { - var newLi = document.createElement('li') - newLi.appendChild(link.cloneNode(true)) - targetNav.appendChild(newLi) - }) - var parentLi = submenu.closest('li') - if (parentLi) { - parentLi.remove() - } - var moreLink = document.querySelector('a[href="#"][onclick="return false"]') - if (moreLink) { - moreLink.remove() - } */ - GM_addStyle(` - .with-submenu { - display: none !important; - } - `) - let $siteNav = document.querySelector("#site-nav") - let $siteNavNav = $siteNav.querySelector("nav") - document.querySelectorAll(".with-submenu nav li").forEach(($ele) => { - $siteNavNav.appendChild($ele) - }) - }) - } - //STUB - 增加自动登录 - async function autoLogin() { - // 等待登录链接出现 - await waitForElement("span.sign-in-link a[rel=nofollow]") - let user = useremail - let pwd = userpassword - if (!user) { - Toast(translate('nostoredaccount'), 1000, '#ff6347', '#ffffff', 'top') - return - } - if (!pwd) { - Toast(translate('nostoredpassword'), 1000, '#ff6347', '#ffffff', 'top') - return - } - Toast(translate('autologinredirect'), 1000, 'rgb(18, 187, 2)', '#ffffff', 'top') - let csrfTokenMeta = document.querySelector("meta[name='csrf-token']") - if (!csrfTokenMeta) { - Toast(translate('getcsrftokenfailed'), 1000, '#ff6347', '#ffffff', 'top') - return - } - let csrfToken = csrfTokenMeta.getAttribute("content") - let postResp = await fetch("https://greasyfork.org/zh-CN/users/sign_in", { - method: 'POST', - headers: { - "Content-Type": "application/x-www-form-urlencoded" - }, - body: new URLSearchParams({ - authenticity_token: csrfToken, - 'user[email]': user, - 'user[password]': pwd, - 'user[remember_me]': '1', - commit: '登录' - }) - }) - if (postResp.status !== 200) { - Toast(translate('loginfailedconsole'), 1000, 'rgb(219, 27, 27)', '#ffffff', 'top') - logMessage("自动登录", "返回码错误", postResp.status, false) - return - } - let respText = await postResp.text() - let parser = new DOMParser() - let parseLoginHTMLNode = parser.parseFromString(respText, 'text/html') - if (parseLoginHTMLNode.querySelectorAll( - ".sign-out-link a[rel=nofollow][data-method='delete']" - ).length) { - Toast(translate('loginsuccessredirect'), 1000, 'rgb(18, 187, 2)', '#ffffff', 'top') - setTimeout(() => { - window.location.reload() - }, 1000) - } else { - Toast(translate('loginfailedelementnotfound'), 1000, 'rgb(219, 27, 27)', '#ffffff', 'top') - } - } - if (userautologin) { - autoLogin() - } - function waitForElement(selector) { - return new Promise((resolve) => { - const observer = new MutationObserver(() => { - if (document.querySelector(selector)) { - resolve() - observer.disconnect() - } - }) - observer.observe(document.body, { childList: true, subtree: true }) - }) - } - //STUB - 设置脚本列表为双列 - if (scriptlistdouble) { - const beautifyCenterContentCSS = ` - .sidebarred-main-content { - max-width: unset; - flex: unset; - } - ol#browse-script-list, - ol#user-script-list, - ol#user-library-script-list - { - display: flex; - flex-wrap: wrap; - border: none; - gap: 20px; - background: transparent; - box-shadow: none; - } - ol#browse-script-list .script-description, - ol#user-script-list.script-description, - ol#user-library-script-list.script-description - { - overflow-wrap: anywhere; - } - ol#browse-script-list li, - ol#user-script-list li, - ol#user-library-script-list li - { - border: 1px solid rgb(221, 221, 221); - border-radius: 5px; - flex: 1 1 45%; - box-shadow: rgb(221, 221, 221) 0px 0px 5px 2px; - } - ` - GM_addStyle(beautifyCenterContentCSS) - } - //STUB - 侧边栏 - if (useroutline) { - outline() - } - function outline() { - const $ = document.querySelector.bind(document) - const $$ = document.querySelectorAll.bind(document) - function sanitify(s) { - // Remove emojis (such a headache) - s = s.replaceAll(/([\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2580-\u27BF]|\uD83E[\uDD10-\uDEFF]|\uFE0F)/g, "") - // Trim spaces and newlines - s = s.trim() - // Replace spaces - s = s.replaceAll(" ", "-") - s = s.replaceAll("%20", "-") - // No more multiple "-" - s = s.replaceAll(/-+/g, "-") - return s - } - function process(node) { // Add anchor and assign id to given node; Add to outline. Return true if node is actually processed. - if (node.childElementCount > 1 || node.classList.length > 0) return false // Ignore complex nodes - const text = node.textContent - if (!node.id) { // If the node has no id - node.id = sanitify(text) // Then assign id - } - // Add anchors - const anchor = node.appendChild(document.createElement('a')) - anchor.className = 'anchor' - anchor.href = '#' + node.id - const link = outline.appendChild(document.createElement("li")) - .appendChild(document.createElement("a")) - link.href = "#" + node.id - link.text = text - return true - } - function injectCSS(css) { - const style = document.head.appendChild(document.createElement("style")) - style.id = "greasyfork-enhance-basic" - style.textContent = css - } - // Basic css - injectCSS(` - a.anchor::before { content: "#"; } - a.anchor { opacity: 0; text-decoration: none; padding: 0px 0.5em; transition: all 0.25s ease-in-out; } - h1:hover>a.anchor, h2:hover>a.anchor, h3:hover>a.anchor, - h4:hover>a.anchor, h5:hover>a.anchor, h6:hover>a.anchor { opacity: 1; transition: all 0.25s ease-in-out; } - aside.panel { display: none; } - .dynamic-opacity { transition: opacity 0.2s ease-in-out; opacity: 0.2; } - .dynamic-opacity:hover { opacity: 0.8; } - @media (any-hover: none) { .dynamic-opacity { opacity: 0.8; } .dynamic-opacity:hover { opacity: 0.8; } } - @media screen and (min-width: 767px) { - aside.panel { display: contents; line-height: 1.5; } - ul.outline { position: sticky; float: right; padding: 0 0 0 0.5em; margin: 0 0.5em -99vh; max-height: 80vh; border: 1px solid #BBBBBB; border-left: 2px solid #F2E5E5; box-shadow: 0 0 5px #ddd; background: linear-gradient(to right, #fcf1f1, #FFF 1em); list-style: none; width: 10.5%; color: gray; border-radius: 5px; overflow-y: scroll; z-index: 1; } - ul.outline > li { overflow: hidden; text-overflow: ellipsis; } - ul.outline > li > a { color: gray; white-space: nowrap; text-decoration: none; } - } -`) - let outline - const is_script = /^\/[^\/]+\/scripts/ - const is_specific_script = /^\/[^\/]+\/scripts\/\d+/ - const is_disccussion = /^\/[^\/]+\/discussions/ - const path = window.location.pathname - if ((!is_script.test(path) && !is_disccussion.test(path)) || is_specific_script.test(path)) { - const panel = $("body").insertBefore(document.createElement("aside"), $("body > div.width-constraint")) - panel.className = "panel" - const reference_node = $("body > div.width-constraint > section") - outline = panel.appendChild(document.createElement("ul")) - outline.classList.add("outline") - outline.classList.add("dynamic-opacity") - outline.style.top = reference_node ? getComputedStyle(reference_node).marginTop : "1em" - outline.style.marginTop = outline.style.top - let flag = false - $$("body > div.width-constraint h1, h2, h3, h4, h5, h6").forEach((node) => { - flag = process(node) || flag // Not `flag || process(node)`! - }) - if (!flag) { - panel.remove() - } - } - } - // STUB - 设置用户图片代理 - if (userimageproxy) { - const $$ = document.querySelectorAll.bind(document) - const PROXY = "https://wsrv.nl/?url=" - const images = $$("a[href^='/rails/active_storage/blobs/redirect/'] > img[src^='https://greasyfork.']") - for (const img of images) { - img.src = PROXY + img.src - const link = img.parentElement - link.href = PROXY + link.href - } - } - if (window.innerWidth < window.innerHeight) { - GM_addStyle(` - img.lum-img{ - width: 100% !important; - height: 100% !important; - } -.lum-next-button, -.lum-previous-button { - margin-top: 10px !important; /* 按钮之间的间距 */ - font-size: 12px; /* 文字大小 */ - padding: 5px 10px; /* 内边距,上下5px,左右10px */ - width: 35px; /* 自动宽度,以适应内容 */ - height: auto; /* 自动高度,以适应内容 */ -} - `) - } - if (fixElementoption && isMobile() === false) { - let element = document.querySelector("#script-list-option-groups") - if (!element) { - element = document.querySelector("body > div.width-constraint > div > div.sidebar.collapsed") - } - if (element) { - function fixElementInViewport() { - const viewportTop = window.scrollY - const viewportLeft = window.scrollX - const rect = element.getBoundingClientRect() - const elementWidth = rect.width - const elementHeight = rect.height - element.style.position = "fixed" - element.style.top = "60px" // 固定在距离视口顶部 10 像素的位置 - element.style.right = "10px" // 固定在距离视口右侧 10 像素的位置 - element.style.zIndex = "1000" - element.style.backgroundColor = "#fff" - element.style.boxShadow = "0 2px 5px rgba(0,0,0,0.3)" - element.style.overflow = "auto" // 允许内容滚动 - element.style.maxHeight = "800px" // 设置最大高度为视口高度减去顶部和底部的边距 - } - fixElementInViewport() - window.addEventListener('resize', fixElementInViewport) - window.addEventListener('scroll', fixElementInViewport) - } - } - /** - * 美化顶部导航栏 - */ - if (beautifyTopNav && isMobile() === false) { - beautifyTopNavigationBar() - function beautifyTopNavigationBar() { - const beautifyTopNavigationBarCSS = "#language-selector {\r\n display: none;\r\n}\r\n@media screen and (min-width: 600px) {\r\n body {\r\n --header-height: 50px;\r\n --el-gap: 20px;\r\n }\r\n\r\n header#main-header {\r\n height: var(--header-height);\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n z-index: 55555;\r\n padding: unset;\r\n display: flex;\r\n justify-content: space-around;\r\n }\r\n\r\n body > .width-constraint {\r\n margin-top: calc(var(--header-height) + 35px);\r\n }\r\n\r\n header#main-header .width-constraint {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--el-gap);\r\n padding: unset;\r\n margin: unset;\r\n max-width: unset;\r\n }\r\n\r\n header#main-header a {\r\n text-decoration: none;\r\n text-wrap: nowrap;\r\n }\r\n\r\n header#main-header .sign-out-link a {\r\n text-decoration: underline;\r\n }\r\n\r\n header#main-header #site-name {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n header#main-header #site-name img {\r\n width: calc(var(--header-height) - 5px);\r\n height: calc(var(--header-height) - 5px);\r\n }\r\n\r\n /* 隐藏Greasyfork文字 */\r\n header#main-header #site-name-text {\r\n display: none;\r\n }\r\n\r\n header#main-header #site-nav {\r\n display: flex;\r\n flex-direction: row-reverse;\r\n align-items: center;\r\n flex: 1;\r\n justify-content: space-between;\r\n height: 100%;\r\n gap: var(--el-gap);\r\n }\r\n\r\n header#main-header #site-nav nav li {\r\n padding: 0 0.5em;\r\n display: flex;\r\n align-items: center;\r\n height: var(--header-height);\r\n min-width: 30px;\r\n justify-content: center;\r\n }\r\n\r\n header#main-header #site-nav nav li:hover {\r\n background: #5f0101;\r\n }\r\n\r\n header#main-header #nav-user-info {\r\n max-width: 150px;\r\n }\r\n\r\n header#main-header #nav-user-info > span {\r\n /*flex: 1;*/\r\n flex: 1 0 auto;\r\n }\r\n\r\n header#main-header #nav-user-info,\r\n header#main-header #nav-user-info + nav {\r\n position: unset;\r\n width: unset;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n }\r\n}\r\n" - - GM_addStyle(beautifyTopNavigationBarCSS) - } - } -})() -///--STUB - 美化网页徽章等 greasyfork.org/scripts/436913 -function addbageStyles() { - const cssMain = ` - .report-link.report-link-abs::before { - content: "🚩 "; - } - .report-link.report-link-abs { - box-shadow: rgba(221, 46, 68, 0.52) 0px 0px 5px; - background-color: rgba(36, 36, 36, 0.9); - border: 0.16em solid rgb(217, 29, 53); - color: rgb(230, 33, 58) !important; - padding: 1px 4px 2px 0px; - letter-spacing: 0.029em; - text-decoration: none; - border-radius: 5px; - font-weight: 600; - scale: 0.9; - } - .report-link.report-link-abs:lang(ar), .report-link.report-link-abs:lang(ug), .report-link.report-link-abs:lang(he) { - direction: ltr; - margin-right: 90.46%; - } - .script-type { - box-shadow: rgba(221, 160, 15, 0.29) 0px 0px 5px; - background-color: rgba(36, 36, 36, 0.9); - border: 0.16em solid rgb(172, 81, 0); - color: rgb(221, 102, 15) !important; - padding: 0.8px 0.5ex 2px 2px; - font-variant: all-petite-caps; - border-radius: 4px; - position: relative; - font-weight: 800; - margin-left: 1ex; - font-size: 70%; - top: -0.2ex; - } - .sign-out-link { - color: rgb(5, 5, 5) !important; - } - ` - GM_addStyle(cssMain) -} -addbageStyles() diff --git a/Script details/greasyfork-utility-toolkit/Change history/README.md b/greasyfork-utility-toolkit/Change history/README.md similarity index 100% rename from Script details/greasyfork-utility-toolkit/Change history/README.md rename to greasyfork-utility-toolkit/Change history/README.md diff --git a/greasyfork-utility-toolkit/README.md b/greasyfork-utility-toolkit/README.md new file mode 100644 index 000000000..8020d74ac --- /dev/null +++ b/greasyfork-utility-toolkit/README.md @@ -0,0 +1,381 @@ + + +
      +
      + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
      + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
      +
      + + + +
      + + + + + +
      +

      Greasyfork 糊裱匠

      +

      「 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 」

      + Views + +

      Download:Github | ⭐Greasy + Fork

      更新记录

      🛠️ Greasyfork 糊裱匠 更新日志

      +

      📅 2024/9/29 11:47 - Ver 2.2.0.92

      +

      新增: • 个人主页添加 隐藏私信

      +
      +

      📅 2024/8/29 02:37 - Ver 2.2.0.70

      +

      新增: • 脚本详情页,所有脚本列表添加 脚本评分

      +
      +

      📅 2024/8/27 13:37 - Ver 2.2.0.65

      +

      修复: • 修复兼容性问题。

      +
      +

      📅 2024/8/26 08:32 - Ver 2.2.0.62

      +

      新增: • 在脚本列表顶部添加下载按钮,点击下载所有脚本。

      +
      +

      📅 2024/8/24 03:23 - Ver 2.2.0.59

      +

      优化: • 优化脚本列表图标显示位置。

      +
      +

      📅 2024/8/23 06:12 - Ver 2.2.0.57

      +

      优化: • 优化设置界面代码。

      +
      +

      📅 2024/8/20 02:20 - Ver 2.2.0.53

      +

      修复: • 修正脚本设置界面在移动设备上显示错乱问题。

      +
      +

      📅 2024/8/14 17:43 - Ver 2.2.0.47

      +

      新增: • 增加越南语言包,感谢网友 RenjiYuusei 翻译。

      +
      +

      📅 2024/8/13 04:43 - Ver 2.2.0.44

      +

      新增: • 增加 WebHook 页快捷跳转脚本管理。

      +
      +

      📅 2024/8/4 22:09 - Ver 2.2.0.35

      +

      修复: • 修复监听规则变化导致动态监听失败。
      +新增: • 监听规则增加:user-script-list-section browse-script-list

      +
      +

      📅 2024/7/20 - Ver 2.2.0.14

      +

      优化: • 复制 GreasyFork 优化 中的新 CSS。

      +
      +

      📅 2024/7/17 - Ver 2.2.0.9

      +

      新增:
      +• 增加 GreasyFork 优化 中的脚本双列显示。
      +• 增加 GreasyFork 优化 中的美化导航栏。
      +• 增加固定网站侧边操作栏。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.8

      +

      新增: • 完全的繁体语言支持。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.7

      +

      新增:
      +• 增加侧边导航栏开关。
      +• 增加图片代理(开启时不兼容 GreasyFork 优化 中的图片浏览)。
      +修复:
      +• 修复在移动设备上浏览图片超出浏览器外的问题。
      +• 修改在编辑代码时自动勾选美化。

      +
      +

      📅 2024/7/14 - Ver 2.2.0.6

      +

      新增:
      +• 添加导航栏展开 "更多"。
      +• 增加 Greasy Fork 增强 中的侧边导航栏。
      +优化: • 完善对多语言的支持。

      +
      +

      📅 2024/7/13 - Ver 2.2.0.5

      +

      新增: • 增加自动登录 GreasyFork 优化
      +修复: • 修复显示列表上的脚本安装状态。
      +优化: • 完善对多语言的支持。

      +
      + +
      + + + + + +## 脚本功能 + +为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作。该脚本从网站收集而来。 + +> ![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) > ![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) > ![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) > ![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) > ![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) > ![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) + +

      查看Greasyfork 糊裱匠的版本更新记录

      + + +## 功能介绍 + + + +### 脚本详情 + +- 切换文档视图与网页视图 +- 复制代码 +- 显示脚本图标 +- 清空图标缓存 +- 脚本历史增加安装 +- 增加下载按钮 +- 脚本代码显示行数字数 +- 按创建日期排序脚本列表 +- 复制库声明 +- 显示引用文件数 +- 复制短链接 +- 美化代码片段 +- 美化查看代码 + + + +### 脚本列表 + +- 列表显示安装下载 +- 锁定语言设置 +- 显示评分 +- 显示源码 +- 使用旧版列表 +- 显示所有语言脚本 +- 移动侧边栏 +- 按创建日期排序脚本列表 + + + +### 美化控件 + +- 控件美化 +- 美化选择框和单选框标签 + + + +### 适用于 + +- 启用增强 +- 新窗口打开 +- 显示在论坛的脚本数量 +- 详情适用于打开: + - 论坛搜索 + - 网页打开 + - 弹出提示 + + + +### 个人主页 + +- 清理旧的主页内容 +- 主页清理的天数 +- 主页脚本添加操作 +- 隐藏近期评论 +- 主页显示统计 + + + +### 导航栏 + +- 增加发布新脚本选项 +- 跳转成人脚本 +- 修复导航栏样式 +- 在导航栏添加打开本界面 +- 导航栏对齐 + + + +### 网站 + +- 自动启用代码编辑框美化 +- 在新标签页中打开链接 +- 精确日期 +- 网站最大化浏览 +- 一键举报 +- 本地代码高亮 +- 隐藏图标 +- 显示图标 +- 灰度已阅读评论 +- 隐藏已阅读评论 +- 侧边导航栏 +- 代理用户图片 + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +## 图片展示: + +![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) +![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) +![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) +![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) +![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) +![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) +![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) +![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) +![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) +![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) +![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) +![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) +![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) +![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
      + + diff --git a/greasyfork-utility-toolkit/README_en.md b/greasyfork-utility-toolkit/README_en.md new file mode 100644 index 000000000..fa4321636 --- /dev/null +++ b/greasyfork-utility-toolkit/README_en.md @@ -0,0 +1,417 @@ + + +
      +
      + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
      + 👆️accessGitHub Readme file on the app for a better experience。 +
      +
      + + + +
      + + + + + +
      +

      Greasyfork Glue craftsman

      +

      「 for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations 」

      + Views + +

      Download:Github | ⭐Greasy + Fork

      Update record

      🛠️ Greasyfork framer Change log

      +

      📅 2024/9/29 11:47 - Ver 2.2.0.92

      +

      New: • Add personal homepage Hide private messages

      +
      +

      📅 2024/8/29 02:37 - Ver 2.2.0.70

      +

      New: • Script details page,All scripts list added Script Rating

      +
      +

      📅 2024/8/27 13:37 - Ver 2.2.0.65

      +

      repair: • Fix compatibility issues。

      +
      +

      📅 2024/8/26 08:32 - Ver 2.2.0.62

      +

      New: • Add a download button at the top of the script list,Click to download all scripts。

      +
      +

      📅 2024/8/24 03:23 - Ver 2.2.0.59

      +

      optimization: • Optimize the display position of the script list icon。

      +
      +

      📅 2024/8/23 06:12 - Ver 2.2.0.57

      +

      optimization: • Optimize setting interface code。

      +
      +

      📅 2024/8/20 02:20 - Ver 2.2.0.53

      +

      repair: • Fixed an issue where the script setting interface displays incorrectly on mobile devices。

      +
      +

      📅 2024/8/14 17:43 - Ver 2.2.0.47

      +

      New: • Add Vietnamese language pack,Thanks netizens RenjiYuusei translate。

      +
      +

      📅 2024/8/13 04:43 - Ver 2.2.0.44

      +

      New: • Increase WebHook Page quick jump script management。

      +
      +

      📅 2024/8/4 22:09 - Ver 2.2.0.35

      +

      repair: • Fixed the issue of dynamic monitoring failure caused by changes in monitoring rules。
      +New: • Monitoring rules added:user-script-list-section browse-script-list

      +
      +

      📅 2024/7/20 - Ver 2.2.0.14

      +

      optimization: • copy GreasyFork optimization new in CSS。

      +
      +

      📅 2024/7/17 - Ver 2.2.0.9

      +

      New:
      +• Increase GreasyFork optimization Script in double column display。
      +• Increase GreasyFork optimization Beautify navigation bar in。
      +• Add fixed website side action bar。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.8

      +

      New: • Full traditional language support。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.7

      +

      New:
      +• Add side navigation bar switch。
      +• Add image proxy(Not compatible when enabled GreasyFork optimization Picture browsing in)。
      +repair:
      +• Fixed the problem of images being viewed outside the browser on mobile devices。
      +• Modify to automatically check beautification when editing code。

      +
      +

      📅 2024/7/14 - Ver 2.2.0.6

      +

      New:
      +• Add navigation bar expansion "More"。
      +• Increase Greasy Fork Enhance Side navigation bar in。
      +optimization: • Improve support for multiple languages。

      +
      +

      📅 2024/7/13 - Ver 2.2.0.5

      +

      New: • Add automatic login GreasyFork optimization
      +repair: • Fix script installation status on display list。
      +optimization: • Improve support for multiple languages。

      +
      + +
      + + + + + +## Script Overview: + +Provide various usage functions for Greasyfork, absolute time, web page widescreen, script page enhancement, download extension, panel repair and a series of operations. This script is collected from the website. + +> ![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) > ![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) > ![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) > ![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) > ![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) > ![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) + +--- + + + +## Features + + + +### Script Details + +- Switch Document View and Web View +- Copy Code +- Show Script Icon +- Clear Icon Cache +- Add Installation to Script History +- Add Download Button +- Display Line Numbers for Script Code +- Sort Script List by Creation Date +- Copy Library Declaration +- Show Number of Referenced Files +- Copy Short Link +- Beautify Code Snippets +- Beautify Code View + + + +### Script List + +- Display Installation and Download in List +- Lock Language Settings +- Show Ratings +- Show Source Code +- Use Old Version of List +- Show Scripts in All Languages +- Move Sidebar +- Sort Script List by Creation Date + + + +### Beautify Controls + +- Beautify Controls +- Beautify Select Box and Radio Button Labels + + + +### Applicable To + +- Enable Enhancement +- Open in New Window +- Show Number of Scripts on Forum +- Details Applicable To: + - Forum Search + - Open Webpage + - Popup Tip + + + +### Personal Homepage + +- Clean Up Old Homepage Content +- Days to Clean Homepage Content +- Add Scripts to Homepage +- Hide Recent Comments +- Display Statistics on Homepage + + + +### Navigation Bar + +- Add Option to Publish New Script +- Link to Adult Scripts +- Fix Navigation Bar Style +- Add "Open This Page" to Navigation Bar +- Align Navigation Bar + + + +### Website + +- Automatically Apply Code Editor Beautification +- Open Links in New Tab +- Precise Date +- Maximize Website View +- One-Click Report +- Local Code Highlighting +- Hide Icon +- Show Icon +- Grayscale Read Comments +- Hide Read Comments +- Side Navigation Bar +- Image Proxy + +--- + + + +## Thank you + + + +### Quote script + +- [Auto Enable Syntax-Highlighting Source Editor](https://greasyfork.org/zh-CN/scripts/22223) +- [Greasyfork in your language](https://greasyfork.org/zh-CN/scripts/6245) +- [Greasyfork excellentchange](https://greasyfork.org/zh-CN/scripts/411837) +- [GreasyFork Copy Code Snippet](https://greasyfork.org/zh-CN/scripts/423726) +- [Download Script Button](https://greasyfork.org/zh-CN/scripts/420872) +- [GreasyFork Script Icon](https://greasyfork.org/zh-CN/scripts/6861) +- [Add "Post a new script" Link](https://greasyfork.org/zh-CN/scripts/450357) +- [Open Scripts List Sorting for Creation Date by Default](https://greasyfork.org/zh-CN/scripts/495477) +- [Absolute Time on GreasyFork](https://greasyfork.org/zh-CN/scripts/470348) +- [foldstack greasyfork PassExpectdiscussArgument](https://greasyfork.org/scripts/426549/) +- [maximale Fensterbreite auf nutzen](https://greasyfork.org/de/scripts/36037) +- [Toggle HTML View](https://greasyfork.org/de/scripts/471149) +- [GreasyFork Header Style Fix](https://greasyfork.org/zh-CN/scripts/473269) +- [Greasy Fork Dark Theme](https://greasyfork.org/zh-CN/scripts/436913) +- [Greasyfork beautifulchange](https://greasyfork.org/zh-CN/scripts/446849) +- [Greasy Fork increasepowerful](https://greasyfork.org/scripts/467078) +- [Greasy Fork URL footbooknamesayclearreason](https://greasyfork.org/scripts/431940) +- [Greasyfork excellentchange](https://greasyfork.org/zh-CN/scripts/475722) +- [Greasy Fork: Mark Script Discussions as Read](https://greasyfork.org/scripts/438010) +- [Greasy Fork Bookmark](https://greasyfork.org/scripts/493406) +- [GreasyFork onekeytimesnewspapergarbagegarbagecommentArgument](https://greasyfork.org/scripts/474395) + +--- + + + +## Photos: + +![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) +![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) +![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) +![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) +![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) +![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) +![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) +![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) +![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) +![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) +![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) +![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) +![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) +![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) + +--- + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
      + + diff --git a/greasyfork-utility-toolkit/README_ko.md b/greasyfork-utility-toolkit/README_ko.md new file mode 100644 index 000000000..f018a64e6 --- /dev/null +++ b/greasyfork-utility-toolkit/README_ko.md @@ -0,0 +1,417 @@ + + +
      +
      + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
      + 👆️입장GitHub 더 나은 경험을 위한 앱의 Readme 파일。 +
      +
      + + + +
      + + + + + +
      +

      Greasyfork 프레이머

      +

      「 ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 」

      + Views + +

      Download:Github | ⭐Greasy + Fork

      기록 업데이트

      🛠️ Greasyfork 프레이머 변경 로그

      +

      📅 2024/9/29 11:47 - Ver 2.2.0.92

      +

      새로운: • 개인 홈페이지 추가 비공개 메시지 숨기기

      +
      +

      📅 2024/8/29 02:37 - Ver 2.2.0.70

      +

      새로운: • 스크립트 세부정보 페이지,모든 스크립트 목록이 추가되었습니다. 스크립트 등급

      +
      +

      📅 2024/8/27 13:37 - Ver 2.2.0.65

      +

      수리하다: • 호환성 문제 수정。

      +
      +

      📅 2024/8/26 08:32 - Ver 2.2.0.62

      +

      새로운: • 스크립트 목록 상단에 다운로드 버튼 추가,모든 스크립트를 다운로드하려면 클릭하세요.。

      +
      +

      📅 2024/8/24 03:23 - Ver 2.2.0.59

      +

      최적화: • 스크립트 목록 아이콘의 표시 위치 최적화。

      +
      +

      📅 2024/8/23 06:12 - Ver 2.2.0.57

      +

      최적화: • 설정 인터페이스 코드 최적화。

      +
      +

      📅 2024/8/20 02:20 - Ver 2.2.0.53

      +

      수리하다: • 모바일 장치에서 스크립트 설정 인터페이스가 잘못 표시되는 문제를 수정했습니다.。

      +
      +

      📅 2024/8/14 17:43 - Ver 2.2.0.47

      +

      새로운: • 베트남어 언어팩 추가,네티즌 여러분 감사합니다 RenjiYuusei 번역하다。

      +
      +

      📅 2024/8/13 04:43 - Ver 2.2.0.44

      +

      새로운: • 증가하다 WebHook 페이지 빠른 점프 스크립트 관리。

      +
      +

      📅 2024/8/4 22:09 - Ver 2.2.0.35

      +

      수리하다: • 모니터링 규칙 변경으로 인한 동적 모니터링 실패 문제 수정。
      +새로운: • 모니터링 규칙이 추가되었습니다.:user-script-list-section browse-script-list

      +
      +

      📅 2024/7/20 - Ver 2.2.0.14

      +

      최적화: • 복사 GreasyFork 최적화 새로운 CSS。

      +
      +

      📅 2024/7/17 - Ver 2.2.0.9

      +

      새로운:
      +• 증가하다 GreasyFork 최적화 이중 열 디스플레이의 스크립트。
      +• 증가하다 GreasyFork 최적화 내비게이션 바를 아름답게。
      +• 고정된 웹사이트 사이드 액션 바 추가。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.8

      +

      새로운: • 완전한 전통적인 언어 지원。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.7

      +

      새로운:
      +• 측면 탐색 표시줄 스위치 추가。
      +• 이미지 프록시 추가(활성화되면 호환되지 않음 GreasyFork 최적화 사진 찾아보기)。
      +수리하다:
      +• 모바일 기기에서 브라우저 외부에서 이미지가 보이는 문제 수정。
      +• 코드 편집 시 자동으로 미화를 확인하도록 수정。

      +
      +

      📅 2024/7/14 - Ver 2.2.0.6

      +

      새로운:
      +• 네비게이션 바 확장 추가 "더"。
      +• 증가하다 Greasy Fork 향상시키다 측면 탐색 모음。
      +최적화: • 다국어 지원 개선。

      +
      +

      📅 2024/7/13 - Ver 2.2.0.5

      +

      새로운: • 자동 로그인 추가 GreasyFork 최적화
      +수리하다: • 표시 목록의 스크립트 설치 상태 수정。
      +최적화: • 다국어 지원 개선。

      +
      + +
      + + + + + +## Greasyfork의 다양한 기능 제공 + +Greasyfork에 다양한 사용 기능을 제공하는 스크립트입니다. 절대 시간, 웹 페이지 넓은 화면, 스크립트 페이지 강화, 다운로드 확장, 패널 수정 등 일련의 작업을 지원합니다. 이 스크립트는 웹사이트에서 수집되었습니다. + +> ![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) > ![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) > ![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) > ![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) > ![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) > ![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) + +--- + + + +## 기능 소개 + + + +### 스크립트 상세 + +- 문서 보기와 웹 보기 전환 +- 코드 복사 +- 스크립트 아이콘 표시 +- 아이콘 캐시 비우기 +- 스크립트 히스토리에 설치 추가 +- 다운로드 버튼 추가 +- 스크립트 코드의 줄 수와 문자 수 표시 +- 생성일로 스크립트 목록 정렬 +- 라이브러리 선언 복사 +- 참조 파일 수 표시 +- 짧은 링크 복사 +- 코드 스니펫 미화 +- 코드 보기 미화 + + + +### 스크립트 목록 + +- 리스트 표시로 설치 및 다운로드 +- 언어 설정 잠금 +- 평가 표시 +- 소스 코드 표시 +- 구버전 목록 사용 +- 모든 언어 스크립트 표시 +- 사이드바 이동 +- 생성일로 스크립트 목록 정렬 + + + +### 미화 컨트롤 + +- 컨트롤 미화 +- 선택 상자와 라디오 버튼 레이블 미화 + + + +### 적용 대상 + +- 기능 확장 활성화 +- 새 창에서 열기 +- 포럼에서 스크립트 수 표시 +- 자세한 내용은 다음에 적용: + - 포럼 검색 + - 웹 페이지 열기 + - 팝업 알림 + + + +### 개인 홈페이지 + +- 오래된 홈페이지 콘텐츠 정리 +- 홈페이지 정리 일수 설정 +- 홈페이지 스크립트 추가 작업 +- 최근 댓글 숨기기 +- 홈페이지 통계 표시 + + + +### 탐색 바 + +- 새 스크립트 게시 옵션 추가 +- 성인 스크립트로 이동 +- 탐색 바 스타일 수정 +- 탐색 바에 이 인터페이스 열기 버튼 추가 +- 탐색 바 정렬 + + + +### 웹사이트 + +- 코드 편집기 미화 자동 활성화 +- 새 탭에서 링크 열기 +- 정확한 날짜 표시 +- 웹사이트 최대화 +- 원클릭 신고 +- 로컬 코드 하이라이트 +- 아이콘 숨기기 +- 아이콘 표시 +- 읽은 댓글 그레이 스케일 +- 읽은 댓글 숨기기 +- 사이드 내비게이션 바 +- 사용자 이미지 프록시 + +--- + + + +## 감사합니다 + + + +### 참고한 스크립트 + +- [Auto Enable Syntax-Highlighting Source Editor](https://greasyfork.org/zh-CN/scripts/22223) +- [Greasyfork in your language](https://greasyfork.org/zh-CN/scripts/6245) +- [Greasyfork 훌륭한변화](https://greasyfork.org/zh-CN/scripts/411837) +- [GreasyFork Copy Code Snippet](https://greasyfork.org/zh-CN/scripts/423726) +- [Download Script Button](https://greasyfork.org/zh-CN/scripts/420872) +- [GreasyFork Script Icon](https://greasyfork.org/zh-CN/scripts/6861) +- [Add "Post a new script" Link](https://greasyfork.org/zh-CN/scripts/450357) +- [Open Scripts List Sorting for Creation Date by Default](https://greasyfork.org/zh-CN/scripts/495477) +- [Absolute Time on GreasyFork](https://greasyfork.org/scripts/470348) +- [겹스택 greasyfork 통과하다예상하다논의하다논쟁](https://greasyfork.org/scripts/426549/) +- [maximale Fensterbreite auf nutzen](https://greasyfork.org/de/scripts/36037) +- [Toggle HTML View](https://greasyfork.org/de/scripts/471149) +- [GreasyFork Header Style Fix](https://greasyfork.org/zh-CN/scripts/473269) +- [Greasy Fork Dark Theme](https://greasyfork.org/zh-CN/scripts/436913) +- [Greasyfork 아름다운변화](https://greasyfork.org/zh-CN/scripts/446849) +- [Greasy Fork 증가하다강한](https://greasyfork.org/scripts/467078) +- [Greasy Fork URL 발책이름말하다분명한이유](https://greasyfork.org/scripts/431940) +- [Greasyfork 훌륭한변화](https://greasyfork.org/zh-CN/scripts/475722) +- [Greasy Fork: Mark Script Discussions as Read](https://greasyfork.org/scripts/438010) +- [Greasy Fork Bookmark](https://greasyfork.org/scripts/493406) +- [GreasyFork 하나열쇠시간신문쓰레기쓰레기논평논쟁](https://greasyfork.org/scripts/474395) + +--- + + + +## Photos: + +![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) +![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) +![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) +![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) +![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) +![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) +![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) +![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) +![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) +![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) +![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) +![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) +![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) +![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) + +--- + + + + +> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 +> +> - [**Greasy fork스크립트 페이지는 URL 향상에 적합합니다.**](https://greasyfork.org/scripts/497317): 스크립트 세부정보 페이지는 기본적으로 검색으로 이동하지 않는 URL에 적합합니다. 클릭 가능한 텍스트 링크로 변환 및 팝업 프롬프트 +> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. +> - [**GreaysFork 향상시키다WebHook동기화 설정**](https://greasyfork.org/scripts/506717): GreaysFork 스크립트 동기화 정보를 빠르게 입력하세요,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 포럼에서 사용되는 기본 형식은 다음과 같습니다.Markdown,형식 도움말 링크 추가 및 새 스크립트 게시,빠른 편집이 활성화된 응답 시간 도구 모음 +> - [**Greasyfork 평점을 표시하는 스크립트**](https://greasyfork.org/scripts/501119): 스크립트 목록 탐색 시 스크립트 이름 뒤에 스크립트 등급 추가 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색GreasyFork그리고SleazyFork상적 각본 +> - [**GreasyFork: 탐색 표시줄 개선**](https://greasyfork.org/scripts/501880): 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. +> - [**Greasyfork 프레이머**](https://greasyfork.org/scripts/497346): ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 +> - [**GreasyFork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 +> - [**Script Finder 그리스 원숭이 스크립트 조회**](https://greasyfork.org/scripts/498904): Script Finder 해당 웹사이트에 적용되는 웹사이트를 찾으세요. 그리스 원숭이 스크립트。 + + + + + +## 돕다 + +권장 브라우저 및 스크립트 관리자: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**사용자 스크립트 설치 방법에 대해 더 알고 싶다면,[나를 클릭하세요](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)그래픽 교육 보기!** + + + +### 모든 게시 스크립트 보기 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다ChatGPT관련 스크립트 +> +> - [**ChatGPT코드 글꼴 크기 감소**](https://greasyfork.org/scripts/505209): ChatGPT 코드 글꼴을 더 작게 만들기 자동으로 포장 +> - [**ChatGPT 채팅 코드 복사 및 코드 내보내기 버튼**](https://greasyfork.org/scripts/509598): 존재하다 chatgpt.com 상단 코드 블록의 오른쪽 하단에 애니메이션을 추가합니다.“코드 복사”버튼과 ChatGPT 응답으로 코드 블록에 내보내기 버튼이 추가됩니다.,코드 블록의 클래스 이름으로 감지된 프로그래밍 언어를 기반으로 파일에 코드를 저장하라는 메시지를 사용자에게 표시합니다.。 +> - [**ChatGPT 문자 카운터 제한 (CCCL)**](https://greasyfork.org/scripts/506166): 입력 상자에 문자 카운터 추가,로 제한됨 32732 문자。(ChatGPT 한도는 32732 문자。) +> - [**ChatGPT 자체 메시지 및 최대 너비 축소**](https://greasyfork.org/scripts/504901): 겹ChatGPT중간 및 긴“너”정보,그리고 최대 너비를 설정하세요 + + + + + + +> ### 🔍웹 관련 스크립트를 찾고 있을 수도 있습니다. +> +> - [**웹 페이지 작성 클립 버전 권한 관리자**](https://greasyfork.org/scripts/497403): 웹페이지의 클립보드 쓰기 동작을 관리하여 무단 자동 복사를 방지하고 오디오 및 비디오 콘텐츠 사전 로드 및 자동 재생을 비활성화합니다. +> - [**승강기CSDN로그인복사**](https://greasyfork.org/scripts/505207): 엿 먹어라CSDN로그인복사,로그인하지 않고 복사 +> - [**화려한 그라데이션으로 웹 양식을 아름답게 꾸미세요**](https://greasyfork.org/scripts/507036): 테이블의 모든 열에 색상 그라디언트를 자동으로 적용하여 아름답게 만듭니다. +> - [**웹페이지에서 키워드 강조표시**](https://greasyfork.org/scripts/498906): 웹페이지의 텍스트 강조표시,그것이 당신에게 도움이 된다면,마음대로 수정하여 사용할 수 있습니다. +> - [**웹페이지 키워드 강조**](https://greasyfork.org/scripts/498905): 스크롤 시 동적으로 로드되는 콘텐츠를 포함하여 웹페이지에서 사용자 정의 키워드 강조 표시 +> - [**작은 창 미리보기**](https://greasyfork.org/scripts/504880): 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 +> - [**링크 밑줄 제거**](https://greasyfork.org/scripts/498625): 모든 사이트의 링크 밑줄 제거,새 링크를 동적으로 처리합니다. +> - [**스크롤 버튼**](https://greasyfork.org/scripts/497251): 페이지 스크롤을 위해 페이지 오른쪽에 두 개의 버튼을 생성합니다. +> - [**상단 및 하단 버튼에 고정**](https://greasyfork.org/scripts/500255): 모든 페이지에 두 개의 버튼 생성,하나는 위쪽으로 부드럽게 하기 위한 것입니다.,하나는 아래쪽으로 계속 스크롤하기 위한 것입니다.,취소하려면 다시 클릭하세요. 맨 아래로 스크롤 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 정보 표시 웹뷰 제출**](https://greasyfork.org/scripts/505830): 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。 +> - [**GitHub 창고 빠른 점프 도우미**](https://greasyfork.org/scripts/515205): 🤠 GitHub 창고 빠른 점프 도우미는 사용자가 GitHub에서 자신의 창고에 빠르게 액세스할 수 있도록 특별히 설계되었습니다. 탐색 모음 상단에 버튼이 생성됩니다. 클릭하면 모든 저장소가 확장되고 GitHub의 보조 메뉴를 사용하지 않고도 자신의 GitHub 저장소 페이지로 쉽게 이동할 수 있습니다. +> - [**GitHub 파일 목록 미화자**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier는 사용자 스크립트입니다.,향상시키는 데 사용됨 GitHub 창고 내 파일 표시 효과。파일과 폴더에 색상을 추가할 수 있습니다.,파일 형식 아이콘을 작은 이미지로 바꿉니다.,코드 베이스를 더 쉽게 찾아보고 관리할 수 있습니다.。유형별로 파일에 색상 및 아이콘 추가,저장소 소스 트리의 파일 유형 아이콘 대신 작은 이미지 표시 +> - [**Github 코드 언어 목록 모두 표시**](https://greasyfork.org/scripts/509889): 확장하다 Github 저장소의 언어 목록,각 언어 표시,작은 부품을 숨기는 것보다“다른”아래에 +> - [**GitHub 장치 승인 자동 확인**](https://greasyfork.org/scripts/508956): 존재하다GitHub인증 페이지에서는 자동으로 인증 코드를 입력하고 자동으로 확인합니다.。 +> - [**GitHub 폴더 다운로더**](https://greasyfork.org/scripts/505496): 다운로드 버튼 추가,특정 파일을 쉽게 다운로드할 수 있습니다. GitHub 접는 사람。 +> - [**Github 원본 파일 복사 URL 다운로드 파일 포함**](https://greasyfork.org/scripts/505501): 각 파일 줄 끝에 추가 버튼,원본 파일을 복사하려면 URL 그리고 파일 다운로드 +> - [**🤠 Github 향상된 보조 창고 디스플레이 크기**](https://greasyfork.org/scripts/502291): 🤠 창고 표시 크기: GitHub의 코드 검색, 창고 검색, 이슈 페이지, 사용자 창고 목록 및 저장소 페이지에서 창고 이름 옆에 창고 크기가 표시되어 사용자가 창고 규모를 빠르게 이해하고 최적화할 수 있습니다. 선택. 비활성 개발 경고: 저장소가 지난 6개월 동안 업데이트되지 않은 경우 시스템은 저장소 상단에 프롬프트를 추가하여 사용자에게 저장소가 비활성 상태임을 알리고 마지막 업데이트 시간을 표시합니다. 이를 통해 사용자는 창고의 활동 및 유지 관리 상태를 확인할 수 있습니다. 창고 내 빠른 점프 : 창고 탐색 시 자신의 모든 창고 목록을 쉽게 확인할 수 있어, 다른 창고로 빠르게 이동할 수 있는 입구를 제공합니다. 사용자는 관심 있는 다른 프로젝트를 빠르게 찾고 액세스할 수 있어 작업 효율성이 향상됩니다. 사용 시나리오: 개발자: 웨어하우스 크기와 활성 경고를 표시함으로써 개발에 적합한 라이브러리를 빠르게 필터링하고 더 이상 유지 관리되지 않는 프로젝트의 사용을 피할 수 있습니다. 프로젝트 관리자: 퀵 점프 기능을 통해 여러 프로젝트를 쉽게 관리 및 조정하고 업무 효율성을 높일 수 있습니다. 학습자: 새로운 기술을 배울 때 관련 오픈소스 프로젝트를 더 쉽게 찾을 수 있고 프로젝트의 활동과 규모를 빠르게 확인할 수 있습니다. 🤠 +> - [**GitHub 날짜순으로 정렬**](https://greasyfork.org/scripts/505218): 파일 정렬을 날짜별 내림차순으로 변경,최신 업데이트 파일을 편리하게 확인하세요。 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다Google관련 스크립트 +> +> - [**Google 고급 검색 도우미**](https://greasyfork.org/scripts/502652): Google 검색 페이지 상단에 고급 검색 양식을 추가하세요. +> - [**Google 검색 사이트 차단**](https://greasyfork.org/scripts/500262): 존재하다google특정 사이트 검색 및 차단 + + + + + + +> ### 🔍당신은 찾고있을 수 있습니다GreasyFork관련 스크립트 +> +> - [**Greasy fork스크립트 페이지는 URL 향상에 적합합니다.**](https://greasyfork.org/scripts/497317): 스크립트 세부정보 페이지는 기본적으로 검색으로 이동하지 않는 URL에 적합합니다. 클릭 가능한 텍스트 링크로 변환 및 팝업 프롬프트 +> - [**GrreasyFork 사용자 게시 스크립트 데이터 시각화**](https://greasyfork.org/scripts/508968): 사용Chart.js사용자 스크립트 데이터 획득 및 시각화,그리고 사용자의 개인 홈페이지에 차트를 생성하여 아래와 같이 자세한 설치 현황을 표시합니다. +> - [**GreaysFork 향상시키다WebHook동기화 설정**](https://greasyfork.org/scripts/506717): GreaysFork 스크립트 동기화 정보를 빠르게 입력하세요,여러 국가의 언어 코드를 일괄 추가합니다.,선택 상자를 하나씩 클릭하여 해당 URL로 이동하는 대신。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 포럼에서 사용되는 기본 형식은 다음과 같습니다.Markdown,형식 도움말 링크 추가 및 새 스크립트 게시,빠른 편집이 활성화된 응답 시간 도구 모음 +> - [**Greasyfork 평점을 표시하는 스크립트**](https://greasyfork.org/scripts/501119): 스크립트 목록 탐색 시 스크립트 이름 뒤에 스크립트 등급 추가 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Google을 사용하여 검색GreasyFork그리고SleazyFork상적 각본 +> - [**GreasyFork: 탐색 표시줄 개선**](https://greasyfork.org/scripts/501880): 탐색 표시줄에 사용자 목록 추가,콘솔,수집 등.. +> - [**Greasyfork 프레이머**](https://greasyfork.org/scripts/497346): ~을 위한 Greasyfork 다양한 사용 기능 제공,절대 시간,웹 와이드스크린,스크립트 페이지 개선 사항,확장 프로그램 다운로드,패널 수리 및 일련의 작업 +> - [**GreasyFork 알림 도우미**](https://greasyfork.org/scripts/506345): 귀하의 스크립트나 귀하가 참여하고 있는 토론에 대한 새로운 답변이 있는 경우,스크립트는 웹 페이지의 모달 창에 최신 토론 내용을 표시합니다.。 +> - [**Script Finder 그리스 원숭이 스크립트 조회**](https://greasyfork.org/scripts/498904): Script Finder 해당 웹사이트에 적용되는 웹사이트를 찾으세요. 그리스 원숭이 스크립트。 + + + + + + +> ### 🔍성인용 스크립트를 찾고 있을 수도 있습니다. +> +> - [**MissAV 자동 로그인**](https://greasyfork.org/scripts/505325): 발각 MissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +> - [**MissAv즐겨찾는 동영상 일괄 백업**](https://greasyfork.org/scripts/497682): 현재부터missav이미지 파일 및 비디오 정보를 얻는 페이지,그리고 그 결과를 병합한 후 생성된 웹페이지 파일을 다운로드할 수 있도록 제공합니다. +> - [**ThisAV 자동 로그인**](https://greasyfork.org/scripts/506528): 발각 ThisAV 상태,로그인하지 않으면 자동으로 로그인됩니다. +> - [**JableTV 자동 로그인**](https://greasyfork.org/scripts/506730): 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. + + + + + + +> ### 🔍자동 번역을 찾고 계실 수도 있습니다 +> +> - [**외국어 터미네이터**](https://greasyfork.org/scripts/504890): 중국어가 아닌 문자 인식,길이가 그 이상인 경우5그리고 번역된 텍스트에는 중국어가 포함되어 있지 않습니다.,그런 다음 원본 텍스트를 중국어로 번역하고 바꿉니다. +> - [**웹페이지 번역——중국어로 자동 번역됨**](https://greasyfork.org/scripts/505208): 중국어가 아닌 웹페이지의 오른쪽 하단에 표시(왼쪽 하단으로 조정 가능)추가하다google번역 아이콘,이 버전은 중국어 번역 버전입니다.,외국어만 중국어로 번역하세요,자동 번역 추가 + + + + + + +
      + + diff --git a/greasyfork-utility-toolkit/README_zh-TW.md b/greasyfork-utility-toolkit/README_zh-TW.md new file mode 100644 index 000000000..4fdfa2191 --- /dev/null +++ b/greasyfork-utility-toolkit/README_zh-TW.md @@ -0,0 +1,435 @@ + + +
      +
      + + + + + 简体中文 | + English | + 한국어 | + 繁體中文 +
      + 👆️訪問GitHub 上的自述文件以獲得更好的體驗。 +
      +
      + + + +
      + + + + + +
      +

      Greasyfork 膠水工匠

      +

      「 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 」

      + Views + +

      Download:Github | ⭐Greasy + Fork

      更新記錄

      🛠️ Greasyfork 糊裱匠 更新日誌

      +

      📅 2024/9/29 11:47 - Ver 2.2.0.92

      +

      新增: • 個人主頁添加 隱藏私訊

      +
      +

      📅 2024/8/29 02:37 - Ver 2.2.0.70

      +

      新增: • 腳本詳情頁,所有腳本清單添加 腳本評分

      +
      +

      📅 2024/8/27 13:37 - Ver 2.2.0.65

      +

      修復: • 修復相容性問題。

      +
      +

      📅 2024/8/26 08:32 - Ver 2.2.0.62

      +

      新增: • 在腳本清單頂部新增下載按鈕,點擊下載所有腳本。

      +
      +

      📅 2024/8/24 03:23 - Ver 2.2.0.59

      +

      最佳化: • 優化腳本清單圖示顯示位置。

      +
      +

      📅 2024/8/23 06:12 - Ver 2.2.0.57

      +

      最佳化: • 優化設定介面程式碼。

      +
      +

      📅 2024/8/20 02:20 - Ver 2.2.0.53

      +

      修復: • 修正腳本設定介面在行動裝置上顯示錯亂問題。

      +
      +

      📅 2024/8/14 17:43 - Ver 2.2.0.47

      +

      新增: • 增加越南語言包,感謝網友 RenjiYuusei 翻譯。

      +
      +

      📅 2024/8/13 04:43 - Ver 2.2.0.44

      +

      新增: • 增加 WebHook 頁快速跳轉腳本管理。

      +
      +

      📅 2024/8/4 22:09 - Ver 2.2.0.35

      +

      修復: • 修復監聽規則變化導致動態監聽失敗。
      +新增: • 監聽規則增加:user-script-list-section browse-script-list

      +
      +

      📅 2024/7/20 - Ver 2.2.0.14

      +

      最佳化: • 複製 GreasyFork 最佳化 中的新 CSS。

      +
      +

      📅 2024/7/17 - Ver 2.2.0.9

      +

      新增:
      +• 增加 GreasyFork 最佳化 中的腳本雙列顯示。
      +• 增加 GreasyFork 最佳化 中的美化導覽列。
      +• 增加固定網站側邊操作欄。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.8

      +

      新增: • 完全的繁體語言支持。

      +
      +

      📅 2024/7/15 - Ver 2.2.0.7

      +

      新增:
      +• 增加側邊導覽欄開關。
      +• 增加圖片代理(開啟時不相容 GreasyFork 最佳化 中的圖片瀏覽)。
      +修復:
      +• 修復在行動裝置上瀏覽圖片超出瀏覽器外的問題。
      +• 修改在編輯程式碼時自動勾選美化。

      +
      +

      📅 2024/7/14 - Ver 2.2.0.6

      +

      新增:
      +• 新增導覽列展開 "更多"。
      +• 增加 Greasy Fork 增強 中的側邊導覽欄。
      +最佳化: • 完善對多語言的支持。

      +
      +

      📅 2024/7/13 - Ver 2.2.0.5

      +

      新增: • 增加自動登入 GreasyFork 最佳化
      +修復: • 修復顯示​​清單上的腳本安裝狀態。
      +最佳化: • 完善對多語言的支持。

      +
      + +
      + + + + + +## 腳本功能 + +為 Greasyfork 提供各種使用功能,絕對時間,網頁寬屏,腳本頁增強,下載拓展,面板修復等一系列操作。該腳本從網站收集而來。 + +> ![size](https://img.shields.io/github/size/ChinaGodMan/UserScripts/Greasyfork%20Utility%20Toolkit.user.js?color=%23990000) > ![dt](https://img.shields.io/greasyfork/dt/497346?color=%23990000&label=Installs) > ![Greasy Fork Downloads](https://img.shields.io/greasyfork/dd/497346?color=%23990000) > ![Greasy Fork License](https://img.shields.io/greasyfork/l/497346?color=%23990000) > ![Greasy Fork Rating](https://img.shields.io/greasyfork/rating-count/497346?color=%23990000) > ![Greasy Fork Version](https://img.shields.io/greasyfork/v/497346?color=%23990000) + +

      查看Greasyfork 糊裱匠的版本更新記錄

      + +--- + + + +## 功能介紹 + + + +### 腳本詳情 + +- 切換文檔視圖與網頁視圖 +- 復製代碼 +- 顯示腳本圖標 +- 清空圖標緩存 +- 腳本歷史增加安裝 +- 增加下載按鈕 +- 腳本代碼顯示行數字數 +- 按創建日期排序腳本列表 +- 復製庫聲明 +- 顯示引用文件數 +- 復製短鏈接 +- 美化代碼片段 +- 美化查看代碼 + + + +### 腳本列表 + +- 列表顯示安裝下載 +- 鎖定語言設置 +- 顯示評分 +- 顯示源碼 +- 使用舊版列表 +- 顯示所有語言腳本 +- 移動側邊欄 +- 按創建日期排序腳本列表 + + + +### 美化控件 + +- 控制美化 +- 美化選擇框和單選框標簽 + + + +### 適用於 + +- 啟用增強 +- 新窗口打開 +- 顯示在論壇的腳本數量 +- 詳情適用於打開: + - 論壇搜索 + - 網頁打開 + - 彈出提示 + + + +### 個人主頁 + +- 清理舊的主頁內容 +- 主頁清理的天數 +- 主頁腳本添加操作 +- 隱藏近期評論 +- 主頁顯示統計 + + + +### 導航欄 + +- 增加發布新腳本選項 +- 跳轉成人腳本 +- 修復導航欄樣式 +- 在導航欄添加打開本界面 +- 導航欄對齊 + + + +### 網站 + +- 自動啟用代碼編輯框美化 +- 在新標簽頁中打開鏈接 +- 精確日期 +- 網站最大化瀏覽 +- 一鍵舉報 +- 本地代碼高亮 +- 隱藏圖標 +- 顯示圖標 +- 灰度已閱讀評論 +- 隱藏已閱讀評論 +- 側邊導航欄 +- 代理用戶圖片 + +--- + + + +## 🌐 瀏覽器與腳本管理器 + +| 瀏覽器 | 腳本管理器 | +| :----------------------------------: | :------------------------------------------------------------: | +| Chrome 或 基於 Chromium 內核的瀏覽器 | [Tampermonkey][Tampermonkey] 或 [Violentmonkey][Violentmonkey] | +| Safari 瀏覽器(macOS, iOS, iPadOS) | [Macaque][Macaque] 或 [Stay][Stay] | +| Firefox 或 基於 Gecko 內核的瀏覽器 | [Tampermonkey][Tampermonkey] 或 [Violentmonkey][Violentmonkey] | +| Via 瀏覽器(Android) | 瀏覽器內自帶 | + +[Tampermonkey]: http://tampermonkey.net/ "篡改猴" +[Violentmonkey]: https://violentmonkey.github.io/ "暴力猴" +[Macaque]: https://macaque.app/ "獼猴" +[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay" + + + +## Thank you + + + +### 引用腳本 + +- [Auto Enable Syntax-Highlighting Source Editor](https://greasyfork.org/zh-CN/scripts/22223) +- [Greasyfork in your language](https://greasyfork.org/zh-CN/scripts/6245) +- [Greasyfork 優化](https://greasyfork.org/zh-CN/scripts/411837) +- [GreasyFork Copy Code Snippet](https://greasyfork.org/zh-CN/scripts/423726) +- [Download Script Button](https://greasyfork.org/zh-CN/scripts/420872) +- [GreasyFork Script Icon](https://greasyfork.org/zh-CN/scripts/6861) +- [Add "Post a new script" Link](https://greasyfork.org/zh-CN/scripts/450357) +- [Open Scripts List Sorting for Creation Date by Default](https://greasyfork.org/zh-CN/scripts/495477) +- [Absolute Time on GreasyFork](https://greasyfork.org/zh-CN/scripts/470348) +- [折疊 greasyfork 過期討論](https://greasyfork.org/scripts/426549/) +- [maximale Fensterbreite auf nutzen](https://greasyfork.org/de/scripts/36037) +- [Toggle HTML View](https://greasyfork.org/de/scripts/471149) +- [GreasyFork Header Style Fix](https://greasyfork.org/zh-CN/scripts/473269) +- [Greasy Fork Dark Theme](https://greasyfork.org/zh-CN/scripts/436913) +- [Greasyfork 美化](https://greasyfork.org/zh-CN/scripts/446849) +- [Greasy Fork 增強](https://greasyfork.org/zh-CN/scripts/467078) +- [Greasy Fork URL 腳本名稱清理](https://greasyfork.org/scripts/431940/) +- [Greasyfork 優化](https://greasyfork.org/zh-CN/scripts/475722) +- [Greasy Fork: Mark Script Discussions as Read](https://greasyfork.org/scripts/438010) +- [Greasy Fork Bookmark](https://greasyfork.org/scripts/493406) +- [GreasyFork 一鍵回報垃圾評論](https://greasyfork.org/scripts/474395) + +--- + + + +## 圖片展示: + +![nav.png](https://s2.loli.net/2024/08/05/ePCZp6TINsnLyht.png) +![maxw.png](https://s2.loli.net/2024/08/05/NuKCdETWZ8epkVO.png) +![rep2.png](https://s2.loli.net/2024/08/05/oBN6yVteI5phWDa.png) +![code2.png](https://s2.loli.net/2024/08/05/7K5uIdoYv3l8LkR.png) +![libdown.png](https://s2.loli.net/2024/08/05/XNcaLeiAxbzvhZu.png) +![hidec.png](https://s2.loli.net/2024/08/05/dPgULVlHmuIiqDC.png) +![hisdown.png](https://s2.loli.net/2024/08/05/kuNwm3VWlhce7sH.png) +![allscriptlist.png](https://s2.loli.net/2024/08/05/Oq9DGAm7FzjpSg6.png) +![scripcode.png](https://s2.loli.net/2024/08/05/g7FXurVS2ynjvab.png) +![rep1.png](https://s2.loli.net/2024/08/05/IbWEv1nFUuXfs4e.png) +![user.png](https://s2.loli.net/2024/08/05/felk9jJKWDMLI54.png) +![time.png](https://s2.loli.net/2024/08/05/9ZTCra3btwQRzqj.png) +![scriptdet.png](https://s2.loli.net/2024/08/05/9pMfdUi2qHDREek.png) +![scriptlist.png](https://s2.loli.net/2024/08/05/3xrMsHPSDtTf8hu.png) + +--- + + + + +> ### 🔍你可能在找GreasyFork相關腳本 +> +> - [**Greasy fork腳本頁面適用於網址增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁適用於網址不預設跳轉搜尋 轉為可點擊的文字連結並彈出提示 +> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 +> - [**GreaysFork 增強WebHook同步設定**](https://greasyfork.org/scripts/506717): GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 +> - [**Greasyfork 腳本顯示評分**](https://greasyfork.org/scripts/501119): 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋GreasyFork和SleazyFork上體文字 +> - [**GreasyFork: 導覽列增強**](https://greasyfork.org/scripts/501880): 在導覽列上新增使用者列表,主機,收藏等.. +> - [**Greasyfork 膠水工匠**](https://greasyfork.org/scripts/497346): 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 +> - [**Script Finder 油猴腳本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 + + + + + +## 使用幫助 + +推薦瀏覽器和腳本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多關於如何安裝使用者腳本,[點擊我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看圖文教學!** + + + +### 查看所有發布腳本 + + + + + + +> ### 🔍你可能在找ChatGPT相關腳本 +> +> - [**ChatGPT程式碼字體縮小**](https://greasyfork.org/scripts/505209): ChatGPT 讓程式碼字體變小 並且自動折行 +> - [**ChatGPT 聊天複製程式碼和匯出程式碼按鈕**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代碼區塊的右下角添加一個帶有動畫的“複製程式碼”按鈕和一個為 ChatGPT 響應中的程式碼區塊新增匯出按鈕,提示使用者根據程式碼區塊的類別名稱偵測到的程式語言將程式碼儲存為文件。 +> - [**ChatGPT 字元計數器限制 (CCCL)**](https://greasyfork.org/scripts/506166): 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。) +> - [**ChatGPT 折疊自己訊息和最大寬度**](https://greasyfork.org/scripts/504901): 折疊ChatGPT中較長的“你”訊息,並設定最大寬度 + + + + + + +> ### 🔍你可能在找網頁相關腳本 +> +> - [**網頁寫入剪輯版授權管理員**](https://greasyfork.org/scripts/497403): 管理網頁對剪貼簿的寫入行為防止未經授權的自動複製和停用音視頻內容預載及自動播放。 +> - [**解除CSDN登入複製**](https://greasyfork.org/scripts/505207): 去你媽的CSDN登入複製,無需登入即可複製 +> - [**絢麗漸層美化網頁表格**](https://greasyfork.org/scripts/507036): 自動為表格所有欄位套用色彩漸層來美化 +> - [**網頁高亮關鍵字**](https://greasyfork.org/scripts/498906): 對網頁上的文字進行高亮顯示,如果對你有幫助,可以隨意修改使用 +> - [**網頁關鍵字高亮顯示**](https://greasyfork.org/scripts/498905): 在網頁上自訂關鍵字突出顯示包括滾動時動態載入的內容 +> - [**小窗預覽**](https://greasyfork.org/scripts/504880): 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 +> - [**移除連結下劃線**](https://greasyfork.org/scripts/498625): 移除所有網站上的連結底線,並動態處理新鏈接 +> - [**上下滾動按鈕**](https://greasyfork.org/scripts/497251): 在頁面右側產生兩個按鈕用於滾動頁面 +> - [**置頂和置底按鈕**](https://greasyfork.org/scripts/500255): 在所有頁面產生兩個按鈕,一個用於順滑回到頂部,一個用於持續滾動到底部,再次點擊取消捲動到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交資料顯示網頁視圖**](https://greasyfork.org/scripts/505830): 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。 +> - [**GitHub 倉庫快速跳轉助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 倉庫快速跳轉助手,專為幫助用戶快速存取自己在 GitHub 上的倉庫而設計 。它在導覽列頂部產生一個按鈕,點擊展開自己的所有倉庫,輕鬆跳到自己的 GitHub 倉庫頁面,而無需使用 GitHub 的二級選單 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件清單美化器是一個使用者腳本,用於增強 GitHub 倉庫中的文件顯示效果。它可以為文件和資料夾添加顏色,並將文件類型圖示替換為小圖像,使得程式碼庫更加易於瀏覽和管理。按類型為文件添加顏色和圖標,在儲存庫來源樹中顯示小圖像以取代文件類型圖標 +> - [**Github 代碼語言列表顯示全部**](https://greasyfork.org/scripts/509889): 擴充 Github 儲存庫上的語言列表,顯示每種語言,而不是將小部分隱藏在“其他”下 +> - [**GitHub 自動確認設備授權**](https://greasyfork.org/scripts/508956): 在GitHub授權頁面自動輸入授權碼與自動確認。 +> - [**GitHub 資料夾下載器**](https://greasyfork.org/scripts/505496): 新增一個下載按鈕,允許輕鬆下載特定的 GitHub 資料夾。 +> - [**Github 複製原始文件 URL 與下載文件**](https://greasyfork.org/scripts/505501): 在每個文件行的末尾新增按鈕,以複製原始文件 URL 和下載文件 +> - [**🤠 Github 增強小助手 倉庫顯示大小**](https://greasyfork.org/scripts/502291): 🤠 倉庫顯示大小:在 GitHub 的程式碼搜尋、倉庫搜尋、議題頁面、使用者倉庫清單和儲存庫頁面上,倉庫名稱旁會顯示該倉庫的大小,方便使用者快速了解倉庫的規模,最佳化選擇。不活躍開發警告:如果某個倉庫在過去六個月內沒有更新,系統會在倉庫的頂部添加提示,提醒用戶該倉庫不活躍,並顯示最後一次更新的時間。這有助於使用者判斷倉庫的活躍程度和維護狀況。倉庫內快速跳轉:在瀏覽倉庫時,使用者可以方便地查看該使用者的所有倉庫列表,提供一個快速跳到不同倉庫的入口。用戶可以快速找到和存取感興趣的其他項目,提高工作效率。使用情境:開發者:可以透過顯示倉庫大小和活躍警告,快速篩選出適當的庫進行開發,避免使用不再維護的項目。專案管理者:透過快速跳轉功能,方便管理和協調多個項目,提高工作效率。學習者:在學習新科技時,可以更方便地找到相關的開源項目,快速查看專案的活躍程度和規模。 🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 將文件排序方式改為日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相關腳本 +> +> - [**Google 高級搜尋助手**](https://greasyfork.org/scripts/502652): 在谷歌搜尋頁面頂部新增一個高級搜尋表單 +> - [**封鎖谷歌搜尋站點**](https://greasyfork.org/scripts/500262): 在google搜尋屏蔽指定站點 + + + + + + +> ### 🔍你可能在找GreasyFork相關腳本 +> +> - [**Greasy fork腳本頁面適用於網址增強**](https://greasyfork.org/scripts/497317): 腳本詳情頁適用於網址不預設跳轉搜尋 轉為可點擊的文字連結並彈出提示 +> - [**GrreasyFork 用戶發布的腳本資料視覺化**](https://greasyfork.org/scripts/508968): 使用Chart.js獲取和可視化獲取用戶腳本數據,並在使用者個人主頁產生圖表在下方顯示詳細安裝情況 +> - [**GreaysFork 增強WebHook同步設定**](https://greasyfork.org/scripts/506717): GreaysFork 快速輸入腳本同步訊息,並批量增加多個國家的語言代碼,而不用一個個地點擊選擇框再去對應的網址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在論壇預設使用格式為Markdown,新增格式幫助連結及在發布新腳本,回覆時間啟用快速編輯的工具列 +> - [**Greasyfork 腳本顯示評分**](https://greasyfork.org/scripts/501119): 在瀏覽腳本清單時在腳本名稱後面新增腳本評分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜尋GreasyFork和SleazyFork上體文字 +> - [**GreasyFork: 導覽列增強**](https://greasyfork.org/scripts/501880): 在導覽列上新增使用者列表,主機,收藏等.. +> - [**Greasyfork 膠水工匠**](https://greasyfork.org/scripts/497346): 為 Greasyfork 提供各種使用功能,絕對時間,網頁寬螢幕,腳本頁增強,下載拓展,面板修復等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 當你的腳本或你參與的討論有新回應時,腳本會在網頁上以模態視窗顯示最新的討論內容。 +> - [**Script Finder 油猴腳本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 + + + + + + +> ### 🔍你可能在找成人腳本 +> +> - [**MissAV 自動登入**](https://greasyfork.org/scripts/505325): 偵測 MissAV 狀態,並且在未登入時自動登入 +> - [**MissAv批量備份收藏視頻**](https://greasyfork.org/scripts/497682): 從目前missav頁面獲取圖片文件和視頻信息,並合併結果後提供下載產生的網頁文件 +> - [**ThisAV 自動登入**](https://greasyfork.org/scripts/506528): 偵測 ThisAV 狀態,並且在未登入時自動登入 +> - [**JableTV 自動登入**](https://greasyfork.org/scripts/506730): 偵測 JableTV 狀態,並且在未登入時自動登入 + + + + + + +> ### 🔍你可能在找自動翻譯 +> +> - [**外語終結者**](https://greasyfork.org/scripts/504890): 識別非中文字符,如果長度大於5且翻譯文中不含中文,則翻譯並且取代原始文字到中文 +> - [**網頁翻譯——自動翻譯為中文**](https://greasyfork.org/scripts/505208): 給每個非中文的網頁右下角(可以調整到左下角)添加一個google翻譯圖示,此版本為中文翻譯版本,只把外文翻譯為中文,新增自動翻譯 + + + + + + +
      + + diff --git a/Script details/greasyfork-utility-toolkit/greasyfork-utility-toolkit.user.js b/greasyfork-utility-toolkit/greasyfork-utility-toolkit.user.js similarity index 92% rename from Script details/greasyfork-utility-toolkit/greasyfork-utility-toolkit.user.js rename to greasyfork-utility-toolkit/greasyfork-utility-toolkit.user.js index 97b545bd0..d0c2ae2e7 100644 --- a/Script details/greasyfork-utility-toolkit/greasyfork-utility-toolkit.user.js +++ b/greasyfork-utility-toolkit/greasyfork-utility-toolkit.user.js @@ -21,7 +21,7 @@ // @name:es Greasyfork Artesano del pegamento // @description:es para Greasyfork Proporcionar varias funciones de uso.,tiempo absoluto,pantalla ancha web,Mejoras en la página de script,Descargar extensión,Reparación de paneles y una serie de operaciones. // @name:fi Greasyfork Liiman käsityöläinen -// @description:fi varten Greasyfork Tarjoa erilaisia ​​käyttötoimintoja,absoluuttinen aika,Web laajakuva,Käsikirjoitussivun parannukset,Lataa laajennus,Paneelin korjaus ja sarja toimenpiteitä +// @description:fi varten Greasyfork Tarjoa erilaisia käyttötoimintoja,absoluuttinen aika,Web laajakuva,Käsikirjoitussivun parannukset,Lataa laajennus,Paneelin korjaus ja sarja toimenpiteitä // @name:fr Greasyfork Artisan de la colle // @description:fr pour Greasyfork Fournir diverses fonctions d’utilisation,temps absolu,Web grand écran,Améliorations de la page de script,Télécharger l’extension,Réparation de panneaux et série d’opérations // @name:he Greasyfork אומן דבק @@ -102,7 +102,7 @@ // @version 2.2.0.92 // @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHN0eWxlPSJmaWxsOiAjRDcyMzIzOyI+PHBhdGggZD0iTTIwMC4zIDI2OS45Yy0xNS43IDYuNi0zMi43IDEwLjEtNTAuMyAxMC4xLTM0LjcgMC02Ny40LTEzLjUtOTEuOS0zOC4xQzMzLjUgMjE3LjQgMjAgMTg0LjcgMjAgMTUwczEzLjUtNjcuNCAzOC4xLTkxLjlDODIuNiAzMy41IDExNS4zIDIwIDE1MCAyMHM2Ny40IDEzLjUgOTEuOSAzOC4xQzI2Ni41IDgyLjYgMjgwIDExNS4zIDI4MCAxNTBjMCAxNy42LTMuNSAzNC42LTEwIDUwLjMgNSA1IDEwIDEwLjEgMTUuMSAxNS4xIDkuNi0xOS44IDE1LTQyIDE1LTY1LjRDMzAwIDY3LjIgMjMyLjggMCAxNTAgMFMwIDY3LjIgMCAxNTBzNjcuMiAxNTAgMTUwIDE1MGMyMy40IDAgNDUuNi01LjQgNjUuNC0xNS01LjEtNS0xMC4xLTEwLjEtMTUuMS0xNS4xeiIvPjxwYXRoIGQ9Ik0yNjcuOCAzMDBjLTkuNi0xLjMtMTYuNS03LTIzLjEtMTMuNy0xNC45LTE1LjMtMzAuMS0zMC4yLTQ1LjItNDUuMy05LjMtOS4zLTEyLTIwLjEtNy41LTMyLjcuMy0uOC4zLTIuMS0uMi0yLjYtMy45LTQuMS03LjktOC0xMi0xMi4xLTYuNCA0LTEzLjEgNi43LTIwLjUgNy42LTE1LjUgMS45LTI5LTIuNC00MC4yLTEzLjItMTIuMy0xMS44LTI0LjItMjQtMzYuMi0zNi4xLTMuNS0zLjUtNC4xLTcuNC0yLjItMTEuMiAxLjktMy43IDUuOS02LjQgOS43LTUuNiAyLjUuNSA1LjEgMiA2LjkgMy44IDcuNCA3LjEgMTQuNSAxNC40IDIxLjggMjEuNi42LjYgMS4zIDEuMiAxLjcgMS42bDEzLjgtMTMuOGMtNi4yLTYuMS0xMi42LTEyLjUtMTguOS0xOC45LTEuOS0xLjktMy44LTMuNy01LjYtNS42LTMuOC00LjItMy43LTkuNy4yLTEzLjYgMy45LTMuOSA5LjUtNC4xIDEzLjYtLjEgNy41IDcuMyAxNC44IDE0LjcgMjIuMSAyMi4xLjguOCAxLjUgMS44IDIuMSAyLjRsMTQuMy0xNC4zYy0yLTEuOC00LjUtNC02LjgtNi4zLTYtNS45LTExLjktMTEuOC0xNy44LTE3LjgtMi43LTIuNy0zLjctNS45LTIuNC05LjYgMS40LTMuOSA0LjItNi4zIDguMy02LjkgMy40LS42IDYgMSA4LjQgMy4zbDE0LjcgMTQuN2M3LjQgNy40IDE0LjkgMTQuNiAyMiAyMi4yIDE0LjcgMTUuNyAxNyAzOS4xIDYuMSA1Ny43LS40LjctLjcgMS40LTEuMyAyLjQgMy45IDMuOSA3LjkgNy44IDExLjkgMTEuNi42LjUgMiAuNiAyLjguMyAxMi41LTQuNCAyMy4zLTEuNyAzMi43IDcuNiAxNS4xIDE1LjEgMzAuMSAzMC4zIDQ1LjMgNDUuMiA2LjcgNi41IDEyLjQgMTMuNCAxMy43IDIzdjUuOGMtLjIuNS0uNCAxLjEtLjUgMS42LTEuOCA5LjUtNi42IDE3LTE1LjUgMjEuMi0zLjMgMS42LTYuOSAyLjMtMTAuNCAzLjUtMS45LjItMy44LjItNS44LjJ6Ii8+PHBhdGggZD0iTTE3MCAyMTkuNmMtMi43LjctNS40IDEuMi04LjIgMS41LTMuMS40LTYuMi42LTkuMi42LTE3LjkgMC0zNC4yLTYuNi00Ny4yLTE5LjItMTAuMi05LjgtMjAuMi0yMC0zMC0yOS44bC02LjYtNi42Yy05LjUtOS41LTExLjctMjIuNy01LjgtMzQuMyA0LjktOS42IDE0LjQtMTYgMjQuNS0xNi42LjUtNi45IDMuNS0xMy42IDguOS0xOC45IDUuMi01LjEgMTEuOC04LjIgMTguNy04LjcuMi0yLjUuNy00LjkgMS42LTcuNCAzLjgtMTAuOCAxMi42LTE4LjEgMjMuOS0yMCAxLjUtLjIgMy4xLS40IDQuNi0uNCA1LjQgMCAxMy40IDEuNiAyMS4xIDkuMiA0LjcgNC43IDkuNiA5LjUgMTQuOCAxNC43IDIuMSAyLjIgNC40IDQuNCA2LjUgNi41IDUuMyA1LjIgMTAuNyAxMC42IDE1LjkgMTYuMiAxMC4yIDEwLjkgMTYuNCAyNC41IDE3LjkgMzkuMy45IDguMi4yIDE2LjQtMS44IDI0LjJoLjFjMTIuOCAwIDI0LjcgNS4xIDM0LjcgMTQuOCAzLjYtMTAuOSA1LjYtMjIuNiA1LjYtMzQuNyAwLTYwLjgtNDkuMi0xMTAtMTEwLTExMFM0MCA4OS4yIDQwIDE1MHM0OS4yIDExMCAxMTAgMTEwYzEyLjEgMCAyMy44LTIgMzQuNy01LjYtOS44LTEwLjEtMTQuOC0yMi4xLTE0LjctMzQuOHoiLz48L3N2Zz4= // @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/RedFork.svg -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://greasyfork.org/* // @match https://sleazyfork.org/* // @license MIT @@ -145,14 +145,14 @@ const translate = (function () { 'install': 'Install', 'downloadFailed': 'Download failed', 'dallScripts': 'All Released Scripts', - 'JSScripts': "Number of JS Scripts:", - 'CSSScripts': "Number of CSS Scripts:", - 'DailyTotal': "Daily Installs:", - 'TotalInstalls': "Total Installs:", - 'bad': "Total Bad Reviews:", - 'good': "Total Good Reviews:", - 'ok': "Average:", - 'loading': "Fetching, please wait.", + 'JSScripts': 'Number of JS Scripts:', + 'CSSScripts': 'Number of CSS Scripts:', + 'DailyTotal': 'Daily Installs:', + 'TotalInstalls': 'Total Installs:', + 'bad': 'Total Bad Reviews:', + 'good': 'Total Good Reviews:', + 'ok': 'Average:', + 'loading': 'Fetching, please wait.', 'viewauthor': 'Author', 'viewdaily_installs': 'Daily installs', 'tviewotal_installs': 'Total installs', @@ -227,7 +227,7 @@ const translate = (function () { 'ScriptListdouble': 'ScriptListdouble', 'beautifyTopNav': 'BeautifyNav', 'fixElementoption': 'Fix Sidebar', - '1169082': 'Thank you for visiting the 勤务员’s homepage', + '1169082': 'Thank you for visiting the 勤务员’s homepage' }, 'zh-CN': { 'newScript': '发布新脚本', @@ -343,7 +343,7 @@ const translate = (function () { 'ScriptListdouble': '双列显示', 'beautifyTopNav': '美化导航栏', 'fixElementoption': '侧边栏固定', - '1169082': '感谢光临勤务员的主页', + '1169082': '感谢光临勤务员的主页' }, 'zh-TW': { 'newScript': '發布新腳本', @@ -376,15 +376,15 @@ const translate = (function () { 'errorNetwork': '下載失敗,網路錯誤或跨域問題', 'install': '安裝', 'downloadFailed': '下載失敗', - 'dallScripts': "所有發布腳本", - 'JSScripts': "JS腳本數量:", - 'CSSScripts': "CSS腳本數量:", - 'DailyTotal': "每日安裝:", - 'TotalInstalls': "總安裝:", - 'bad': "總差評:", - 'good': "總好評:", - 'ok': "一般:", - 'loading': "正在獲取中,請耐心等待。", + 'dallScripts': '所有發布腳本', + 'JSScripts': 'JS腳本數量:', + 'CSSScripts': 'CSS腳本數量:', + 'DailyTotal': '每日安裝:', + 'TotalInstalls': '總安裝:', + 'bad': '總差評:', + 'good': '總好評:', + 'ok': '一般:', + 'loading': '正在獲取中,請耐心等待。', 'viewauthor': '作者', 'viewdaily_installs': '日安裝量', 'viewtotal_installs': '總安裝量', @@ -456,7 +456,7 @@ const translate = (function () { 'useroutlines': '側邊導航', 'ScriptListdouble': '雙列顯示', 'beautifyTopNav': '美化導覽列', - 'fixElementoption': '側邊欄固定', + 'fixElementoption': '側邊欄固定' }, 'ja': { 'newScript': '新しいスクリプトを公開する', @@ -489,84 +489,84 @@ const translate = (function () { 'errorNetwork': 'ダウンロードに失敗しました、ネットワークエラーまたはクロスドメインの問題が発生しました', 'install': 'インストール', 'downloadFailed': 'ダウンロードに失敗しました', - 'dallScripts': "すべてのリリースされたスクリプト", - 'JSScripts': "JSスクリプトの数:", - 'CSSScripts': "CSSスクリプトの数:", - 'DailyTotal': "毎日のインストール:", - 'TotalInstalls': "総インストール数:", - 'bad': "総悪いレビュー:", - 'good': "総良いレビュー:", - 'ok': "平均:", - 'loading': "取得中、お待ちください。", - "viewauthor": "作者", - "viewdaily_installs": "日ごとのインストール数", - "tviewotal_installs": "総インストール数", - "viewfan_score": "評価", - "viewversion": "バージョン", - "viewcreated_at": "作成日", - "viewcode_updated_at": "更新日", - "viewlicense": "ライセンス", - "viewlocale": "対応バージョン", - "copyto": "コードをコピー", - "htmlViewtotext": "ドキュメントビューを切り替え", - "texttohtmlView": "ウェブページビューを切り替え", - "Rememberme": "ログインページで「この情報を記憶する」を選択", - "locklang": "ウェブサイトの言語を切り替えます:", - "locklangset": "言語を選択後に設定をロック", - "openindoc": "ナビゲーションバーにこのページを追加", - "thisname": "Greasyfork 糊裱匠", - "脚本详情": "スクリプト詳細", - "导航栏": "ナビゲーションバー", - "website": "ウェブサイト", - "复制短链接": "短縮リンクをコピー", - "主页脚本添加操作": "ホームページのスクリプト追加操作", - "copylib": "ライブラリ宣言をコピー", - "barvertical": "ナビゲーションバーの配置", - "followsystem": "システムに従う", - "daymode": "デイモード", - "nightmode": "ナイトモード", - "cleariconcache": "アイコンキャッシュをクリア", - "expandmore": "「もっと見る」を展開", - "localbookmarks": "ブックマーク", - "scriptlist": "スクリプト一覧", - "oneclickreport": "ワンクリックで報告", - "hidereadcomments": "既読コメントを非表示", - "italicizereadcomments": "既読コメントを斜体にする", - "enableautologin": "自動ログインを有効にする", - "account": "アカウント", - "password": "パスワード", - "listdisplayinstallationdownload": "インストールとダウンロードを一覧表示", - "useoldversionlist": "旧バージョンのリストを使用", - "showscriptall": "すべての言語のスクリプトを表示", - "displaystatisticsonhomepage": "ホームページに統計を表示", - "beautifycontrols": "コントロールを美化", - "applyto": "対応バージョン", - "enableenhancements": "機能拡張を有効にする", - "openinnewwindow": "新しいウィンドウで開く", - "detailsapplytoopen": "詳細情報に適用して開く", - "forumsearch": "フォーラム検索", - "webpageopen": "ウェブページを開く", - "popupprompt": "ポップアップでの通知", - "displaycitationcount": "引用ファイル数を表示", - "beautifycodesnippets": "コードスニペットを美化", - "beautifycodeview": "コードの表示を美化", - "beautifycodetheme": "コードのテーマを美化", - "hiderrecentcomments": "最近のコメントを非表示", - "personalhomepage": "個人のホームページ", - "showscriptsinforum": "フォーラムでのスクリプト数を表示", - "downgradeto": "バージョンをダウングレードする:", - "reinstall": "再インストール", - "upgradeto": "バージョンをアップグレードする:", - "autologinredirect": "自動的にログインページにリダイレクトします...", - "nostoredaccount": "ローカルに保存されたアカウントがありません", - "nostoredpassword": "ローカルに保存されたパスワードがありません", - "getcsrftokenfailed": "CSRFトークンの取得に失敗しました", - "loginfailedconsole": "ログインに失敗しました。コンソールで原因を確認してください", - "loginsuccessredirect": "ログイン成功、1秒後に自動的にリダイレクトします", - "loginfailedelementnotfound": "ログインに失敗しました。要素が見つかりません", - "report": "報告", - "imageproxy": "ユーザーアップロード画像のプロキシ", - "useroutlines": "サイドナビゲーション", + 'dallScripts': 'すべてのリリースされたスクリプト', + 'JSScripts': 'JSスクリプトの数:', + 'CSSScripts': 'CSSスクリプトの数:', + 'DailyTotal': '毎日のインストール:', + 'TotalInstalls': '総インストール数:', + 'bad': '総悪いレビュー:', + 'good': '総良いレビュー:', + 'ok': '平均:', + 'loading': '取得中、お待ちください。', + 'viewauthor': '作者', + 'viewdaily_installs': '日ごとのインストール数', + 'tviewotal_installs': '総インストール数', + 'viewfan_score': '評価', + 'viewversion': 'バージョン', + 'viewcreated_at': '作成日', + 'viewcode_updated_at': '更新日', + 'viewlicense': 'ライセンス', + 'viewlocale': '対応バージョン', + 'copyto': 'コードをコピー', + 'htmlViewtotext': 'ドキュメントビューを切り替え', + 'texttohtmlView': 'ウェブページビューを切り替え', + 'Rememberme': 'ログインページで「この情報を記憶する」を選択', + 'locklang': 'ウェブサイトの言語を切り替えます:', + 'locklangset': '言語を選択後に設定をロック', + 'openindoc': 'ナビゲーションバーにこのページを追加', + 'thisname': 'Greasyfork 糊裱匠', + '脚本详情': 'スクリプト詳細', + '导航栏': 'ナビゲーションバー', + 'website': 'ウェブサイト', + '复制短链接': '短縮リンクをコピー', + '主页脚本添加操作': 'ホームページのスクリプト追加操作', + 'copylib': 'ライブラリ宣言をコピー', + 'barvertical': 'ナビゲーションバーの配置', + 'followsystem': 'システムに従う', + 'daymode': 'デイモード', + 'nightmode': 'ナイトモード', + 'cleariconcache': 'アイコンキャッシュをクリア', + 'expandmore': '「もっと見る」を展開', + 'localbookmarks': 'ブックマーク', + 'scriptlist': 'スクリプト一覧', + 'oneclickreport': 'ワンクリックで報告', + 'hidereadcomments': '既読コメントを非表示', + 'italicizereadcomments': '既読コメントを斜体にする', + 'enableautologin': '自動ログインを有効にする', + 'account': 'アカウント', + 'password': 'パスワード', + 'listdisplayinstallationdownload': 'インストールとダウンロードを一覧表示', + 'useoldversionlist': '旧バージョンのリストを使用', + 'showscriptall': 'すべての言語のスクリプトを表示', + 'displaystatisticsonhomepage': 'ホームページに統計を表示', + 'beautifycontrols': 'コントロールを美化', + 'applyto': '対応バージョン', + 'enableenhancements': '機能拡張を有効にする', + 'openinnewwindow': '新しいウィンドウで開く', + 'detailsapplytoopen': '詳細情報に適用して開く', + 'forumsearch': 'フォーラム検索', + 'webpageopen': 'ウェブページを開く', + 'popupprompt': 'ポップアップでの通知', + 'displaycitationcount': '引用ファイル数を表示', + 'beautifycodesnippets': 'コードスニペットを美化', + 'beautifycodeview': 'コードの表示を美化', + 'beautifycodetheme': 'コードのテーマを美化', + 'hiderrecentcomments': '最近のコメントを非表示', + 'personalhomepage': '個人のホームページ', + 'showscriptsinforum': 'フォーラムでのスクリプト数を表示', + 'downgradeto': 'バージョンをダウングレードする:', + 'reinstall': '再インストール', + 'upgradeto': 'バージョンをアップグレードする:', + 'autologinredirect': '自動的にログインページにリダイレクトします...', + 'nostoredaccount': 'ローカルに保存されたアカウントがありません', + 'nostoredpassword': 'ローカルに保存されたパスワードがありません', + 'getcsrftokenfailed': 'CSRFトークンの取得に失敗しました', + 'loginfailedconsole': 'ログインに失敗しました。コンソールで原因を確認してください', + 'loginsuccessredirect': 'ログイン成功、1秒後に自動的にリダイレクトします', + 'loginfailedelementnotfound': 'ログインに失敗しました。要素が見つかりません', + 'report': '報告', + 'imageproxy': 'ユーザーアップロード画像のプロキシ', + 'useroutlines': 'サイドナビゲーション' }, 'ko': { 'newScript': '새 스크립트 게시', @@ -599,15 +599,15 @@ const translate = (function () { 'errorNetwork': '다운로드 실패, 네트워크 오류 또는 크로스도메인 문제', 'install': '설치', 'downloadFailed': '다운로드 실패', - 'dallScripts': "모든 릴리스된 스크립트", - 'JSScripts': "JS 스크립트 수:", - 'CSSScripts': "CSS 스크립트 수:", - 'DailyTotal': "일일 설치:", - 'TotalInstalls': "총 설치:", - 'bad': "총 나쁜 리뷰:", - 'good': "총 좋은 리뷰:", - 'ok': "보통:", - 'loading': "가져오는 중, 잠시 기다려 주세요." + 'dallScripts': '모든 릴리스된 스크립트', + 'JSScripts': 'JS 스크립트 수:', + 'CSSScripts': 'CSS 스크립트 수:', + 'DailyTotal': '일일 설치:', + 'TotalInstalls': '총 설치:', + 'bad': '총 나쁜 리뷰:', + 'good': '총 좋은 리뷰:', + 'ok': '보통:', + 'loading': '가져오는 중, 잠시 기다려 주세요.' }, 'ru': { 'newScript': 'Опубликовать новый скрипт', @@ -640,15 +640,15 @@ const translate = (function () { 'errorNetwork': 'Сбой загрузки, сетевая ошибка или проблема с кросс-доменом', 'install': 'Установить', 'downloadFailed': 'Сбой загрузки', - 'dallScripts': "Все выпущенные скрипты", - 'JSScripts': "Количество JS скриптов:", - 'CSSScripts': "Количество CSS скриптов:", - 'DailyTotal': "Ежедневные установки:", - 'TotalInstalls': "Всего установок:", - 'bad': "Всего плохих отзывов:", - 'good': "Всего хороших отзывов:", - 'ok': "Средний:", - 'loading': "Получение данных, пожалуйста, подождите." + 'dallScripts': 'Все выпущенные скрипты', + 'JSScripts': 'Количество JS скриптов:', + 'CSSScripts': 'Количество CSS скриптов:', + 'DailyTotal': 'Ежедневные установки:', + 'TotalInstalls': 'Всего установок:', + 'bad': 'Всего плохих отзывов:', + 'good': 'Всего хороших отзывов:', + 'ok': 'Средний:', + 'loading': 'Получение данных, пожалуйста, подождите.' }, 'de': { 'newScript': 'Neues Skript veröffentlichen', @@ -681,15 +681,15 @@ const translate = (function () { 'errorNetwork': 'Download fehlgeschlagen, Netzwerkfehler oder Cross-Domain-Probleme', 'install': 'Installieren', 'downloadFailed': 'Download fehlgeschlagen', - 'dallScripts': "Alle veröffentlichten Skripte", - 'JSScripts': "Anzahl der JS-Skripte:", - 'CSSScripts': "Anzahl der CSS-Skripte:", - 'DailyTotal': "Tägliche Installationen:", - 'TotalInstalls': "Gesamtinstallationen:", - 'bad': "Gesamtschlechte Bewertungen:", - 'good': "Gesamtgute Bewertungen:", - 'ok': "Durchschnitt:", - 'loading': "Abrufen, bitte warten." + 'dallScripts': 'Alle veröffentlichten Skripte', + 'JSScripts': 'Anzahl der JS-Skripte:', + 'CSSScripts': 'Anzahl der CSS-Skripte:', + 'DailyTotal': 'Tägliche Installationen:', + 'TotalInstalls': 'Gesamtinstallationen:', + 'bad': 'Gesamtschlechte Bewertungen:', + 'good': 'Gesamtgute Bewertungen:', + 'ok': 'Durchschnitt:', + 'loading': 'Abrufen, bitte warten.' }, 'fr': { 'newScript': 'Publier un nouveau script', @@ -722,15 +722,15 @@ const translate = (function () { 'errorNetwork': 'Échec du téléchargement, erreur réseau ou problème de domaine croisé', 'install': 'Installer', 'downloadFailed': 'Échec du téléchargement', - 'dallScripts': "Tous les scripts publiés", - 'JSScripts': "Nombre de scripts JS:", - 'CSSScripts': "Nombre de scripts CSS:", - 'DailyTotal': "Installations quotidiennes:", - 'TotalInstalls': "Total des installations:", - 'bad': "Total des mauvais avis:", - 'good': "Total des bons avis:", - 'ok': "Moyenne:", - 'loading': "Récupération en cours, veuillez patienter." + 'dallScripts': 'Tous les scripts publiés', + 'JSScripts': 'Nombre de scripts JS:', + 'CSSScripts': 'Nombre de scripts CSS:', + 'DailyTotal': 'Installations quotidiennes:', + 'TotalInstalls': 'Total des installations:', + 'bad': 'Total des mauvais avis:', + 'good': 'Total des bons avis:', + 'ok': 'Moyenne:', + 'loading': 'Récupération en cours, veuillez patienter.' }, 'it': { 'newScript': 'Pubblica nuovo script', @@ -763,15 +763,15 @@ const translate = (function () { 'errorNetwork': 'Download fallito, errore di rete o problema di dominio incrociato', 'install': 'Installa', 'downloadFailed': 'Download fallito', - 'dallScripts': "Tutti gli script rilasciati", - 'JSScripts': "Numero di script JS:", - 'CSSScripts': "Numero di script CSS:", - 'DailyTotal': "Installazioni giornaliere:", - 'TotalInstalls': "Installazioni totali:", - 'bad': "Totale recensioni negative:", - 'good': "Totale recensioni positive:", - 'ok': "Media:", - 'loading': "Recupero in corso, attendere prego." + 'dallScripts': 'Tutti gli script rilasciati', + 'JSScripts': 'Numero di script JS:', + 'CSSScripts': 'Numero di script CSS:', + 'DailyTotal': 'Installazioni giornaliere:', + 'TotalInstalls': 'Installazioni totali:', + 'bad': 'Totale recensioni negative:', + 'good': 'Totale recensioni positive:', + 'ok': 'Media:', + 'loading': 'Recupero in corso, attendere prego.' }, 'ar': { 'newScript': 'نشر سكريبت جديد', @@ -804,15 +804,15 @@ const translate = (function () { 'errorNetwork': 'فشل التحميل، خطأ في الشبكة أو مشكلة في النطاق العابر', 'install': 'تثبيت', 'downloadFailed': 'فشل التحميل', - 'dallScripts': "جميع البرامج النصية المنشورة", - 'JSScripts': "عدد برامج JS النصية:", - 'CSSScripts': "عدد برامج CSS النصية:", - 'DailyTotal': "التثبيتات اليومية:", - 'TotalInstalls': "إجمالي التثبيتات:", - 'bad': "إجمالي التقييمات السلبية:", - 'good': "إجمالي التقييمات الإيجابية:", - 'ok': "متوسط:", - 'loading': "جارٍ التحميل، يرجى الانتظار." + 'dallScripts': 'جميع البرامج النصية المنشورة', + 'JSScripts': 'عدد برامج JS النصية:', + 'CSSScripts': 'عدد برامج CSS النصية:', + 'DailyTotal': 'التثبيتات اليومية:', + 'TotalInstalls': 'إجمالي التثبيتات:', + 'bad': 'إجمالي التقييمات السلبية:', + 'good': 'إجمالي التقييمات الإيجابية:', + 'ok': 'متوسط:', + 'loading': 'جارٍ التحميل، يرجى الانتظار.' }, 'he': { 'newScript': 'פרסם סקריפט חדש', @@ -845,15 +845,15 @@ const translate = (function () { 'errorNetwork': 'הורדה נכשלה, בעיה ברשת או בקריאה חוצה דומיין', 'install': 'התקן', 'downloadFailed': 'הורדה נכשלה', - 'dallScripts': "כל הסקריפטים שפורסמו", - 'JSScripts': "מספר סקריפטים JS:", - 'CSSScripts': "מספר סקריפטים CSS:", - 'DailyTotal': "התקנות יומיות:", - 'TotalInstalls': "סך ההתקנות:", - 'bad': "סה\"כ ביקורות רעות:", - 'good': "סה\"כ ביקורות טובות:", - 'ok': "ממוצע:", - 'loading': "טוען, נא להמתין." + 'dallScripts': 'כל הסקריפטים שפורסמו', + 'JSScripts': 'מספר סקריפטים JS:', + 'CSSScripts': 'מספר סקריפטים CSS:', + 'DailyTotal': 'התקנות יומיות:', + 'TotalInstalls': 'סך ההתקנות:', + 'bad': 'סה"כ ביקורות רעות:', + 'good': 'סה"כ ביקורות טובות:', + 'ok': 'ממוצע:', + 'loading': 'טוען, נא להמתין.' }, 'vi': { 'newScript': 'Đăng Kịch bản mới', @@ -887,14 +887,14 @@ const translate = (function () { 'install': 'Cài đặt', 'downloadFailed': 'Tải xuống không thành công', 'dallScripts': 'Tất cả Kịch bản đã Phát hành', - 'JSScripts': "Số lượng Kịch bản JS:", - 'CSSScripts': "Số lượng Kịch bản CSS:", - 'DailyTotal': "Lượt Cài đặt Hàng ngày:", - 'TotalInstalls': "Tổng số Lượt Cài đặt:", - 'bad': "Tổng số Đánh giá Xấu:", - 'good': "Tổng số Đánh giá Tốt:", - 'ok': "Trung bình:", - 'loading': "Đang tải, vui lòng đợi.", + 'JSScripts': 'Số lượng Kịch bản JS:', + 'CSSScripts': 'Số lượng Kịch bản CSS:', + 'DailyTotal': 'Lượt Cài đặt Hàng ngày:', + 'TotalInstalls': 'Tổng số Lượt Cài đặt:', + 'bad': 'Tổng số Đánh giá Xấu:', + 'good': 'Tổng số Đánh giá Tốt:', + 'ok': 'Trung bình:', + 'loading': 'Đang tải, vui lòng đợi.', 'viewauthor': 'Tác giả', 'viewdaily_installs': 'Lượt cài đặt hàng ngày', 'tviewotal_installs': 'Tổng lượt cài đặt', @@ -967,7 +967,7 @@ const translate = (function () { 'ScriptListdouble': 'Danh sách Kịch bản kép', 'beautifyTopNav': 'Làm đẹp Thanh điều hướng', 'fixElementoption': 'Sửa Thanh bên', - '1169082': 'Cảm ơn bạn đã ghé thăm trang chủ của 勤务员', + '1169082': 'Cảm ơn bạn đã ghé thăm trang chủ của 勤务员' } } return (id, lang = '') => { @@ -981,7 +981,7 @@ const translate = (function () { //FIXME - 基本配置 var DEBUG = false // 控制是否启用调试模式 function DEBUG11() { - const profileLinkElement = document.querySelector("#nav-user-info > span.user-profile-link > a") + const profileLinkElement = document.querySelector('#nav-user-info > span.user-profile-link > a') if (profileLinkElement) { const href = profileLinkElement.getAttribute('href') if (href && href.includes('1169082')) { @@ -1055,10 +1055,10 @@ const translate = (function () { Object.keys(settings).forEach(key => { const setting = settings[key] window[key] = setting.parse ? setting.parse(GM_getValue(key, setting.default)) : GM_getValue(key, setting.default) - logMessage(`${key}: ${window[key]} // ${setting.comment}`, ` `, true) + logMessage(`${key}: ${window[key]} // ${setting.comment}`, ' ', true) }) if (window.location.href.includes('users/1169082')) { - const targetElement = document.querySelector("#about-user > h2") + const targetElement = document.querySelector('#about-user > h2') if (targetElement) { targetElement.innerHTML += ' ' + translate('1169082') + '' } @@ -1067,18 +1067,18 @@ const translate = (function () { if (Postlink) { const country_code = getCountryCode() setTimeout(function () { - addNavLink(translate('newScript'), "/" + country_code + '/script_versions/new', false) + addNavLink(translate('newScript'), '/' + country_code + '/script_versions/new', false) }, 100) } - if (remme && document.querySelector("#new_user > div:nth-child(4) > label")) { + if (remme && document.querySelector('#new_user > div:nth-child(4) > label')) { //STUB - 登录页面自动点击记住我 function clickLabelsDirectly() { // 直接选中并点击第一个元素 - document.querySelector("#new_user > div:nth-child(4) > label").click() + document.querySelector('#new_user > div:nth-child(4) > label').click() // 直接选中并点击第二个元素 - document.querySelector("body > div.width-constraint > section > div > div > form > div.remember-me > label").click() + document.querySelector('body > div.width-constraint > section > div > div > form > div.remember-me > label').click() } - if (window.location.href.includes("users/sign_in")) { + if (window.location.href.includes('users/sign_in')) { clickLabelsDirectly() } } @@ -1105,14 +1105,14 @@ const translate = (function () { } //STUB - 作者界面清理超过30天的评论 if (clearhomepage) { - if (window.location.href.includes("users")) { - let items = document.querySelectorAll("#user-discussions-on-scripts-written > section > div") + if (window.location.href.includes('users')) { + let items = document.querySelectorAll('#user-discussions-on-scripts-written > section > div') let now = new Date() let num = 0 for (let item of items) { let item_time = item.querySelector('relative-time').date if (now - new Date(item_time) > 24 * 3600 * 1000 * clearhomepagedays) { - item.style.display = "none" + item.style.display = 'none' num += 1 } } @@ -1120,47 +1120,47 @@ const translate = (function () { } //STUB - 修复导航栏不在中间 if (wightnav) { - var e = document.getElementsByClassName("width-constraint") - e[0].style.maxWidth = "95%" //header + var e = document.getElementsByClassName('width-constraint') + e[0].style.maxWidth = '95%' //header } //STUB - 最大化使用 if (greasymaxWidth) { try { - var e = document.getElementsByClassName("width-constraint") - e[0].style.maxWidth = "95%" //header - e[1].style.maxWidth = "95%" //content + var max = document.getElementsByClassName('width-constraint') + max[0].style.maxWidth = '95%' //header + max[1].style.maxWidth = '95%' //content } catch (exp) { } try { - document.getElementById("browse-script-list").style.width = "100%" + document.getElementById('browse-script-list').style.width = '100%' } catch (exp) { } //suchergebnisse; try { - document.getElementById("user-script-list").style.width = "100%" + document.getElementById('user-script-list').style.width = '100%' } catch (exp) { } //suchergebnisse; try { - document.getElementById("script-list-option-groups").style.width = "100%" + document.getElementById('script-list-option-groups').style.width = '100%' } catch (exp) { } //sidebar; try { - document.getElementById("carbonads").style.height = "0px" + document.getElementById('carbonads').style.height = '0px' } catch (exp) { } //carbon werbung //try{document.getElementsByClassName("adsbygoogle")[0].style.height = "0px";}catch(exp){} //google werbung } //STUB - 点击导航栏默认跳转创建日期 if (scriptwithdata) { - var scriptslinks = document.getElementsByClassName("scripts-index-link") + var scriptslinks = document.getElementsByClassName('scripts-index-link') if (userhandleLocaleFilter) { - scriptslinks[0].firstChild.href = scriptslinks[0].firstChild.href.replace("/scripts", "/scripts?sort=created&filter_locale=0") + scriptslinks[0].firstChild.href = scriptslinks[0].firstChild.href.replace('/scripts', '/scripts?sort=created&filter_locale=0') } else { - scriptslinks[0].firstChild.href = scriptslinks[0].firstChild.href.replace("/scripts", "/scripts?sort=created") + scriptslinks[0].firstChild.href = scriptslinks[0].firstChild.href.replace('/scripts', '/scripts?sort=created') } } // STUB - 跳转大人 if (jumpto) { var currentUrl = window.location.href const country_code = getCountryCode() - if (currentUrl.includes("greasyfork.org")) { - addNavLink("🔞", "https://sleazyfork.org/" + country_code + '/scripts') - } else if (currentUrl.includes("sleazyfork.org")) { - addNavLink("🍴", "https://greasyfork.org/" + country_code + '/scripts', false, false) + if (currentUrl.includes('greasyfork.org')) { + addNavLink('🔞', 'https://sleazyfork.org/' + country_code + '/scripts') + } else if (currentUrl.includes('sleazyfork.org')) { + addNavLink('🍴', 'https://greasyfork.org/' + country_code + '/scripts', false, false) } } //STUB - 本地收藏夹 @@ -1168,18 +1168,18 @@ const translate = (function () { favs = JSON.parse(GM_getValue('favs', '[]')) } if (userlocalfav) { - addNavLink(translate('localbookmarks'), "https://greasyfork.org/" + getCountryCode() + "/404?Bookmarks", true) + addNavLink(translate('localbookmarks'), 'https://greasyfork.org/' + getCountryCode() + '/404?Bookmarks', true) } function favPage() { - if (window.location.href == "https://greasyfork.org/" + getCountryCode() + "/404?Bookmarks") { + if (window.location.href == 'https://greasyfork.org/' + getCountryCode() + '/404?Bookmarks') { document.title = 'bookmarks' // document.querySelector("body > div > section").remove() let scripts = JSON.parse(GM_getValue('favs', '[]')) - document.querySelector("body > div > section").innerHTML = `
        ` + document.querySelector('body > div > section').innerHTML = '
          ' const reverseOrder = true for (let script of (reverseOrder ? scripts.reverse() : scripts)) { - let elm = document.querySelector("#browse-script-list"), - li = document.createElement("li") + let elm = document.querySelector('#browse-script-list'), + li = document.createElement('li') li.innerHTML = `
          ${script.title} @@ -1237,7 +1237,7 @@ const translate = (function () { title: scriptTitle, description: scriptDescription, href: href, - timestamp: localTime, + timestamp: localTime } var index = -1, val = scriptTitle, @@ -1264,10 +1264,10 @@ const translate = (function () { }) } function scriptPage() { - if (location.href.match('/scripts') && document.querySelector("#script-links")) { - let scriptLinks = document.querySelector("#script-links") - let scriptTitle = document.querySelector("#script-info > header > h2").innerText - let scriptDescription = document.querySelector(".script-description").innerText + if (location.href.match('/scripts') && document.querySelector('#script-links')) { + let scriptLinks = document.querySelector('#script-links') + let scriptTitle = document.querySelector('#script-info > header > h2').innerText + let scriptDescription = document.querySelector('.script-description').innerText let href = window.location.href handleScriptPage(scriptDescription, scriptTitle, scriptLinks, href) } @@ -1338,7 +1338,7 @@ margin-bottom: 0; addLink(link, 'Install', link.href + '/code/' + encodeURIComponent(link.innerText) + '.user.js', ' - ') } // Display number of userscripts - var scripts = document.querySelector("#user-script-list-section > header > h3") + var scripts = document.querySelector('#user-script-list-section > header > h3') if (scripts) { scripts.innerText = `${scripts.innerText} (${items.length})` } @@ -1346,25 +1346,25 @@ margin-bottom: 0; } //STUB - 隐藏主页评论 if (hideuserdiscussions && isHomepage()) { - document.querySelector("#user-discussions").style.display = 'none' + document.querySelector('#user-discussions').style.display = 'none' } if (hideuserconversations && isHomepage()) { - document.querySelector("#user-conversations").style.display = 'none' + document.querySelector('#user-conversations').style.display = 'none' } - if (hideuserprofile && document.querySelector("#user-profile") && isHomepage()) { - document.querySelector("#user-profile").style.display = 'none' + if (hideuserprofile && document.querySelector('#user-profile') && isHomepage()) { + document.querySelector('#user-profile').style.display = 'none' } // STUB - 短链接复制 - const idPrefix = "" // 根据需要设置前缀 - if (copyshortlink && document.querySelector("#script-info")) { + const idPrefix = '' // 根据需要设置前缀 + if (copyshortlink && document.querySelector('#script-info')) { shortLink() } function shortLink() { - const description = document.querySelector("div#script-content") + const description = document.querySelector('div#script-content') const url = window.location.href const scriptId = url.match(/\/scripts\/(\d+)/)?.[1] if (!scriptId || !description) return - const id = idPrefix + "short-link" + const id = idPrefix + 'short-link' const current = document.getElementById(id) const short = `https://greasyfork.org/scripts/${scriptId}` if (current) { @@ -1374,23 +1374,23 @@ margin-bottom: 0; } else { logMessage('shortLink', '新增短链元素', true) // Add the short link element - const p = description.insertAdjacentElement("beforebegin", document.createElement("p")) + const p = description.insertAdjacentElement('beforebegin', document.createElement('p')) p.id = id - p.textContent = "Short link: " - const link = p.appendChild(document.createElement("a")) + p.textContent = 'Short link: ' + const link = p.appendChild(document.createElement('a')) link.href = short link.textContent = short - const copy = p.appendChild(document.createElement("a")) - copy.textContent = "Copy" - copy.style.marginLeft = "1em" - copy.style.cursor = "pointer" - copy.title = "Copy short link to clipboard" - copy.addEventListener("click", () => { - if (copy.textContent === "Copied!") return + const copy = p.appendChild(document.createElement('a')) + copy.textContent = 'Copy' + copy.style.marginLeft = '1em' + copy.style.cursor = 'pointer' + copy.title = 'Copy short link to clipboard' + copy.addEventListener('click', () => { + if (copy.textContent === 'Copied!') return navigator.clipboard.writeText(short).then(() => { - copy.textContent = "Copied!" + copy.textContent = 'Copied!' window.setTimeout(() => { - copy.textContent = "Copy" + copy.textContent = 'Copy' }, 1000) }) }) @@ -1399,11 +1399,11 @@ margin-bottom: 0; //webhoot // STUB - 导航栏增加打开设置 if (setopenindoc) { - addNavLink(translate('thisname'), '#', false, false, "renminde") + addNavLink(translate('thisname'), '#', false, false, 'renminde') var customClassName = 'renminde' // 自定义类名 - var link = document.querySelector(`.${customClassName} > a`) - if (link) { - link.addEventListener('click', event => { + var navlink = document.querySelector(`.${customClassName} > a`) + if (navlink) { + navlink.addEventListener('click', event => { event.preventDefault() showSettingsModal() }) @@ -1451,7 +1451,7 @@ margin-bottom: 0; return { lines: t.split('\n').length, chars: t.length, - filesize: size, + filesize: size } } function handle_code_page() { @@ -1478,9 +1478,9 @@ margin-bottom: 0; } // 封装的复制代码函数 function copyCode() { - let pre = document.querySelector(".code-container > pre") + let pre = document.querySelector('.code-container > pre') if (!pre) { - pre = document.querySelector("pre.uglyprint") + pre = document.querySelector('pre.uglyprint') } // const pre = document.querySelector(".code-container > pre"); const codeText = pre.innerText @@ -1491,7 +1491,7 @@ margin-bottom: 0; return line.replace(/^\d+/, '') }) .join('\n') - GM_setClipboard(codeText, "text") + GM_setClipboard(codeText, 'text') } // STUB - 代码复制按钮 function copycodelink() { @@ -1506,7 +1506,7 @@ margin-bottom: 0; Toast('Copy successful', 3000, '#0000ff', '#ffffff', 'top') } if (isMobile()) { - var parentElement = document.querySelector("#script-content > div.code-container") + var parentElement = document.querySelector('#script-content > div.code-container') var referenceElement = parentElement.nextElementSibling parentElement.insertAdjacentElement('beforebegin', b) } else { @@ -1516,10 +1516,10 @@ margin-bottom: 0; // STUB - 切换脚本简介greasyfork.org/scripts/471149 let additionalInfoDiv = document.querySelector('#additional-info.user-content') if (sethtmlview && additionalInfoDiv) { - const htmlViewb = document.createElement("a") - htmlViewb.href = "#" - htmlViewb.className = "install-link htmlViewb" - htmlViewb.style.marginLeft = "0.5rem" + const htmlViewb = document.createElement('a') + htmlViewb.href = '#' + htmlViewb.className = 'install-link htmlViewb' + htmlViewb.style.marginLeft = '0.5rem' htmlViewb.textContent = translate('htmlViewtotext') htmlViewb.addEventListener('click', (event) => { event.preventDefault() @@ -1542,16 +1542,16 @@ margin-bottom: 0; } } // STUB - 侧边栏脚本上移动 - const findlis = document.getElementById("script-list-sort") + const findlis = document.getElementById('script-list-sort') if (scriptset && findlis) { var observer = new MutationObserver(function (mutationsList) { for (var mutation of mutationsList) { if (mutation.type === 'childList') { // 检查是否出现了 Script set 元素 - var setDiv = document.getElementById("script-list-set") + var setDiv = document.getElementById('script-list-set') if (setDiv) { // 找到 script-list-sort 元素 - var sortDiv = document.getElementById("script-list-sort") + var sortDiv = document.getElementById('script-list-sort') // 将 setDiv 插入到 sortDiv 下面 sortDiv.parentNode.insertBefore(setDiv, sortDiv.nextSibling) // 弹出提示 @@ -1590,7 +1590,7 @@ margin-bottom: 0; }) function handleCheckboxChange() { if (this.checked) { - let input = prompt(translate('inputDaysToCleanUp'), "30") + let input = prompt(translate('inputDaysToCleanUp'), '30') let number = parseInt(input) if (isNaN(number)) { number = 30 @@ -1756,7 +1756,7 @@ margin-bottom: 0; }) // 将安装链接添加到 article 元素的底部 article.appendChild(installLink) - if (scriptlang === "js") { + if (scriptlang === 'js') { checkVersionInfo(`https://greasyfork.org/scripts/${scriptid}.json`, installLink, scripver) } else { logMessage('addInstallAndDownloadLinks', `${scriptlang}文件暂未添加检测版本`, false) @@ -1879,12 +1879,12 @@ margin-bottom: 0; mutations.forEach(mutation => { if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { mutation.addedNodes.forEach(node => { - if (node.nodeType === 1 && (node.id === "user-script-list-section" || node.id === "browse-script-list")) { - if (node.id === "user-script-list-section") { - node = node.querySelector("#user-script-list") + if (node.nodeType === 1 && (node.id === 'user-script-list-section' || node.id === 'browse-script-list')) { + if (node.id === 'user-script-list-section') { + node = node.querySelector('#user-script-list') logMessage('用户列表', '元素', true, node) } - if (node.id === "browse-script-list") { + if (node.id === 'browse-script-list') { logMessage('脚本列表', '元素', true, node) } Array.from(node.children).forEach(li => { @@ -1967,12 +1967,12 @@ margin-bottom: 0; } } ` - if (typeof GM_addStyle !== "undefined") { + if (typeof GM_addStyle !== 'undefined') { GM_addStyle(css) } else { - let styleNode = document.createElement("style") + let styleNode = document.createElement('style') styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) + (document.querySelector('head') || document.documentElement).appendChild(styleNode) } } //STUB - 显示绝对时间 https://update.greasyfork.org/scripts/470348/Absolute%20Time%20on%20GreasyFork.user.js @@ -2043,7 +2043,7 @@ margin-bottom: 0; ` async function fixRelativeTime(s) { psk = Date.now() - s.classList.add("absolute") + s.classList.add('absolute') s.format = 'datetime' await Promise.resolve().then() await getRafPromise().then() @@ -2101,7 +2101,7 @@ margin-bottom: 0; function mountLibraryDownloadButton(suggestion, libraryRequire, libraryVersion) { let [ libraryHref, - libraryName, + libraryName ] = libraryRequire.innerText.match( /\/\/ @require (https:\/\/.+\/scripts\/\d+\/\d+\/(.*)\.js)/ ).slice(1) @@ -2141,7 +2141,7 @@ margin-bottom: 0; function mountScriptDownloadButton( installBtn, installArea, - installHelpLink, + installHelpLink ) { if (!installBtn.href) throw new Error('script href is not found') const linkText = installBtn.textContent.trim() @@ -2151,8 +2151,8 @@ margin-bottom: 0; ${linkText}` const downloadButton = document.createElement('a') - downloadButton.href = "#" - downloadButton.className = "install-link down-code-link" + downloadButton.href = '#' + downloadButton.className = 'install-link down-code-link' toggleDownloadIcon(downloadButton, false) downloadButton.style.marginLeft = '"0.5rem' // suggestion.appendChild(downloadButton); @@ -2190,7 +2190,7 @@ margin-bottom: 0; onload: function (r) { var url = (r.responseText.match(/\n\s*\/\/\s+@icon(?:url)?\s+((?:https?:\/\/|data:image\/).+)|$/i)[1] || '').trim() if (!url) { - url = "https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/default.png" + url = 'https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/default.png' return __addIcon(url, h2Element, true) } if (!/^http:/.test(url)) @@ -2241,12 +2241,12 @@ margin-bottom: 0; img.src = url h2Element.insertAdjacentElement('afterbegin', img) if (!NoCache) { - logMessage("添加图标", "nocache,为false,进行缓存", true) + logMessage('添加图标', 'nocache,为false,进行缓存', true) const scripts = JSON.parse(GM_getValue('scriptsIcon', '{}')) scripts[scriptID] = url GM_setValue('scriptsIcon', JSON.stringify(scripts)) } else { - logMessage("添加图标", "nocache为true,不缓存", false) + logMessage('添加图标', 'nocache为true,不缓存', false) } // GM_setValue(scriptID, url); } @@ -2255,10 +2255,10 @@ margin-bottom: 0; const beautifyMarkdownCSS = 'code {\r\n font-family: Menlo, Monaco, Consolas, "Courier New", monospace;\r\n font-size: 0.85em;\r\n color: #000;\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n padding: 0.2em 0;\r\n}\r\ntable {\r\n text-indent: initial;\r\n}\r\ntable {\r\n margin: 10px 0 15px 0;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n display: block;\r\n width: 100%;\r\n overflow: auto;\r\n word-break: normal;\r\n word-break: keep-all;\r\n}\r\ncode,\r\npre {\r\n color: #333;\r\n background: 0 0;\r\n font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;\r\n text-align: left;\r\n white-space: pre;\r\n word-spacing: normal;\r\n word-break: normal;\r\n word-wrap: normal;\r\n line-height: 1.4;\r\n -moz-tab-size: 8;\r\n -o-tab-size: 8;\r\n tab-size: 8;\r\n -webkit-hyphens: none;\r\n -moz-hyphens: none;\r\n -ms-hyphens: none;\r\n hyphens: none;\r\n}\r\npre {\r\n padding: 0.8em;\r\n overflow: auto;\r\n border-radius: 3px;\r\n background: #f5f5f5;\r\n}\r\n:not(pre) > code {\r\n padding: 0.1em;\r\n border-radius: 0.3em;\r\n white-space: normal;\r\n background: #f5f5f5;\r\n}\r\nhtml body {\r\n font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans,\r\n sans-serif;\r\n font-size: 16px;\r\n line-height: 1.6;\r\n color: #333;\r\n background-color: #fff;\r\n overflow: initial;\r\n box-sizing: border-box;\r\n word-wrap: break-word;\r\n}\r\nhtml body > :first-child {\r\n margin-top: 0;\r\n}\r\nhtml body h1,\r\nhtml body h2,\r\nhtml body h3,\r\nhtml body h4,\r\nhtml body h5,\r\nhtml body h6 {\r\n line-height: 1.2;\r\n margin-top: 1em;\r\n margin-bottom: 16px;\r\n color: #000;\r\n}\r\nhtml body h1 {\r\n font-size: 2.25em;\r\n font-weight: 300;\r\n padding-bottom: 0.3em;\r\n}\r\nhtml body h2 {\r\n font-size: 1.75em;\r\n font-weight: 400;\r\n padding-bottom: 0.3em;\r\n}\r\nhtml body h3 {\r\n font-size: 1.5em;\r\n font-weight: 500;\r\n}\r\nhtml body h4 {\r\n font-size: 1.25em;\r\n font-weight: 600;\r\n}\r\nhtml body h5 {\r\n font-size: 1.1em;\r\n font-weight: 600;\r\n}\r\nhtml body h6 {\r\n font-size: 1em;\r\n font-weight: 600;\r\n}\r\nhtml body h1,\r\nhtml body h2,\r\nhtml body h3,\r\nhtml body h4,\r\nhtml body h5 {\r\n font-weight: 600;\r\n}\r\nhtml body h5 {\r\n font-size: 1em;\r\n}\r\nhtml body h6 {\r\n color: #5c5c5c;\r\n}\r\nhtml body strong {\r\n color: #000;\r\n}\r\nhtml body del {\r\n color: #5c5c5c;\r\n}\r\nhtml body a:not([href]) {\r\n color: inherit;\r\n}\r\nhtml body a {\r\n text-decoration: underline;\r\n text-underline-offset: 0.2rem;\r\n}\r\nhtml body a:hover {\r\n color: #00a3f5;\r\n}\r\nhtml body img {\r\n max-width: 100%;\r\n}\r\nhtml body > p {\r\n margin-top: 0;\r\n margin-bottom: 16px;\r\n word-wrap: break-word;\r\n}\r\nhtml body > ol,\r\nhtml body > ul {\r\n margin-bottom: 16px;\r\n}\r\nhtml body ol,\r\nhtml body ul {\r\n padding-left: 2em;\r\n}\r\nhtml body ol.no-list,\r\nhtml body ul.no-list {\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\nhtml body ol ol,\r\nhtml body ol ul,\r\nhtml body ul ol,\r\nhtml body ul ul {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\nhtml body li {\r\n margin-bottom: 0;\r\n}\r\nhtml body li.task-list-item {\r\n list-style: none;\r\n}\r\nhtml body li > p {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\nhtml body .task-list-item-checkbox {\r\n margin: 0 0.2em 0.25em -1.8em;\r\n vertical-align: middle;\r\n}\r\nhtml body .task-list-item-checkbox:hover {\r\n cursor: pointer;\r\n}\r\nhtml body blockquote {\r\n margin: 16px 0;\r\n font-size: inherit;\r\n padding: 0 15px;\r\n color: #5c5c5c;\r\n background-color: #f0f0f0;\r\n border-left: 4px solid #d6d6d6 !important;\r\n}\r\nhtml body blockquote > :first-child {\r\n margin-top: 0;\r\n}\r\nhtml body blockquote > :last-child {\r\n margin-bottom: 0;\r\n}\r\nhtml body hr {\r\n height: 4px;\r\n margin: 32px 0;\r\n background-color: #d6d6d6;\r\n border: 0 none;\r\n}\r\nhtml body table {\r\n margin: 10px 0 15px 0;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n display: block;\r\n width: 100%;\r\n overflow: auto;\r\n word-break: normal;\r\n word-break: keep-all;\r\n}\r\nhtml body table th {\r\n font-weight: 700;\r\n color: #000;\r\n}\r\nhtml body table td,\r\nhtml body table th {\r\n border: 1px solid #d6d6d6;\r\n padding: 6px 13px;\r\n}\r\nhtml body dl {\r\n padding: 0;\r\n}\r\nhtml body dl dt {\r\n padding: 0;\r\n margin-top: 16px;\r\n font-size: 1em;\r\n font-style: italic;\r\n font-weight: 700;\r\n}\r\nhtml body dl dd {\r\n padding: 0 16px;\r\n margin-bottom: 16px;\r\n}\r\nhtml body code {\r\n font-family: Menlo, Monaco, Consolas, "Courier New", monospace;\r\n font-size: 0.85em;\r\n color: #000;\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n padding: 0.2em 0;\r\n}\r\nhtml body code::after,\r\nhtml body code::before {\r\n letter-spacing: -0.2em;\r\n content: "\\00a0";\r\n}\r\nhtml body pre > code {\r\n padding: 0;\r\n margin: 0;\r\n word-break: normal;\r\n white-space: pre;\r\n background: 0 0;\r\n border: 0;\r\n}\r\nhtml body .highlight {\r\n margin-bottom: 16px;\r\n}\r\nhtml body .highlight pre,\r\nhtml body pre {\r\n padding: 1em;\r\n overflow: auto;\r\n line-height: 1.45;\r\n border: #d6d6d6;\r\n border-radius: 3px;\r\n}\r\nhtml body .highlight pre {\r\n margin-bottom: 0;\r\n word-break: normal;\r\n}\r\nhtml body pre code,\r\nhtml body pre tt {\r\n display: inline;\r\n max-width: initial;\r\n padding: 0;\r\n margin: 0;\r\n overflow: initial;\r\n line-height: inherit;\r\n word-wrap: normal;\r\n background-color: transparent;\r\n border: 0;\r\n}\r\nhtml body pre code:after,\r\nhtml body pre code:before,\r\nhtml body pre tt:after,\r\nhtml body pre tt:before {\r\n content: normal;\r\n}\r\nhtml body blockquote,\r\nhtml body dl,\r\nhtml body ol,\r\nhtml body p,\r\nhtml body pre,\r\nhtml body ul {\r\n margin-top: 0;\r\n margin-bottom: 16px;\r\n}\r\nhtml body kbd {\r\n color: #000;\r\n border: 1px solid #d6d6d6;\r\n border-bottom: 2px solid #c7c7c7;\r\n padding: 2px 4px;\r\n background-color: #f0f0f0;\r\n border-radius: 3px;\r\n}\r\n@media print {\r\n html body {\r\n background-color: #fff;\r\n }\r\n html body h1,\r\n html body h2,\r\n html body h3,\r\n html body h4,\r\n html body h5,\r\n html body h6 {\r\n color: #000;\r\n page-break-after: avoid;\r\n }\r\n html body blockquote {\r\n color: #5c5c5c;\r\n }\r\n html body pre {\r\n page-break-inside: avoid;\r\n }\r\n html body table {\r\n display: table;\r\n }\r\n html body img {\r\n display: block;\r\n max-width: 100%;\r\n max-height: 100%;\r\n }\r\n html body code,\r\n html body pre {\r\n word-wrap: break-word;\r\n white-space: pre;\r\n }\r\n}\r\n.scrollbar-style::-webkit-scrollbar {\r\n width: 8px;\r\n}\r\n.scrollbar-style::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n background-color: transparent;\r\n}\r\n.scrollbar-style::-webkit-scrollbar-thumb {\r\n border-radius: 5px;\r\n background-color: rgba(150, 150, 150, 0.66);\r\n border: 4px solid rgba(150, 150, 150, 0.66);\r\n background-clip: content-box;\r\n}\r\n' const beautifyButtonCSS = '/* 美化按钮 */\r\ninput[type="submit"],\r\nbutton {\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n line-height: 1;\r\n height: 32px;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n /* color: #606266; */\r\n text-align: center;\r\n box-sizing: border-box;\r\n outline: none;\r\n transition: 0.1s;\r\n font-weight: 500;\r\n user-select: none;\r\n vertical-align: middle;\r\n -webkit-appearance: none;\r\n background-color: #ffffff;\r\n border: 1px solid #dcdfe6;\r\n border-color: #dcdfe6;\r\n padding: 8px 15px;\r\n font-size: 14px;\r\n border-radius: 4px;\r\n}\r\n\r\ninput[type="submit"]:hover,\r\ninput[type="submit"]:focus,\r\nbutton:hover,\r\nbutton:focus {\r\n color: #409eff;\r\n border-color: #c6e2ff;\r\n background-color: #ecf5ff;\r\n outline: none;\r\n}\r\n\r\ninput[type="url"] {\r\n position: relative;\r\n font-size: 14px;\r\n display: inline-flex;\r\n line-height: 32px;\r\n box-sizing: border-box;\r\n vertical-align: middle;\r\n -webkit-appearance: none;\r\n /* color: #606266; */\r\n padding: 0;\r\n outline: none;\r\n border: none;\r\n background: none;\r\n flex-grow: 1;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 1px 11px;\r\n background-color: #ffffff;\r\n background-image: none;\r\n border-radius: 4px;\r\n cursor: text;\r\n transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\r\n transform: translateZ(0);\r\n box-shadow: 0 0 0 1px #dcdfe6 inset;\r\n\r\n width: 100%;\r\n width: -moz-available;\r\n width: -webkit-fill-available;\r\n width: fill-available;\r\n}\r\n\r\ninput[type="url"]::placeholder {\r\n color: #a8abb2;\r\n}\r\n\r\ninput[type="url"]:hover {\r\n box-shadow: 0 0 0 1px #c0c4cc inset;\r\n}\r\n\r\ninput[type="url"]:focus {\r\n box-shadow: 0 0 0 1px #409eff inset;\r\n}\r\n' const beautifyRadioCSS = 'label.radio-label {\r\n font-weight: 500;\r\n position: relative;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n white-space: normal;\r\n outline: none;\r\n font-size: 14px;\r\n user-select: none;\r\n margin-right: 32px;\r\n height: 32px;\r\n padding: 4px;\r\n border-radius: 4px;\r\n box-sizing: border-box;\r\n}\r\nlabel:has(input[type="radio"]:checked),\r\nlabel:has(input[type="radio"]:checked) a {\r\n color: #409eff;\r\n}\r\nlabel.radio-label input[type="radio"] {\r\n margin-right: 4px;\r\n width: 14px;\r\n height: 14px;\r\n}\r\nlabel.radio-label input[type="radio"]:checked {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n border-radius: 50%;\r\n width: 14px;\r\n height: 14px;\r\n outline: none;\r\n border: 4px solid #409eff;\r\n cursor: pointer;\r\n}\r\nlabel.radio-label input[type="radio"]:checked + span {\r\n color: #409eff;\r\n}\r\n' - const beautifyTextAreaCSS = "textarea {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n vertical-align: bottom;\r\n font-size: 14px;\r\n position: relative;\r\n display: block;\r\n resize: vertical;\r\n padding: 5px 11px;\r\n line-height: 1.5;\r\n box-sizing: border-box;\r\n width: 100%;\r\n font-size: inherit;\r\n font-family: inherit;\r\n /* color: #606266; */\r\n background-color: #ffffff;\r\n background-image: none;\r\n -webkit-appearance: none;\r\n box-shadow: 0 0 0 1px #dcdfe6 inset;\r\n border-radius: 4px;\r\n transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\r\n border: none;\r\n}\r\ntextarea:focus {\r\n outline: none;\r\n box-shadow: 0 0 0 1px #409eff inset;\r\n}\r\n" + const beautifyTextAreaCSS = 'textarea {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n vertical-align: bottom;\r\n font-size: 14px;\r\n position: relative;\r\n display: block;\r\n resize: vertical;\r\n padding: 5px 11px;\r\n line-height: 1.5;\r\n box-sizing: border-box;\r\n width: 100%;\r\n font-size: inherit;\r\n font-family: inherit;\r\n /* color: #606266; */\r\n background-color: #ffffff;\r\n background-image: none;\r\n -webkit-appearance: none;\r\n box-shadow: 0 0 0 1px #dcdfe6 inset;\r\n border-radius: 4px;\r\n transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\r\n border: none;\r\n}\r\ntextarea:focus {\r\n outline: none;\r\n box-shadow: 0 0 0 1px #409eff inset;\r\n}\r\n' const beautifyVersionsPageCSS = 'ul.history_versions,\r\nul.history_versions li {\r\n width: 100%;\r\n}\r\nul.history_versions li {\r\n display: flex;\r\n flex-direction: column;\r\n margin: 25px 0px;\r\n}\r\n.diff-controls input[type="radio"]:nth-child(2) {\r\n margin-left: 5px;\r\n}\r\n.flex-align-item-center {\r\n display: flex;\r\n align-items: center;\r\n}\r\n.script-tag {\r\n margin-bottom: 8px;\r\n}\r\n.script-tag-version a {\r\n color: #656d76;\r\n fill: #656d76;\r\n text-decoration: none;\r\n width: fit-content;\r\n width: -moz-fit-content;\r\n}\r\n.script-tag-version a:hover svg {\r\n color: #00a3f5;\r\n fill: #00a3f5;\r\n}\r\n.script-tag-version a > span {\r\n margin-left: 0.25rem;\r\n}\r\n.script-note-box-body {\r\n border-radius: 0.375rem;\r\n border-style: solid;\r\n border-width: max(1px, 0.0625rem);\r\n border-color: #d0d7de;\r\n color: #1f2328;\r\n padding: 16px;\r\n overflow-wrap: anywhere;\r\n}\r\n.script-note-box-body p {\r\n margin-bottom: unset;\r\n}\r\n' const beautifyUploadImageCSS = '/* 隐藏 添加: */\r\nlabel[for="discussion_comments_attributes_0_attachments"],\r\nlabel[for="comment_attachments"] {\r\n display: none;\r\n}\r\ninput[type="file"] {\r\n width: 100%;\r\n font-size: 20px;\r\n background: #e2e2e2;\r\n padding: 40px 0px;\r\n border-radius: 10px;\r\n text-align-last: center;\r\n}\r\n' - const compatibleBeautifyCSS = "#main-header {\r\n background-color: #670000 !important;\r\n background-image: linear-gradient(#670000, #990000) !important;\r\n}\r\n#site-nav-vue {\r\n flex-wrap: wrap;\r\n justify-content: flex-end;\r\n}\r\n.open-sidebar {\r\n border-width: 1px;\r\n border-radius: 3px;\r\n margin-right: 0;\r\n}\r\ninput.search-submit {\r\n transform: translateY(-5%) !important;\r\n margin-left: 10px;\r\n}\r\n#script-content code {\r\n word-wrap: break-word;\r\n}\r\n.code-container ::selection {\r\n background-color: #3d4556 !important;\r\n}\r\n" + const compatibleBeautifyCSS = '#main-header {\r\n background-color: #670000 !important;\r\n background-image: linear-gradient(#670000, #990000) !important;\r\n}\r\n#site-nav-vue {\r\n flex-wrap: wrap;\r\n justify-content: flex-end;\r\n}\r\n.open-sidebar {\r\n border-width: 1px;\r\n border-radius: 3px;\r\n margin-right: 0;\r\n}\r\ninput.search-submit {\r\n transform: translateY(-5%) !important;\r\n margin-left: 10px;\r\n}\r\n#script-content code {\r\n word-wrap: break-word;\r\n}\r\n.code-container ::selection {\r\n background-color: #3d4556 !important;\r\n}\r\n' if (usercssto) { GM_addStyle(` ${beautifyMarkdownCSS} @@ -2273,7 +2273,7 @@ ${compatibleBeautifyCSS} } //STUB - 美化版本列表边框 function beautifyChangelog() { - document.querySelectorAll(".version-changelog").forEach(element => { + document.querySelectorAll('.version-changelog').forEach(element => { element.style.cssText = ` border: 2px solid #4CAF50; /* 绿色边框 */ border-radius: 8px; /* 边框圆角 */ @@ -2336,7 +2336,7 @@ ${compatibleBeautifyCSS} } } function createHistoryLinks(jsonData) { - var ulElement = document.querySelector("#script-content > form > ul") + var ulElement = document.querySelector('#script-content > form > ul') if (ulElement) { logMessage('createHistoryLinks', 'Parent element found:', true, ulElement) // Iterate over each version in JSON data @@ -2360,7 +2360,7 @@ ${compatibleBeautifyCSS} container.appendChild(link) container.appendChild(link2) // Find corresponding .diff-controls element (assuming index corresponds to the order) - var diffControls = ulElement.querySelectorAll(".diff-controls") + var diffControls = ulElement.querySelectorAll('.diff-controls') if (index < diffControls.length) { var diffControl = diffControls[index] diffControl.insertAdjacentElement('beforebegin', container) @@ -2463,8 +2463,8 @@ ${compatibleBeautifyCSS} } function switchToAuthorScript() { let scriptDetail = [] //从脚本提取用户名称 - var useridformlink = getUserIdFromAuthorLink("#script-stats > dd.script-show-author") - var textContents = getDtContents("#script-stats") + var useridformlink = getUserIdFromAuthorLink('#script-stats > dd.script-show-author') + var textContents = getDtContents('#script-stats') var jsonlink = null const currentUrl = window.location.href // 获取当前页面的 URL const match2 = currentUrl.match(/\/scripts\/(\d+)/) @@ -2473,7 +2473,7 @@ ${compatibleBeautifyCSS} logMessage('switchToAuthorScript', '用户主页地址', false, userscripts) getUserJSON(userscripts) .then(mergedData => { - const scrName = document.querySelector("#script-stats > dd.script-show-author > span > a").textContent + const scrName = document.querySelector('#script-stats > dd.script-show-author > span > a').textContent insertUserScript(mergedData, { name: scrName }, textContents) }) .catch(error => { @@ -2590,7 +2590,7 @@ ${compatibleBeautifyCSS} if (error) { Toast(error.message, 3000, '#ff6347', '#ffffff', 'top') } else { - link.textContent = "下载" + link.textContent = '下载' } }, 2) }) @@ -3241,7 +3241,7 @@ button:focus { { type: 'checkbox', id: 'setopenindoc', label: translate('openindoc'), checked: setopenindoc, onchange: function () { updateAndSetValue('setopenindoc', this.checked) } }, { type: 'checkbox', id: 'wightnav', label: translate('barvertical'), checked: wightnav, onchange: function () { updateAndSetValue('wightnav', this.checked) } }, { type: 'checkbox', id: 'Expandsubmenu', label: translate('expandmore'), checked: Expandsubmenu, onchange: function () { updateAndSetValue('Expandsubmenu', this.checked) } }, - { type: 'checkbox', id: 'beautifyTopNav', label: translate('beautifyTopNav'), checked: beautifyTopNav, onchange: function () { updateAndSetValue('beautifyTopNav', this.checked) } }, + { type: 'checkbox', id: 'beautifyTopNav', label: translate('beautifyTopNav'), checked: beautifyTopNav, onchange: function () { updateAndSetValue('beautifyTopNav', this.checked) } } ] ) createCategory('category3', translate('website'), [//网站设置 @@ -3256,12 +3256,12 @@ button:focus { { type: 'checkbox', id: 'italicdiscussionread', label: translate('italicizereadcomments'), checked: italicdiscussionread, onchange: function () { updateAndSetValue('italicdiscussionread', this.checked) } }, { type: 'checkbox', id: 'useroutline', label: translate('useroutlines'), checked: useroutline, onchange: function () { updateAndSetValue('useroutline', this.checked) } }, { type: 'checkbox', id: 'userimageproxy', label: translate('imageproxy'), checked: userimageproxy, onchange: function () { updateAndSetValue('userimageproxy', this.checked) } }, - { type: 'checkbox', id: 'fixElementoption', label: translate('fixElementoption'), checked: fixElementoption, onchange: function () { updateAndSetValue('fixElementoption', this.checked) } }, + { type: 'checkbox', id: 'fixElementoption', label: translate('fixElementoption'), checked: fixElementoption, onchange: function () { updateAndSetValue('fixElementoption', this.checked) } } ], viewMode) createCategory('checkLogin', translate('enableautologin'), [ { type: 'checkbox', id: 'userautologin', label: translate('enableautologin'), checked: userautologin, onchange: function () { updateAndSetValue('userautologin', this.checked) } }, { type: 'text', id: 'useremail', label: translate('account'), value: useremail }, - { type: 'text', id: 'userpassword', label: translate('password'), value: userpassword }, + { type: 'text', id: 'userpassword', label: translate('password'), value: userpassword } ], 1) createCategory('sl', translate('scriptlist'), [ { type: 'checkbox', id: 'showinstallbutton', label: translate('listdisplayinstallationdownload'), checked: showinstallbutton, onchange: function () { updateAndSetValue('showinstallbutton', this.checked) } }, @@ -3272,7 +3272,7 @@ button:focus { { type: 'checkbox', id: 'userhandleLocaleFilter', label: translate('showscriptall'), checked: userhandleLocaleFilter, onchange: function () { updateAndSetValue('userhandleLocaleFilter', this.checked) } }, { type: 'checkbox', id: 'scriptset', label: translate('moveSidebar'), checked: scriptset, onchange: function () { updateAndSetValue('scriptset', this.checked) } }, { type: 'checkbox', id: 'scriptwithdata', label: translate('ScriptListByCreat'), checked: scriptwithdata, onchange: function () { updateAndSetValue('scriptwithdata', this.checked) } }, - { type: 'checkbox', id: 'scriptlistdouble', label: translate('ScriptListdouble'), checked: scriptlistdouble, onchange: function () { updateAndSetValue('scriptlistdouble', this.checked) } }, + { type: 'checkbox', id: 'scriptlistdouble', label: translate('ScriptListdouble'), checked: scriptlistdouble, onchange: function () { updateAndSetValue('scriptlistdouble', this.checked) } } ], viewMode) createCategory('sl2', translate('personalhomepage'), [ { type: 'checkbox', id: 'clearhomepage', label: translate('cleanUpOld'), checked: clearhomepage, onchange: function () { updateAndSetValue('clearhomepage', this.checked) } }, @@ -3281,11 +3281,11 @@ button:focus { { type: 'checkbox', id: 'hideuserdiscussions', label: translate('hiderrecentcomments'), checked: hideuserdiscussions, onchange: function () { updateAndSetValue('hideuserdiscussions', this.checked) } }, { type: 'checkbox', id: 'hideuserconversations', label: translate('hiderconversations'), checked: hideuserconversations, onchange: function () { updateAndSetValue('hideuserconversations', this.checked) } }, { type: 'checkbox', id: 'hideuserprofile', label: translate('hideuserprofile'), checked: hideuserprofile, onchange: function () { updateAndSetValue('hideuserprofile', this.checked) } }, - { type: 'checkbox', id: 'shouwtotalonuserpage', label: translate('displaystatisticsonhomepage'), checked: shouwtotalonuserpage, onchange: function () { updateAndSetValue('shouwtotalonuserpage', this.checked) } }, + { type: 'checkbox', id: 'shouwtotalonuserpage', label: translate('displaystatisticsonhomepage'), checked: shouwtotalonuserpage, onchange: function () { updateAndSetValue('shouwtotalonuserpage', this.checked) } } ], viewMode) createCategory('sl3', translate('beautifycontrols'), [ { type: 'checkbox', id: 'usercssto', label: translate('beautifycontrols'), checked: usercssto, onchange: function () { updateAndSetValue('usercssto', this.checked) } }, - { type: 'checkbox', id: 'modifyRadioLabels', label: translate('beautifyDis'), checked: modifyRadioLabels, onchange: function () { updateAndSetValue('modifyRadioLabels', this.checked) } }, + { type: 'checkbox', id: 'modifyRadioLabels', label: translate('beautifyDis'), checked: modifyRadioLabels, onchange: function () { updateAndSetValue('modifyRadioLabels', this.checked) } } ], viewMode) createCategory('openabout', translate('applyto'), [ { type: 'checkbox', id: 'usersearchingreasyfork', label: translate('enableenhancements'), checked: usersearchingreasyfork, onchange: function () { updateAndSetValue('usersearchingreasyfork', this.checked) } }, @@ -3310,7 +3310,7 @@ button:focus { { type: 'link', id: 'maximaleFensterbreite', text: 'maximale Fensterbreite auf nutzen', href: 'https://greasyfork.org/de/scripts/36037', target: '_blank' }, { type: 'link', id: 'toggleHTMLView', text: 'Toggle HTML View', href: 'https://greasyfork.org/de/scripts/471149', target: '_blank' }, { type: 'link', id: 'greasyforkHeaderStyleFix', text: 'GreasyFork Header Style Fix', href: 'https://greasyfork.org/zh-CN/scripts/473269', target: '_blank' }, - { type: 'link', id: 'autoEnableSyntaxHighlightingSourceEditor', text: 'Auto Enable Syntax-Highlighting Source Editor', href: 'https://greasyfork.org/zh-CN/scripts/22223', target: '_blank' }, + { type: 'link', id: 'autoEnableSyntaxHighlightingSourceEditor', text: 'Auto Enable Syntax-Highlighting Source Editor', href: 'https://greasyfork.org/zh-CN/scripts/22223', target: '_blank' } ] createCategory('category52', 'Thank You', controls2, 1) function thandleSelectChange(searchingValue) { @@ -3337,12 +3337,12 @@ button:focus { } } //STUB - - 适用于网页增强 - const ulElement = document.querySelector("#script-stats > dd.script-show-applies-to > ul") + const ulElement = document.querySelector('#script-stats > dd.script-show-applies-to > ul') if (ulElement && usersearchingreasyfork) { - const links = ulElement.querySelectorAll("a") + const links = ulElement.querySelectorAll('a') if (showlinktotal) { links.forEach(link => { - const titleText = link.getAttribute("title") + const titleText = link.getAttribute('title') if (titleText) { const numberMatch = titleText.match(/\d+/) if (numberMatch) { @@ -3546,7 +3546,7 @@ button:focus { if (document.readyState !== 'loading') { r() } else { - window.addEventListener("DOMContentLoaded", r, false) + window.addEventListener('DOMContentLoaded', r, false) } }).then(() => { for (const elm of document.querySelectorAll('.text-content dd, .text-content dd textarea')) { @@ -3561,7 +3561,7 @@ button:focus { let s = elm.value // Add a click event listener to the textarea elm.addEventListener('click', function () { - if (window.getSelection() + "" === "") + if (window.getSelection() + '' === '') this.select() }) elm.addEventListener('drag', function (evt) { @@ -3603,7 +3603,7 @@ button:focus { } } function addButtonToScipstsList() { - let linkTitle = "" + let linkTitle = '' const ScipstsList = document.querySelector('ul') if (ScipstsList) { const button = document.createElement('button') @@ -3628,8 +3628,8 @@ button:focus { } } function updatePromotedScript(scriptId, promotedScriptUrl, linkTitle) { - let csrfTokenMeta = document.querySelector("meta[name='csrf-token']") - let authenticity_token = csrfTokenMeta ? csrfTokenMeta.getAttribute("content") : '' + let csrfTokenMeta = document.querySelector('meta[name=\'csrf-token\']') + let authenticity_token = csrfTokenMeta ? csrfTokenMeta.getAttribute('content') : '' console.log(authenticity_token) const url = `https://greasyfork.org/zh-CN/scripts/${scriptId}/update_promoted` const data = new URLSearchParams({ @@ -3641,7 +3641,7 @@ button:focus { method: 'POST', body: data, headers: { - 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Type': 'application/x-www-form-urlencoded' } }) .then(response => response.text()) // 先以文本方式读取响应 @@ -3650,7 +3650,7 @@ button:focus { const parser = new DOMParser() const doc = parser.parseFromString(text, 'text/html') // 查找 元素并获取其 value 值 - const inputElement = doc.querySelector("input#promoted_script_id") + const inputElement = doc.querySelector('input#promoted_script_id') if (inputElement) { const value = inputElement.value console.log(`${linkTitle}${value}`) @@ -3675,9 +3675,9 @@ button:focus { customizeWebhookInfoPage() customizeWebhookInfoPage2() function customizeWebhookInfoPage2() { - if (window.location.href.indexOf("https://greasyfork.org/zh-CN/users/webhook-info") != -1) //webhook + if (window.location.href.indexOf('https://greasyfork.org/zh-CN/users/webhook-info') != -1) //webhook { - $("h3").each(function () { + $('h3').each(function () { if ($(this).text() == 'GitHub') { $(this).html(' Github') } @@ -3689,12 +3689,12 @@ button:focus { } }) $('textarea').attr('cols', '130') - if (getCountryCode() === "zh-CN") { - $("input").each(function () { - if ($(this).val() == "Generate") - $(this).val("生成") - if ($(this).val() == "Regenerate") - $(this).val("重新生成") + if (getCountryCode() === 'zh-CN') { + $('input').each(function () { + if ($(this).val() == 'Generate') + $(this).val('生成') + if ($(this).val() == 'Regenerate') + $(this).val('重新生成') }) } } @@ -3763,12 +3763,12 @@ button:focus { height: 20px; } ` - if (typeof GM_addStyle !== "undefined") { + if (typeof GM_addStyle !== 'undefined') { GM_addStyle(css) } else { - let styleNode = document.createElement("style") + let styleNode = document.createElement('style') styleNode.appendChild(document.createTextNode(css)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) + (document.querySelector('head') || document.documentElement).appendChild(styleNode) } } if (userapplyCustomStyles) { @@ -3787,7 +3787,7 @@ button:focus { function highlightTextCode() { const selectors = [ 'pre:not([class])', // 选择没有 class 属性的
           元素
          -                'code',            // 选择所有  元素
          +                'code'            // 选择所有  元素
                       ]
                       selectors.forEach(selector => {
                           document.querySelectorAll(selector).forEach(block => {
          @@ -3933,10 +3933,10 @@ button:focus {
                   const scriptInfoElement = document.querySelector('#script-info')
                   // 检查元素是否存在
                   if (scriptInfoElement) {
          -            if (lockmode === "1") {
          +            if (lockmode === '1') {
                           return true  // 锁定黑夜
                       }
          -            if (lockmode === "2") {
          +            if (lockmode === '2') {
                           return false  // 锁定白天
                       }
                       // 获取元素的计算样式
          @@ -4018,15 +4018,15 @@ button:focus {
               }
               //STUB - 选择器透明
               function fuckselector() {
          -        const languageSelector = document.querySelector("#language-selector-locale")
          +        const languageSelector = document.querySelector('#language-selector-locale')
                   if (languageSelector) {
                       // 设置默认背景颜色为透明
                       languageSelector.style.backgroundColor = 'transparent'
                       // 取消边框
                       languageSelector.style.border = 'none'
                       // 添加样式来控制下拉时和悬停时的背景颜色
          -            const styleSheet = document.createElement("style")
          -            styleSheet.type = "text/css"
          +            const styleSheet = document.createElement('style')
          +            styleSheet.type = 'text/css'
                       styleSheet.innerText = `
                         #language-selector-locale {
                           background-color: transparent !important; /* 默认状态下背景透明 */
          @@ -4164,7 +4164,7 @@ button:focus {
                       }
                       // 当找到目标子串并停止遍历后,将收集到的网址传递给 createDetailsWithLinks 函数
                       if (urls.length > 0) {
          -                createDetailsWithLinks("#install-area", urls.map(url => [url, url]), '6666', `引用${urls.length}个文件`)
          +                createDetailsWithLinks('#install-area', urls.map(url => [url, url]), '6666', `引用${urls.length}个文件`)
                       } else {
                           logMessage('logUserScriptOccurrences', '没有找到 @require 或 @resource 相关的链接', true)
                       }
          @@ -4178,23 +4178,19 @@ button:focus {
            * @returns {Promise} - 返回一个 Promise,解析为获取到的文本内容
            */
               async function fetchTextFromURL(url, json = false) {
          -        try {
          -            // 从指定的 URL 中获取文件内容
          -            const response = await fetch(url)
          -            if (!response.ok) throw new Error('网络响应失败')
          -            if (json) {
          -                // 如果 json 参数为 true,返回 JSON 数据
          -                const jsonData = await response.json()
          -                return jsonData
          -            } else {
          -                // 否则返回文本内容
          -                const textContent = await response.text()
          -                return textContent
          -            }
          -        } catch (error) {
          -            throw error // 将错误抛出,以便调用者处理
          +        // 从指定的 URL 中获取文件内容
          +        const response = await fetch(url)
          +        if (!response.ok) throw new Error('网络响应失败')
          +
          +        if (json) {
          +            // 如果 json 参数为 true,返回 JSON 数据
          +            return await response.json()
          +        } else {
          +            // 否则返回文本内容
          +            return await response.text()
                   }
               }
          +
               if (isScriptCodePage() && showresource) {
                   $(document).ready(function () {
                       const number = getNumberFromURL()
          @@ -4227,18 +4223,18 @@ button:focus {
               function createDetailsWithLinks(selector, URLs, detailsId, summaryText) {
                   const description = document.querySelector(selector)
                   if (description) {
          -            const details = document.createElement("details")
          -            const summary = document.createElement("summary")
          -            summary.textContent = summaryText || "Links" // 如果未提供 summaryText,则默认为 "Links"
          +            const details = document.createElement('details')
          +            const summary = document.createElement('summary')
          +            summary.textContent = summaryText || 'Links' // 如果未提供 summaryText,则默认为 "Links"
                       details.appendChild(summary)
          -            const list = document.createElement("ul")
          +            const list = document.createElement('ul')
                       for (const [url, text] of URLs) {
          -                const listItem = document.createElement("li")
          -                const link = document.createElement("a")
          +                const listItem = document.createElement('li')
          +                const link = document.createElement('a')
                           link.href = url
                           link.textContent = getFilenameFromUrl(url)
                           link.title = text
          -                link.target = "_blank"
          +                link.target = '_blank'
                           listItem.appendChild(link)
                           list.appendChild(listItem)
                       }
          @@ -4301,10 +4297,10 @@ button:focus {
                           }
                       }, 100)
                   } else if (iframe.contentDocument.querySelector('#open-report-:not(:empty)')) {
          -            Toast("The spam report is already submitted for moderator's review. Action aborted.", 2000, '#FF0000', '#ffffff', 'top')
          +            Toast('The spam report is already submitted for moderator\'s review. Action aborted.', 2000, '#FF0000', '#ffffff', 'top')
                       onAbort()
                   } else {
          -            Toast("Cannot find the report[reason] radio button. Action aborted.", 2000, '#FF0000', '#ffffff', 'top')
          +            Toast('Cannot find the report[reason] radio button. Action aborted.', 2000, '#FF0000', '#ffffff', 'top')
                       onAbort()
                   }
               }
          @@ -4315,12 +4311,12 @@ button:focus {
                   if (!url) return
                   let discussionId = /id=(\d+)\b/.exec(url)
                   if (discussionId) discussionId = discussionId[1]
          -        let r = window.confirm(` ${translate('report')}#${discussionId || "------"} ?`)
          +        let r = window.confirm(` ${translate('report')}#${discussionId || '------'} ?`)
                   if (!r) return
                   const iframe = document.createElement('iframe')
                   skipMode = false
                   iframe.addEventListener('load', onIframeLoad, false)
          -        iframe.name = "u423323"
          +        iframe.name = 'u423323'
                   iframe.src = url
                   Object.assign(iframe.style, {
                       display: 'block',
          @@ -4329,7 +4325,7 @@ button:focus {
                       left: '0px',
                       width: '300px',
                       height: '300px',
          -            'contain': 'strict',
          +            'contain': 'strict'
                   })
                   document.body.appendChild(iframe)
               }
          @@ -4492,7 +4488,7 @@ cursor: pointer;
               //是否为主页
               function isHomepage() {
           
          -        const profileLinkElement = document.querySelector("#nav-user-info > span.user-profile-link > a")
          +        const profileLinkElement = document.querySelector('#nav-user-info > span.user-profile-link > a')
                   if (profileLinkElement) {
                       const href = profileLinkElement.getAttribute('href')
                       const match = href.match(/\/users\/(\d+)-/)
          @@ -4686,7 +4682,7 @@ cursor: pointer;
                   a.href = linkurl
                   a.innerText = link_text
                   if (newtab) {
          -            a.target = "_blank" // 设置为新窗口打开
          +            a.target = '_blank' // 设置为新窗口打开
                   }
                   // 将  元素添加到 
        1. 中 li.appendChild(a) @@ -4706,9 +4702,9 @@ cursor: pointer; //--STUB - 增加本地中文汉化 if (getCountryCode() === 'zh-CN') { const translatet = new Map() - translatet.set("Script Sets", "脚本收藏夹") - translatet.set("Edit", "编辑") - $("label, span, li, h3, a").each(function () { + translatet.set('Script Sets', '脚本收藏夹') + translatet.set('Edit', '编辑') + $('label, span, li, h3, a').each(function () { var currentText = $(this).text() if (translatet.has(currentText)) { $(this).html(translatet.get(currentText)) @@ -4739,9 +4735,9 @@ cursor: pointer; display: none !important; } `) - let $siteNav = document.querySelector("#site-nav") - let $siteNavNav = $siteNav.querySelector("nav") - document.querySelectorAll(".with-submenu nav li").forEach(($ele) => { + let $siteNav = document.querySelector('#site-nav') + let $siteNavNav = $siteNav.querySelector('nav') + document.querySelectorAll('.with-submenu nav li').forEach(($ele) => { $siteNavNav.appendChild($ele) }) }) @@ -4749,7 +4745,7 @@ cursor: pointer; //STUB - 增加自动登录 async function autoLogin() { // 等待登录链接出现 - await waitForElement("span.sign-in-link a[rel=nofollow]") + await waitForElement('span.sign-in-link a[rel=nofollow]') let user = useremail let pwd = userpassword if (!user) { @@ -4761,16 +4757,16 @@ cursor: pointer; return } Toast(translate('autologinredirect'), 1000, 'rgb(18, 187, 2)', '#ffffff', 'top') - let csrfTokenMeta = document.querySelector("meta[name='csrf-token']") + let csrfTokenMeta = document.querySelector('meta[name=\'csrf-token\']') if (!csrfTokenMeta) { Toast(translate('getcsrftokenfailed'), 1000, '#ff6347', '#ffffff', 'top') return } - let csrfToken = csrfTokenMeta.getAttribute("content") - let postResp = await fetch("https://greasyfork.org/zh-CN/users/sign_in", { + let csrfToken = csrfTokenMeta.getAttribute('content') + let postResp = await fetch('https://greasyfork.org/zh-CN/users/sign_in', { method: 'POST', headers: { - "Content-Type": "application/x-www-form-urlencoded" + 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ authenticity_token: csrfToken, @@ -4782,14 +4778,14 @@ cursor: pointer; }) if (postResp.status !== 200) { Toast(translate('loginfailedconsole'), 1000, 'rgb(219, 27, 27)', '#ffffff', 'top') - logMessage("自动登录", "返回码错误", postResp.status, false) + logMessage('自动登录', '返回码错误', postResp.status, false) return } let respText = await postResp.text() let parser = new DOMParser() let parseLoginHTMLNode = parser.parseFromString(respText, 'text/html') if (parseLoginHTMLNode.querySelectorAll( - ".sign-out-link a[rel=nofollow][data-method='delete']" + '.sign-out-link a[rel=nofollow][data-method=\'delete\']' ).length) { Toast(translate('loginsuccessredirect'), 1000, 'rgb(18, 187, 2)', '#ffffff', 'top') setTimeout(() => { @@ -4858,14 +4854,14 @@ cursor: pointer; const $$ = document.querySelectorAll.bind(document) function sanitify(s) { // Remove emojis (such a headache) - s = s.replaceAll(/([\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2580-\u27BF]|\uD83E[\uDD10-\uDEFF]|\uFE0F)/g, "") + s = s.replaceAll(/([\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2580-\u27BF]|\uD83E[\uDD10-\uDEFF]|\uFE0F)/g, '') // Trim spaces and newlines s = s.trim() // Replace spaces - s = s.replaceAll(" ", "-") - s = s.replaceAll("%20", "-") + s = s.replaceAll(' ', '-') + s = s.replaceAll('%20', '-') // No more multiple "-" - s = s.replaceAll(/-+/g, "-") + s = s.replaceAll(/-+/g, '-') return s } function process(node) { // Add anchor and assign id to given node; Add to outline. Return true if node is actually processed. @@ -4878,15 +4874,15 @@ cursor: pointer; const anchor = node.appendChild(document.createElement('a')) anchor.className = 'anchor' anchor.href = '#' + node.id - const link = outline.appendChild(document.createElement("li")) - .appendChild(document.createElement("a")) - link.href = "#" + node.id + const link = outline.appendChild(document.createElement('li')) + .appendChild(document.createElement('a')) + link.href = '#' + node.id link.text = text return true } function injectCSS(css) { - const style = document.head.appendChild(document.createElement("style")) - style.id = "greasyfork-enhance-basic" + const style = document.head.appendChild(document.createElement('style')) + style.id = 'greasyfork-enhance-basic' style.textContent = css } // Basic css @@ -4912,16 +4908,16 @@ cursor: pointer; const is_disccussion = /^\/[^\/]+\/discussions/ const path = window.location.pathname if ((!is_script.test(path) && !is_disccussion.test(path)) || is_specific_script.test(path)) { - const panel = $("body").insertBefore(document.createElement("aside"), $("body > div.width-constraint")) - panel.className = "panel" - const reference_node = $("body > div.width-constraint > section") - outline = panel.appendChild(document.createElement("ul")) - outline.classList.add("outline") - outline.classList.add("dynamic-opacity") - outline.style.top = reference_node ? getComputedStyle(reference_node).marginTop : "1em" + const panel = $('body').insertBefore(document.createElement('aside'), $('body > div.width-constraint')) + panel.className = 'panel' + const reference_node = $('body > div.width-constraint > section') + outline = panel.appendChild(document.createElement('ul')) + outline.classList.add('outline') + outline.classList.add('dynamic-opacity') + outline.style.top = reference_node ? getComputedStyle(reference_node).marginTop : '1em' outline.style.marginTop = outline.style.top let flag = false - $$("body > div.width-constraint h1, h2, h3, h4, h5, h6").forEach((node) => { + $$('body > div.width-constraint h1, h2, h3, h4, h5, h6').forEach((node) => { flag = process(node) || flag // Not `flag || process(node)`! }) if (!flag) { @@ -4932,8 +4928,8 @@ cursor: pointer; // STUB - 设置用户图片代理 if (userimageproxy) { const $$ = document.querySelectorAll.bind(document) - const PROXY = "https://wsrv.nl/?url=" - const images = $$("a[href^='/rails/active_storage/blobs/redirect/'] > img[src^='https://greasyfork.']") + const PROXY = 'https://wsrv.nl/?url=' + const images = $$('a[href^=\'/rails/active_storage/blobs/redirect/\'] > img[src^=\'https://greasyfork.\']') for (const img of images) { img.src = PROXY + img.src const link = img.parentElement @@ -4957,9 +4953,9 @@ cursor: pointer; `) } if (fixElementoption && isMobile() === false) { - let element = document.querySelector("#script-list-option-groups") + let element = document.querySelector('#script-list-option-groups') if (!element) { - element = document.querySelector("body > div.width-constraint > div > div.sidebar.collapsed") + element = document.querySelector('body > div.width-constraint > div > div.sidebar.collapsed') } if (element) { function fixElementInViewport() { @@ -4968,14 +4964,14 @@ cursor: pointer; const rect = element.getBoundingClientRect() const elementWidth = rect.width const elementHeight = rect.height - element.style.position = "fixed" - element.style.top = "60px" // 固定在距离视口顶部 10 像素的位置 - element.style.right = "10px" // 固定在距离视口右侧 10 像素的位置 - element.style.zIndex = "1000" - element.style.backgroundColor = "#fff" - element.style.boxShadow = "0 2px 5px rgba(0,0,0,0.3)" - element.style.overflow = "auto" // 允许内容滚动 - element.style.maxHeight = "800px" // 设置最大高度为视口高度减去顶部和底部的边距 + element.style.position = 'fixed' + element.style.top = '60px' // 固定在距离视口顶部 10 像素的位置 + element.style.right = '10px' // 固定在距离视口右侧 10 像素的位置 + element.style.zIndex = '1000' + element.style.backgroundColor = '#fff' + element.style.boxShadow = '0 2px 5px rgba(0,0,0,0.3)' + element.style.overflow = 'auto' // 允许内容滚动 + element.style.maxHeight = '800px' // 设置最大高度为视口高度减去顶部和底部的边距 } fixElementInViewport() window.addEventListener('resize', fixElementInViewport) @@ -4988,7 +4984,7 @@ cursor: pointer; if (beautifyTopNav && isMobile() === false) { beautifyTopNavigationBar() function beautifyTopNavigationBar() { - const beautifyTopNavigationBarCSS = "#language-selector {\r\n display: none;\r\n}\r\n@media screen and (min-width: 600px) {\r\n body {\r\n --header-height: 50px;\r\n --el-gap: 20px;\r\n }\r\n\r\n header#main-header {\r\n height: var(--header-height);\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n z-index: 55555;\r\n padding: unset;\r\n display: flex;\r\n justify-content: space-around;\r\n }\r\n\r\n body > .width-constraint {\r\n margin-top: calc(var(--header-height) + 35px);\r\n }\r\n\r\n header#main-header .width-constraint {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--el-gap);\r\n padding: unset;\r\n margin: unset;\r\n max-width: unset;\r\n }\r\n\r\n header#main-header a {\r\n text-decoration: none;\r\n text-wrap: nowrap;\r\n }\r\n\r\n header#main-header .sign-out-link a {\r\n text-decoration: underline;\r\n }\r\n\r\n header#main-header #site-name {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n header#main-header #site-name img {\r\n width: calc(var(--header-height) - 5px);\r\n height: calc(var(--header-height) - 5px);\r\n }\r\n\r\n /* 隐藏Greasyfork文字 */\r\n header#main-header #site-name-text {\r\n display: none;\r\n }\r\n\r\n header#main-header #site-nav {\r\n display: flex;\r\n flex-direction: row-reverse;\r\n align-items: center;\r\n flex: 1;\r\n justify-content: space-between;\r\n height: 100%;\r\n gap: var(--el-gap);\r\n }\r\n\r\n header#main-header #site-nav nav li {\r\n padding: 0 0.5em;\r\n display: flex;\r\n align-items: center;\r\n height: var(--header-height);\r\n min-width: 30px;\r\n justify-content: center;\r\n }\r\n\r\n header#main-header #site-nav nav li:hover {\r\n background: #5f0101;\r\n }\r\n\r\n header#main-header #nav-user-info {\r\n max-width: 150px;\r\n }\r\n\r\n header#main-header #nav-user-info > span {\r\n /*flex: 1;*/\r\n flex: 1 0 auto;\r\n }\r\n\r\n header#main-header #nav-user-info,\r\n header#main-header #nav-user-info + nav {\r\n position: unset;\r\n width: unset;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n }\r\n}\r\n" + const beautifyTopNavigationBarCSS = '#language-selector {\r\n display: none;\r\n}\r\n@media screen and (min-width: 600px) {\r\n body {\r\n --header-height: 50px;\r\n --el-gap: 20px;\r\n }\r\n\r\n header#main-header {\r\n height: var(--header-height);\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n z-index: 55555;\r\n padding: unset;\r\n display: flex;\r\n justify-content: space-around;\r\n }\r\n\r\n body > .width-constraint {\r\n margin-top: calc(var(--header-height) + 35px);\r\n }\r\n\r\n header#main-header .width-constraint {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--el-gap);\r\n padding: unset;\r\n margin: unset;\r\n max-width: unset;\r\n }\r\n\r\n header#main-header a {\r\n text-decoration: none;\r\n text-wrap: nowrap;\r\n }\r\n\r\n header#main-header .sign-out-link a {\r\n text-decoration: underline;\r\n }\r\n\r\n header#main-header #site-name {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n header#main-header #site-name img {\r\n width: calc(var(--header-height) - 5px);\r\n height: calc(var(--header-height) - 5px);\r\n }\r\n\r\n /* 隐藏Greasyfork文字 */\r\n header#main-header #site-name-text {\r\n display: none;\r\n }\r\n\r\n header#main-header #site-nav {\r\n display: flex;\r\n flex-direction: row-reverse;\r\n align-items: center;\r\n flex: 1;\r\n justify-content: space-between;\r\n height: 100%;\r\n gap: var(--el-gap);\r\n }\r\n\r\n header#main-header #site-nav nav li {\r\n padding: 0 0.5em;\r\n display: flex;\r\n align-items: center;\r\n height: var(--header-height);\r\n min-width: 30px;\r\n justify-content: center;\r\n }\r\n\r\n header#main-header #site-nav nav li:hover {\r\n background: #5f0101;\r\n }\r\n\r\n header#main-header #nav-user-info {\r\n max-width: 150px;\r\n }\r\n\r\n header#main-header #nav-user-info > span {\r\n /*flex: 1;*/\r\n flex: 1 0 auto;\r\n }\r\n\r\n header#main-header #nav-user-info,\r\n header#main-header #nav-user-info + nav {\r\n position: unset;\r\n width: unset;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n }\r\n}\r\n' GM_addStyle(beautifyTopNavigationBarCSS) } diff --git a/Script details/greasyfork-utility-toolkit/preview/allscriptlist.png b/greasyfork-utility-toolkit/preview/allscriptlist.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/allscriptlist.png rename to greasyfork-utility-toolkit/preview/allscriptlist.png diff --git a/Script details/greasyfork-utility-toolkit/preview/code2.png b/greasyfork-utility-toolkit/preview/code2.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/code2.png rename to greasyfork-utility-toolkit/preview/code2.png diff --git a/Script details/greasyfork-utility-toolkit/preview/hidec.png b/greasyfork-utility-toolkit/preview/hidec.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/hidec.png rename to greasyfork-utility-toolkit/preview/hidec.png diff --git a/Script details/greasyfork-utility-toolkit/preview/hisdown.png b/greasyfork-utility-toolkit/preview/hisdown.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/hisdown.png rename to greasyfork-utility-toolkit/preview/hisdown.png diff --git a/Script details/greasyfork-utility-toolkit/preview/libdown.png b/greasyfork-utility-toolkit/preview/libdown.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/libdown.png rename to greasyfork-utility-toolkit/preview/libdown.png diff --git a/Script details/greasyfork-utility-toolkit/preview/maxw.png b/greasyfork-utility-toolkit/preview/maxw.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/maxw.png rename to greasyfork-utility-toolkit/preview/maxw.png diff --git a/Script details/greasyfork-utility-toolkit/preview/nav.png b/greasyfork-utility-toolkit/preview/nav.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/nav.png rename to greasyfork-utility-toolkit/preview/nav.png diff --git a/Script details/greasyfork-utility-toolkit/preview/rep1.png b/greasyfork-utility-toolkit/preview/rep1.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/rep1.png rename to greasyfork-utility-toolkit/preview/rep1.png diff --git a/Script details/greasyfork-utility-toolkit/preview/rep2.png b/greasyfork-utility-toolkit/preview/rep2.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/rep2.png rename to greasyfork-utility-toolkit/preview/rep2.png diff --git a/Script details/greasyfork-utility-toolkit/preview/scripcode.png b/greasyfork-utility-toolkit/preview/scripcode.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/scripcode.png rename to greasyfork-utility-toolkit/preview/scripcode.png diff --git a/Script details/greasyfork-utility-toolkit/preview/scriptdet.png b/greasyfork-utility-toolkit/preview/scriptdet.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/scriptdet.png rename to greasyfork-utility-toolkit/preview/scriptdet.png diff --git a/Script details/greasyfork-utility-toolkit/preview/scriptlist.png b/greasyfork-utility-toolkit/preview/scriptlist.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/scriptlist.png rename to greasyfork-utility-toolkit/preview/scriptlist.png diff --git a/Script details/greasyfork-utility-toolkit/preview/time.png b/greasyfork-utility-toolkit/preview/time.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/time.png rename to greasyfork-utility-toolkit/preview/time.png diff --git a/Script details/greasyfork-utility-toolkit/preview/user.png b/greasyfork-utility-toolkit/preview/user.png similarity index 100% rename from Script details/greasyfork-utility-toolkit/preview/user.png rename to greasyfork-utility-toolkit/preview/user.png diff --git a/Script details/greasyfork-webhook-sync-enhanced/Change history/README.md b/greasyfork-webhook-sync-enhanced/Change history/README.md similarity index 85% rename from Script details/greasyfork-webhook-sync-enhanced/Change history/README.md rename to greasyfork-webhook-sync-enhanced/Change history/README.md index f0d02351c..d4d494902 100644 --- a/Script details/greasyfork-webhook-sync-enhanced/Change history/README.md +++ b/greasyfork-webhook-sync-enhanced/Change history/README.md @@ -1,14 +1,17 @@ -# **🛠️ GreaysFork增强WebHook 更新日志** +# **🛠️ GreaysFork增强WebHook 更新日志** ### **📅 2024/9/15 10:53 - Ver 1.1.1.0** + **修复**: • 按钮`hover active focus`放入父类`.Sync-Modal` ### **📅 2024/9/5 04:29 - Ver 1.1.0.0** + **新增**: • 每次提交后返回 GreasyFork 同步提示。 --- ### **📅 2024/9/4 11:52 - Ver 1.0.0.0** + **初始版本**: • 欢迎使用。 --- diff --git a/greasyfork-webhook-sync-enhanced/README.md b/greasyfork-webhook-sync-enhanced/README.md new file mode 100644 index 000000000..d8911a411 --- /dev/null +++ b/greasyfork-webhook-sync-enhanced/README.md @@ -0,0 +1,266 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          GreaysFork 增强WebHook同步设置

          +

          「 GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          🛠️ GreaysFork增强WebHook 更新日志

          +

          📅 2024/9/15 10:53 - Ver 1.1.1.0

          +

          修复: • 按钮hover active focus放入父类.Sync-Modal

          +

          📅 2024/9/5 04:29 - Ver 1.1.0.0

          +

          新增: • 每次提交后返回 GreasyFork 同步提示。

          +
          +

          📅 2024/9/4 11:52 - Ver 1.0.0.0

          +

          初始版本: • 欢迎使用。

          +
          + +
          + + + + + + + +# GreasyFork - 增强WebHook同步设置 + +在GreasyFork上设置同步信息时,常常会遇到提交后查看时,发现同步信息并没有被设置成功,导致需要重新输入。这是网站的小问题之一。为了解决这个问题,这个脚本可以帮助你快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 + + + +## 功能特点 + +- **快速输入同步信息**:无需手动重复输入,可以快速地设置和同步信息。 +- **批量增加语言代码**:支持批量添加多个国家/地区的语言代码,无需逐个选择。 +- **支持多种格式**:可以根据需要选择不同的URL格式进行设置。 + + + +## 使用说明 (详情可以查看下方图片或上方视频) + +- **脚本管理页面**:处于脚本管理页面,在下方增加一个按钮,点击之后可以对当前脚本进行管理。 +- **网站顶部导航栏**:导航栏增加一个选项,用于点击之后自动获取Webhook同步的脚本.进行多个管理. + + + +## 支持的格式 + +目前支持以下三种格式: + +1. **从Markdown文件获取国家语言**: 仅支持 `README_xxx.md`.
          + `https://www.xxx.com/path/to/your/README_xxxxx.md` +2. **直接设置对应的国家语言(简洁格式)**: 支持其他格式文件.
          + ` https://www.xxx.com/path/to/your/filename.md##ko` +3. **直接设置对应的国家语言(详细格式)**: 支持其他格式文件
          + ` https://www.xxx.com/path/to/your/filename.md##简体中文 (zh-CN)` + +代码如下: 如果你有更多的选择可以拓展
          +` let localeKey = url.includes('##') ? url.match(/##.*\((.*?)\)$/) || url.match(/##(.*?)$/) : url.match(/README_(.*?)\.md/)` + + + +## 注意: + +- 提交的本地化国家信息时,代码内必须存在头部声明 例如//@name:zh-CN,否则即使提交成功也是失败的! +- 脚本必须存在!否则同步失败, + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + +## 项目与反馈 + +- **项目页面:** [GitHub 仓库](https://github.com/ChinaGodMan/UserScripts) +- **支持与问题反馈:** [报告问题](https://github.com/ChinaGodMan/UserScripts/issues) + +![sync.png](https://s2.loli.net/2024/09/04/oYGt17AV9MD43w6.png) +![nav.png](https://s2.loli.net/2024/09/04/S29ePTaR78uBsrF.png) +![message.png](https://s2.loli.net/2024/09/05/2C6pUBQryHZg35j.png) +![404.png](https://s2.loli.net/2024/09/05/YmJBL9R8qMcx1UZ.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/greasyfork-webhook-sync-enhanced/README_en.md b/greasyfork-webhook-sync-enhanced/README_en.md new file mode 100644 index 000000000..3a7f19765 --- /dev/null +++ b/greasyfork-webhook-sync-enhanced/README_en.md @@ -0,0 +1,266 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          GreaysFork EnhanceWebHookSync settings

          +

          「 GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          Update record

          🛠️ GreaysForkEnhanceWebHook Change log

          +

          📅 2024/9/15 10:53 - Ver 1.1.1.0

          +

          repair: • buttonhover active focusPut in parent class.Sync-Modal

          +

          📅 2024/9/5 04:29 - Ver 1.1.0.0

          +

          New: • Return after each submission GreasyFork Sync tips。

          +
          +

          📅 2024/9/4 11:52 - Ver 1.0.0.0

          +

          initial version: • Welcome。

          +
          + +
          + + + + + + + +# GreasyFork - Enhanced WebHook Synchronization Settings + +When setting up synchronization information on GreasyFork, you might often find that after submitting, the sync information hasn't been successfully saved, requiring you to re-enter it. This is one of the small issues with the website. To solve this problem, this script helps you quickly input script synchronization information and batch-add multiple country language codes without having to click on each checkbox and then go to the corresponding URL. + + + +## Features + +- **Quick Input of Synchronization Information**: No need to manually repeat input, allowing you to quickly set and sync information. +- **Batch Add Language Codes**: Supports batch addition of multiple country/region language codes without the need to select each one individually. +- **Supports Multiple Formats**: You can choose different URL formats for setup based on your needs. + + + +## Instructions (For more details, refer to the images below or the video above) + +- **Script Management Page**: On the script management page, an additional button is added at the bottom. After clicking it, you can manage the current script. +- **Website Top Navigation Bar**: Adds an option to the navigation bar that, when clicked, automatically retrieves the WebHook synchronized scripts for multiple management. + + + +## Supported Formats + +Currently, the following three formats are supported: + +1. **Get Country Language from Markdown File**: Only supports `README_xxx.md`. + `https://www.xxx.com/path/to/your/README_xxxxx.md` +2. **Directly Set Corresponding Country Language (Simple Format)**: Supports other format files. + ` https://www.xxx.com/path/to/your/filename.md##ko` +3. **Directly Set Corresponding Country Language (Detailed Format)**: Supports other format files. + ` https://www.xxx.com/path/to/your/filename.md##simplebodymiddlearts (zh-CN)` + +Example code: If you have more options, you can extend it.
          +`let localeKey = url.includes('##') ? url.match(/##.*\((.*?)\)$/) || url.match(/##(.*?)$/) : url.match(/README_(.*?)\.md/)` + + + +## Attention: + +- When submitting localized country information, there must be a header declaration such as//@ name: zh CN in the code, otherwise even if the submission is successful, it will still fail! +- The script must exist! Otherwise, synchronization will fail, + + + +## Project and Feedback + +- **Project Page:** [GitHub Repository](https://github.com/ChinaGodMan/UserScripts) +- **Support and Issues:** [Report Issues](https://github.com/ChinaGodMan/UserScripts/issues) + +![sync.png](https://s2.loli.net/2024/09/04/oYGt17AV9MD43w6.png) +![nav.png](https://s2.loli.net/2024/09/04/S29ePTaR78uBsrF.png) +![message.png](https://s2.loli.net/2024/09/05/2C6pUBQryHZg35j.png) +![404.png](https://s2.loli.net/2024/09/05/YmJBL9R8qMcx1UZ.png) + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/greasyfork-webhook-sync-enhanced.user.js b/greasyfork-webhook-sync-enhanced/greasyfork-webhook-sync-enhanced.user.js similarity index 76% rename from greasyfork-webhook-sync-enhanced.user.js rename to greasyfork-webhook-sync-enhanced/greasyfork-webhook-sync-enhanced.user.js index 305166111..15ed1fefb 100644 --- a/greasyfork-webhook-sync-enhanced.user.js +++ b/greasyfork-webhook-sync-enhanced/greasyfork-webhook-sync-enhanced.user.js @@ -83,7 +83,7 @@ // @compatible safari // @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHN0eWxlPSJmaWxsOiAjRDcyMzIzOyI+PHBhdGggZD0iTTIwMC4zIDI2OS45Yy0xNS43IDYuNi0zMi43IDEwLjEtNTAuMyAxMC4xLTM0LjcgMC02Ny40LTEzLjUtOTEuOS0zOC4xQzMzLjUgMjE3LjQgMjAgMTg0LjcgMjAgMTUwczEzLjUtNjcuNCAzOC4xLTkxLjlDODIuNiAzMy41IDExNS4zIDIwIDE1MCAyMHM2Ny40IDEzLjUgOTEuOSAzOC4xQzI2Ni41IDgyLjYgMjgwIDExNS4zIDI4MCAxNTBjMCAxNy42LTMuNSAzNC42LTEwIDUwLjMgNSA1IDEwIDEwLjEgMTUuMSAxNS4xIDkuNi0xOS44IDE1LTQyIDE1LTY1LjRDMzAwIDY3LjIgMjMyLjggMCAxNTAgMFMwIDY3LjIgMCAxNTBzNjcuMiAxNTAgMTUwIDE1MGMyMy40IDAgNDUuNi01LjQgNjUuNC0xNS01LjEtNS0xMC4xLTEwLjEtMTUuMS0xNS4xeiIvPjxwYXRoIGQ9Ik0yNjcuOCAzMDBjLTkuNi0xLjMtMTYuNS03LTIzLjEtMTMuNy0xNC45LTE1LjMtMzAuMS0zMC4yLTQ1LjItNDUuMy05LjMtOS4zLTEyLTIwLjEtNy41LTMyLjcuMy0uOC4zLTIuMS0uMi0yLjYtMy45LTQuMS03LjktOC0xMi0xMi4xLTYuNCA0LTEzLjEgNi43LTIwLjUgNy42LTE1LjUgMS45LTI5LTIuNC00MC4yLTEzLjItMTIuMy0xMS44LTI0LjItMjQtMzYuMi0zNi4xLTMuNS0zLjUtNC4xLTcuNC0yLjItMTEuMiAxLjktMy43IDUuOS02LjQgOS43LTUuNiAyLjUuNSA1LjEgMiA2LjkgMy44IDcuNCA3LjEgMTQuNSAxNC40IDIxLjggMjEuNi42LjYgMS4zIDEuMiAxLjcgMS42bDEzLjgtMTMuOGMtNi4yLTYuMS0xMi42LTEyLjUtMTguOS0xOC45LTEuOS0xLjktMy44LTMuNy01LjYtNS42LTMuOC00LjItMy43LTkuNy4yLTEzLjYgMy45LTMuOSA5LjUtNC4xIDEzLjYtLjEgNy41IDcuMyAxNC44IDE0LjcgMjIuMSAyMi4xLjguOCAxLjUgMS44IDIuMSAyLjRsMTQuMy0xNC4zYy0yLTEuOC00LjUtNC02LjgtNi4zLTYtNS45LTExLjktMTEuOC0xNy44LTE3LjgtMi43LTIuNy0zLjctNS45LTIuNC05LjYgMS40LTMuOSA0LjItNi4zIDguMy02LjkgMy40LS42IDYgMSA4LjQgMy4zbDE0LjcgMTQuN2M3LjQgNy40IDE0LjkgMTQuNiAyMiAyMi4yIDE0LjcgMTUuNyAxNyAzOS4xIDYuMSA1Ny43LS40LjctLjcgMS40LTEuMyAyLjQgMy45IDMuOSA3LjkgNy44IDExLjkgMTEuNi42LjUgMiAuNiAyLjguMyAxMi41LTQuNCAyMy4zLTEuNyAzMi43IDcuNiAxNS4xIDE1LjEgMzAuMSAzMC4zIDQ1LjMgNDUuMiA2LjcgNi41IDEyLjQgMTMuNCAxMy43IDIzdjUuOGMtLjIuNS0uNCAxLjEtLjUgMS42LTEuOCA5LjUtNi42IDE3LTE1LjUgMjEuMi0zLjMgMS42LTYuOSAyLjMtMTAuNCAzLjUtMS45LjItMy44LjItNS44LjJ6Ii8+PHBhdGggZD0iTTE3MCAyMTkuNmMtMi43LjctNS40IDEuMi04LjIgMS41LTMuMS40LTYuMi42LTkuMi42LTE3LjkgMC0zNC4yLTYuNi00Ny4yLTE5LjItMTAuMi05LjgtMjAuMi0yMC0zMC0yOS44bC02LjYtNi42Yy05LjUtOS41LTExLjctMjIuNy01LjgtMzQuMyA0LjktOS42IDE0LjQtMTYgMjQuNS0xNi42LjUtNi45IDMuNS0xMy42IDguOS0xOC45IDUuMi01LjEgMTEuOC04LjIgMTguNy04LjcuMi0yLjUuNy00LjkgMS42LTcuNCAzLjgtMTAuOCAxMi42LTE4LjEgMjMuOS0yMCAxLjUtLjIgMy4xLS40IDQuNi0uNCA1LjQgMCAxMy40IDEuNiAyMS4xIDkuMiA0LjcgNC43IDkuNiA5LjUgMTQuOCAxNC43IDIuMSAyLjIgNC40IDQuNCA2LjUgNi41IDUuMyA1LjIgMTAuNyAxMC42IDE1LjkgMTYuMiAxMC4yIDEwLjkgMTYuNCAyNC41IDE3LjkgMzkuMy45IDguMi4yIDE2LjQtMS44IDI0LjJoLjFjMTIuOCAwIDI0LjcgNS4xIDM0LjcgMTQuOCAzLjYtMTAuOSA1LjYtMjIuNiA1LjYtMzQuNyAwLTYwLjgtNDkuMi0xMTAtMTEwLTExMFM0MCA4OS4yIDQwIDE1MHM0OS4yIDExMCAxMTAgMTEwYzEyLjEgMCAyMy44LTIgMzQuNy01LjYtOS44LTEwLjEtMTQuOC0yMi4xLTE0LjctMzQuOHoiLz48L3N2Zz4= // @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/RedFork.svg -// @author 人民的勤务员 +// @author 人民的勤务员 // @match *://greasyfork.org/* // @license MIT // @supportURL https://github.com/ChinaGodMan/UserScripts/issues @@ -207,10 +207,10 @@ syncUpdate(SyncScriptForm.value, global.inputModalDefault.value, global.adminUrl) } openSyncOnadminPage.addEventListener('click', () => { - openSuperAdmin(window.location.href.replace(/\/[^\/]*$/, ''), "", false) + openSuperAdmin(window.location.href.replace(/\/[^\/]*$/, ''), '', false) }) //取消鲨臂按钮 - addNavLink("Set sync", '#', false, false, "ScriptSyncLink") + addNavLink('Set sync', '#', false, false, 'ScriptSyncLink') var customClassName = 'ScriptSyncLink' var link = document.querySelector(`.${customClassName} > a`) if (link) { @@ -219,208 +219,208 @@ addAdminButtons() }) } - if (window.location.pathname.includes("/admin")) { + if (window.location.pathname.includes('/admin')) { // openSyncOnadminPage.style.display = "block" - const targetElement = document.querySelector("#script-content > section:nth-child(2) > h3") + const targetElement = document.querySelector('#script-content > section:nth-child(2) > h3') const newLink = document.createElement('a') newLink.href = '#' newLink.textContent = 'Set sync' newLink.addEventListener('click', function (event) { event.preventDefault() - openSuperAdmin(window.location.href.replace(/\/[^\/]*$/, ''), "", false) + openSuperAdmin(window.location.href.replace(/\/[^\/]*$/, ''), '', false) }) targetElement.insertAdjacentElement('afterend', newLink) } async function syncUpdate(scriptSyncIdentifier, additionalInfoSyncIdentifier, postUrl) { const urls = global.inputModalTextArea.value.trim().split('\n') const translateTable = [ - { "code": "aa", "value": "1" }, - { "code": "ab", "value": "2" }, - { "code": "ae", "value": "3" }, - { "code": "af", "value": "4" }, - { "code": "ak", "value": "5" }, - { "code": "am", "value": "6" }, - { "code": "as", "value": "8" }, - { "code": "ast", "value": "9" }, - { "code": "av", "value": "10" }, - { "code": "ay", "value": "11" }, - { "code": "az", "value": "12" }, - { "code": "ba", "value": "13" }, - { "code": "be", "value": "14" }, - { "code": "bh", "value": "16" }, - { "code": "bi", "value": "17" }, - { "code": "bm", "value": "18" }, - { "code": "bn", "value": "19" }, - { "code": "bo", "value": "20" }, - { "code": "br", "value": "21" }, - { "code": "bs", "value": "22" }, - { "code": "ca", "value": "23" }, - { "code": "ce", "value": "24" }, - { "code": "ceb", "value": "25" }, - { "code": "ch", "value": "26" }, - { "code": "chr", "value": "27" }, - { "code": "co", "value": "28" }, - { "code": "cr", "value": "29" }, - { "code": "cs", "value": "30" }, - { "code": "cu", "value": "31" }, - { "code": "cv", "value": "32" }, - { "code": "cy", "value": "33" }, - { "code": "da", "value": "34" }, - { "code": "de", "value": "35" }, - { "code": "dv", "value": "36" }, - { "code": "dz", "value": "37" }, - { "code": "ee", "value": "38" }, - { "code": "el", "value": "39" }, - { "code": "en", "value": "40" }, - { "code": "eo", "value": "41" }, - { "code": "es", "value": "42" }, - { "code": "et", "value": "43" }, - { "code": "eu", "value": "44" }, - { "code": "fa", "value": "45" }, - { "code": "ff", "value": "46" }, - { "code": "fi", "value": "47" }, - { "code": "fil", "value": "48" }, - { "code": "fj", "value": "49" }, - { "code": "fo", "value": "50" }, - { "code": "fr", "value": "51" }, - { "code": "fy", "value": "52" }, - { "code": "ga", "value": "53" }, - { "code": "gd", "value": "54" }, - { "code": "gl", "value": "55" }, - { "code": "gn", "value": "56" }, - { "code": "gsw-berne", "value": "57" }, - { "code": "gu", "value": "58" }, - { "code": "gv", "value": "59" }, - { "code": "ha", "value": "60" }, - { "code": "he", "value": "61" }, - { "code": "hi", "value": "62" }, - { "code": "hmn", "value": "63" }, - { "code": "ho", "value": "64" }, - { "code": "hr", "value": "65" }, - { "code": "ht", "value": "66" }, - { "code": "hu", "value": "67" }, - { "code": "hy", "value": "68" }, - { "code": "hz", "value": "69" }, - { "code": "ia", "value": "70" }, - { "code": "id", "value": "71" }, - { "code": "ie", "value": "72" }, - { "code": "ig", "value": "73" }, - { "code": "ik", "value": "74" }, - { "code": "is", "value": "75" }, - { "code": "it", "value": "76" }, - { "code": "iu", "value": "77" }, - { "code": "ja", "value": "78" }, - { "code": "jv", "value": "79" }, - { "code": "ka", "value": "80" }, - { "code": "kg", "value": "81" }, - { "code": "ki", "value": "82" }, - { "code": "kj", "value": "83" }, - { "code": "kk", "value": "84" }, - { "code": "kl", "value": "85" }, - { "code": "km", "value": "86" }, - { "code": "kn", "value": "87" }, - { "code": "ko", "value": "88" }, - { "code": "kr", "value": "89" }, - { "code": "ks", "value": "90" }, - { "code": "ku", "value": "91" }, - { "code": "kv", "value": "92" }, - { "code": "kw", "value": "93" }, - { "code": "ky", "value": "94" }, - { "code": "la", "value": "95" }, - { "code": "lb", "value": "96" }, - { "code": "lg", "value": "97" }, - { "code": "lif", "value": "98" }, - { "code": "ln", "value": "99" }, - { "code": "lo", "value": "100" }, - { "code": "lt", "value": "101" }, - { "code": "lu", "value": "102" }, - { "code": "lv", "value": "103" }, - { "code": "mg", "value": "104" }, - { "code": "mh", "value": "105" }, - { "code": "mi", "value": "106" }, - { "code": "mk", "value": "107" }, - { "code": "ml", "value": "108" }, - { "code": "mn", "value": "109" }, - { "code": "mo", "value": "110" }, - { "code": "mr", "value": "111" }, - { "code": "ms", "value": "112" }, - { "code": "mt", "value": "113" }, - { "code": "my", "value": "114" }, - { "code": "na", "value": "115" }, - { "code": "nb", "value": "119" }, - { "code": "nd", "value": "120" }, - { "code": "ne", "value": "121" }, - { "code": "ng", "value": "122" }, - { "code": "nl", "value": "118" }, - { "code": "nn", "value": "124" }, - { "code": "no", "value": "125" }, - { "code": "nr", "value": "126" }, - { "code": "nv", "value": "127" }, - { "code": "ny", "value": "128" }, - { "code": "oc", "value": "129" }, - { "code": "pa", "value": "131" }, - { "code": "pi", "value": "132" }, - { "code": "ps", "value": "133" }, - { "code": "pt", "value": "134" }, - { "code": "qu", "value": "135" }, - { "code": "rm", "value": "136" }, - { "code": "rn", "value": "137" }, - { "code": "ro", "value": "138" }, - { "code": "ru", "value": "139" }, - { "code": "rw", "value": "140" }, - { "code": "sa", "value": "141" }, - { "code": "sc", "value": "142" }, - { "code": "sd", "value": "143" }, - { "code": "sg", "value": "144" }, - { "code": "sh", "value": "145" }, - { "code": "si", "value": "146" }, - { "code": "sk", "value": "149" }, - { "code": "sl", "value": "150" }, - { "code": "sm", "value": "151" }, - { "code": "sn", "value": "152" }, - { "code": "so", "value": "153" }, - { "code": "sq", "value": "154" }, - { "code": "sr", "value": "155" }, - { "code": "ss", "value": "156" }, - { "code": "st", "value": "157" }, - { "code": "su", "value": "158" }, - { "code": "sv", "value": "159" }, - { "code": "sw", "value": "160" }, - { "code": "ta", "value": "161" }, - { "code": "te", "value": "162" }, - { "code": "tg", "value": "163" }, - { "code": "th", "value": "165" }, - { "code": "ti", "value": "166" }, - { "code": "tk", "value": "167" }, - { "code": "tl", "value": "168" }, - { "code": "tn", "value": "169" }, - { "code": "to", "value": "170" }, - { "code": "tr", "value": "171" }, - { "code": "ts", "value": "172" }, - { "code": "tt", "value": "173" }, - { "code": "tw", "value": "174" }, - { "code": "ty", "value": "175" }, - { "code": "ug", "value": "176" }, - { "code": "uk", "value": "177" }, - { "code": "ur", "value": "178" }, - { "code": "uz", "value": "179" }, - { "code": "ve", "value": "180" }, - { "code": "vi", "value": "181" }, - { "code": "vo", "value": "182" }, - { "code": "wa", "value": "183" }, - { "code": "wo", "value": "184" }, - { "code": "xh", "value": "185" }, - { "code": "yi", "value": "186" }, - { "code": "zh-CN", "value": "187" }, - { "code": "zh-TW", "value": "188" }, - { "code": "zu", "value": "189" } + { 'code': 'aa', 'value': '1' }, + { 'code': 'ab', 'value': '2' }, + { 'code': 'ae', 'value': '3' }, + { 'code': 'af', 'value': '4' }, + { 'code': 'ak', 'value': '5' }, + { 'code': 'am', 'value': '6' }, + { 'code': 'as', 'value': '8' }, + { 'code': 'ast', 'value': '9' }, + { 'code': 'av', 'value': '10' }, + { 'code': 'ay', 'value': '11' }, + { 'code': 'az', 'value': '12' }, + { 'code': 'ba', 'value': '13' }, + { 'code': 'be', 'value': '14' }, + { 'code': 'bh', 'value': '16' }, + { 'code': 'bi', 'value': '17' }, + { 'code': 'bm', 'value': '18' }, + { 'code': 'bn', 'value': '19' }, + { 'code': 'bo', 'value': '20' }, + { 'code': 'br', 'value': '21' }, + { 'code': 'bs', 'value': '22' }, + { 'code': 'ca', 'value': '23' }, + { 'code': 'ce', 'value': '24' }, + { 'code': 'ceb', 'value': '25' }, + { 'code': 'ch', 'value': '26' }, + { 'code': 'chr', 'value': '27' }, + { 'code': 'co', 'value': '28' }, + { 'code': 'cr', 'value': '29' }, + { 'code': 'cs', 'value': '30' }, + { 'code': 'cu', 'value': '31' }, + { 'code': 'cv', 'value': '32' }, + { 'code': 'cy', 'value': '33' }, + { 'code': 'da', 'value': '34' }, + { 'code': 'de', 'value': '35' }, + { 'code': 'dv', 'value': '36' }, + { 'code': 'dz', 'value': '37' }, + { 'code': 'ee', 'value': '38' }, + { 'code': 'el', 'value': '39' }, + { 'code': 'en', 'value': '40' }, + { 'code': 'eo', 'value': '41' }, + { 'code': 'es', 'value': '42' }, + { 'code': 'et', 'value': '43' }, + { 'code': 'eu', 'value': '44' }, + { 'code': 'fa', 'value': '45' }, + { 'code': 'ff', 'value': '46' }, + { 'code': 'fi', 'value': '47' }, + { 'code': 'fil', 'value': '48' }, + { 'code': 'fj', 'value': '49' }, + { 'code': 'fo', 'value': '50' }, + { 'code': 'fr', 'value': '51' }, + { 'code': 'fy', 'value': '52' }, + { 'code': 'ga', 'value': '53' }, + { 'code': 'gd', 'value': '54' }, + { 'code': 'gl', 'value': '55' }, + { 'code': 'gn', 'value': '56' }, + { 'code': 'gsw-berne', 'value': '57' }, + { 'code': 'gu', 'value': '58' }, + { 'code': 'gv', 'value': '59' }, + { 'code': 'ha', 'value': '60' }, + { 'code': 'he', 'value': '61' }, + { 'code': 'hi', 'value': '62' }, + { 'code': 'hmn', 'value': '63' }, + { 'code': 'ho', 'value': '64' }, + { 'code': 'hr', 'value': '65' }, + { 'code': 'ht', 'value': '66' }, + { 'code': 'hu', 'value': '67' }, + { 'code': 'hy', 'value': '68' }, + { 'code': 'hz', 'value': '69' }, + { 'code': 'ia', 'value': '70' }, + { 'code': 'id', 'value': '71' }, + { 'code': 'ie', 'value': '72' }, + { 'code': 'ig', 'value': '73' }, + { 'code': 'ik', 'value': '74' }, + { 'code': 'is', 'value': '75' }, + { 'code': 'it', 'value': '76' }, + { 'code': 'iu', 'value': '77' }, + { 'code': 'ja', 'value': '78' }, + { 'code': 'jv', 'value': '79' }, + { 'code': 'ka', 'value': '80' }, + { 'code': 'kg', 'value': '81' }, + { 'code': 'ki', 'value': '82' }, + { 'code': 'kj', 'value': '83' }, + { 'code': 'kk', 'value': '84' }, + { 'code': 'kl', 'value': '85' }, + { 'code': 'km', 'value': '86' }, + { 'code': 'kn', 'value': '87' }, + { 'code': 'ko', 'value': '88' }, + { 'code': 'kr', 'value': '89' }, + { 'code': 'ks', 'value': '90' }, + { 'code': 'ku', 'value': '91' }, + { 'code': 'kv', 'value': '92' }, + { 'code': 'kw', 'value': '93' }, + { 'code': 'ky', 'value': '94' }, + { 'code': 'la', 'value': '95' }, + { 'code': 'lb', 'value': '96' }, + { 'code': 'lg', 'value': '97' }, + { 'code': 'lif', 'value': '98' }, + { 'code': 'ln', 'value': '99' }, + { 'code': 'lo', 'value': '100' }, + { 'code': 'lt', 'value': '101' }, + { 'code': 'lu', 'value': '102' }, + { 'code': 'lv', 'value': '103' }, + { 'code': 'mg', 'value': '104' }, + { 'code': 'mh', 'value': '105' }, + { 'code': 'mi', 'value': '106' }, + { 'code': 'mk', 'value': '107' }, + { 'code': 'ml', 'value': '108' }, + { 'code': 'mn', 'value': '109' }, + { 'code': 'mo', 'value': '110' }, + { 'code': 'mr', 'value': '111' }, + { 'code': 'ms', 'value': '112' }, + { 'code': 'mt', 'value': '113' }, + { 'code': 'my', 'value': '114' }, + { 'code': 'na', 'value': '115' }, + { 'code': 'nb', 'value': '119' }, + { 'code': 'nd', 'value': '120' }, + { 'code': 'ne', 'value': '121' }, + { 'code': 'ng', 'value': '122' }, + { 'code': 'nl', 'value': '118' }, + { 'code': 'nn', 'value': '124' }, + { 'code': 'no', 'value': '125' }, + { 'code': 'nr', 'value': '126' }, + { 'code': 'nv', 'value': '127' }, + { 'code': 'ny', 'value': '128' }, + { 'code': 'oc', 'value': '129' }, + { 'code': 'pa', 'value': '131' }, + { 'code': 'pi', 'value': '132' }, + { 'code': 'ps', 'value': '133' }, + { 'code': 'pt', 'value': '134' }, + { 'code': 'qu', 'value': '135' }, + { 'code': 'rm', 'value': '136' }, + { 'code': 'rn', 'value': '137' }, + { 'code': 'ro', 'value': '138' }, + { 'code': 'ru', 'value': '139' }, + { 'code': 'rw', 'value': '140' }, + { 'code': 'sa', 'value': '141' }, + { 'code': 'sc', 'value': '142' }, + { 'code': 'sd', 'value': '143' }, + { 'code': 'sg', 'value': '144' }, + { 'code': 'sh', 'value': '145' }, + { 'code': 'si', 'value': '146' }, + { 'code': 'sk', 'value': '149' }, + { 'code': 'sl', 'value': '150' }, + { 'code': 'sm', 'value': '151' }, + { 'code': 'sn', 'value': '152' }, + { 'code': 'so', 'value': '153' }, + { 'code': 'sq', 'value': '154' }, + { 'code': 'sr', 'value': '155' }, + { 'code': 'ss', 'value': '156' }, + { 'code': 'st', 'value': '157' }, + { 'code': 'su', 'value': '158' }, + { 'code': 'sv', 'value': '159' }, + { 'code': 'sw', 'value': '160' }, + { 'code': 'ta', 'value': '161' }, + { 'code': 'te', 'value': '162' }, + { 'code': 'tg', 'value': '163' }, + { 'code': 'th', 'value': '165' }, + { 'code': 'ti', 'value': '166' }, + { 'code': 'tk', 'value': '167' }, + { 'code': 'tl', 'value': '168' }, + { 'code': 'tn', 'value': '169' }, + { 'code': 'to', 'value': '170' }, + { 'code': 'tr', 'value': '171' }, + { 'code': 'ts', 'value': '172' }, + { 'code': 'tt', 'value': '173' }, + { 'code': 'tw', 'value': '174' }, + { 'code': 'ty', 'value': '175' }, + { 'code': 'ug', 'value': '176' }, + { 'code': 'uk', 'value': '177' }, + { 'code': 'ur', 'value': '178' }, + { 'code': 'uz', 'value': '179' }, + { 'code': 've', 'value': '180' }, + { 'code': 'vi', 'value': '181' }, + { 'code': 'vo', 'value': '182' }, + { 'code': 'wa', 'value': '183' }, + { 'code': 'wo', 'value': '184' }, + { 'code': 'xh', 'value': '185' }, + { 'code': 'yi', 'value': '186' }, + { 'code': 'zh-CN', 'value': '187' }, + { 'code': 'zh-TW', 'value': '188' }, + { 'code': 'zu', 'value': '189' } ] - const csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content") + const csrfToken = document.querySelector('meta[name=\'csrf-token\']').getAttribute('content') const formDataObj = { _method: 'patch', authenticity_token: csrfToken, 'script[sync_identifier]': scriptSyncIdentifier, - 'script[sync_type]': 'webhook', + 'script[sync_type]': 'webhook' } if (additionalInfoSyncIdentifier) { formDataObj['additional_info_sync[0][attribute_default]'] = 'true' @@ -441,13 +441,13 @@ console.log(formData.toString()) const postResp = await fetch(postUrl + '/sync_update', { method: 'POST', - headers: { "Content-Type": "application/x-www-form-urlencoded" }, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: formData }) const responseText = await postResp.text() const parser = new DOMParser() const doc = parser.parseFromString(responseText, 'text/html') - const specificElement = doc.querySelector("body > div.width-constraint > p") + const specificElement = doc.querySelector('body > div.width-constraint > p') // 创建并插入弹出框的 HTML document.body.insertAdjacentHTML('beforeend', `
          @@ -496,7 +496,7 @@ function openSuperAdmin(url, syncjs, isFetch = false) { global.adminUrl = url if (isFetch) { - updateWebHookInfo(url + "/admin") + updateWebHookInfo(url + '/admin') } else { updateWebHookInfo() } @@ -504,8 +504,8 @@ global.inputModalDefault.value = global.defaultAttribute global.inputModalTextArea.value = global.attribute_other global.inputModal.style.display = 'flex' - document.querySelector("h2 label[for='SyncScript']").textContent = global.scriptname + "←Source Syncing" - document.getElementById("ScriptName").textContent = global.scriptname + document.querySelector('h2 label[for=\'SyncScript\']').textContent = global.scriptname + '←Source Syncing' + document.getElementById('ScriptName').textContent = global.scriptname } function createModalWindow(linksData) { const modalHtml = ` @@ -553,10 +553,10 @@ }) window.addEventListener('click', (event) => { return//不关闭 - if (event.target === modal) { - modal.style.display = 'none' - modal.remove() - } + /* if (event.target === modal) { + modal.style.display = 'none' + modal.remove() + } */ }) } function updateStateFromDOM(dom) { @@ -564,19 +564,19 @@ if (syncInputElement) { global.syncingfrom = syncInputElement.value } else { - console.warn("Input element with id 'script_sync_identifier' not found") + console.warn('Input element with id \'script_sync_identifier\' not found') } const defaultInputElement = dom.querySelector('input#script-version-additional-info-0.previewable') if (defaultInputElement) { global.defaultAttribute = defaultInputElement.value } else { - console.warn("Default input element not found") + console.warn('Default input element not found') } const inputElements = dom.querySelectorAll('input[id^="script-version-additional-info-"].previewable') - global.scriptname = dom.querySelector("#script-info > header > h2").textContent + global.scriptname = dom.querySelector('#script-info > header > h2').textContent global.attribute_other = '' inputElements.forEach((inputElement, index) => { - if (inputElement.id !== "script-version-additional-info-0") { + if (inputElement.id !== 'script-version-additional-info-0') { if (global.attribute_other) { global.attribute_other += '\n' } @@ -591,23 +591,23 @@ if (url) { try { const xhr = new XMLHttpRequest() - xhr.open("GET", url, false) // `false` 使请求同步 + xhr.open('GET', url, false) // `false` 使请求同步 xhr.send(null) if (xhr.status >= 200 && xhr.status < 300) { const htmlText = xhr.responseText const parser = new DOMParser() const doc = parser.parseFromString(htmlText, 'text/html') updateStateFromDOM(doc) - console.log("Data fetched from URL and parsed:", global) + console.log('Data fetched from URL and parsed:', global) } else { throw new Error(`Network response was not ok: ${xhr.statusText}`) } } catch (error) { - console.error("Error fetching data from URL:", error) + console.error('Error fetching data from URL:', error) } } else { updateStateFromDOM(document) - console.log("Data fetched from current page:", global) + console.log('Data fetched from current page:', global) } } function addNavLink(link_text, linkurl, newtab, lastone, lclassname) { diff --git a/Script details/greasyfork-webhook-sync-enhanced/preview/404.png b/greasyfork-webhook-sync-enhanced/preview/404.png similarity index 100% rename from Script details/greasyfork-webhook-sync-enhanced/preview/404.png rename to greasyfork-webhook-sync-enhanced/preview/404.png diff --git a/Script details/greasyfork-webhook-sync-enhanced/preview/message.png b/greasyfork-webhook-sync-enhanced/preview/message.png similarity index 100% rename from Script details/greasyfork-webhook-sync-enhanced/preview/message.png rename to greasyfork-webhook-sync-enhanced/preview/message.png diff --git a/Script details/greasyfork-webhook-sync-enhanced/preview/nav.png b/greasyfork-webhook-sync-enhanced/preview/nav.png similarity index 100% rename from Script details/greasyfork-webhook-sync-enhanced/preview/nav.png rename to greasyfork-webhook-sync-enhanced/preview/nav.png diff --git a/Script details/greasyfork-webhook-sync-enhanced/preview/sync.png b/greasyfork-webhook-sync-enhanced/preview/sync.png similarity index 100% rename from Script details/greasyfork-webhook-sync-enhanced/preview/sync.png rename to greasyfork-webhook-sync-enhanced/preview/sync.png diff --git a/Script details/greasyfork-webhook-sync-enhanced/preview/video.mp4 b/greasyfork-webhook-sync-enhanced/preview/video.mp4 similarity index 100% rename from Script details/greasyfork-webhook-sync-enhanced/preview/video.mp4 rename to greasyfork-webhook-sync-enhanced/preview/video.mp4 diff --git a/highlight-keywords-mini/README.md b/highlight-keywords-mini/README.md new file mode 100644 index 000000000..34914bee6 --- /dev/null +++ b/highlight-keywords-mini/README.md @@ -0,0 +1,195 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          网页关键词高亮显示

          +

          「 在网页上自定义关键词突出显示包括滚动时动态加载的内容 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/highlight-keywords-mini.user.js b/highlight-keywords-mini/highlight-keywords-mini.user.js similarity index 98% rename from highlight-keywords-mini.user.js rename to highlight-keywords-mini/highlight-keywords-mini.user.js index 4e4b7965c..e985efe5b 100644 --- a/highlight-keywords-mini.user.js +++ b/highlight-keywords-mini/highlight-keywords-mini.user.js @@ -1,10 +1,11 @@ // ==UserScript== // @name 网页关键词高亮显示 +// @name:zh-CN 网页关键词高亮显示 // @namespace https://github.com/ChinaGodMan/UserScripts // @version 1.0.5.26 // @description 在网页上自定义关键词突出显示包括滚动时动态加载的内容 // @description:zh-CN 在网页上自定义关键词突出显示包括滚动时动态加载的内容 -// @author 人民的勤务员 & leconte112 +// @author 人民的勤务员 & leconte112 // @match *://*/* // @grant GM_getValue // @grant GM_setValue diff --git a/Script details/highlight-keywords-mini/preview/1.png b/highlight-keywords-mini/preview/1.png similarity index 100% rename from Script details/highlight-keywords-mini/preview/1.png rename to highlight-keywords-mini/preview/1.png diff --git a/highlight-keywords/README.md b/highlight-keywords/README.md new file mode 100644 index 000000000..a64d970d5 --- /dev/null +++ b/highlight-keywords/README.md @@ -0,0 +1,239 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          网页高亮关键字

          +

          「 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + + +# 原作者发布页[ mabangde](https://greasyfork.org/zh-CN/scripts/465200) + + + +## 脚本功能 + +对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用。 + + +## UI 说明 + +1. **第一栏:网页限制** + - 可以指定在哪些网页上起作用,比如 `bilibili`, `baidu`, `bilibili.com` + - 输入网址的一部分或者全部。每一个网址用空格隔开 + - 如果什么都不输入,那么就会作用到所有网站上 +2. **第二栏:分类信息** + - 鼠标移动到对应的关键字上会显示你输入的内容 +3. **第三栏:关键字栏** + - 输入你想要高亮的词,空格隔开 + + +## 图片 + +![hl.png](https://s2.loli.net/2024/08/05/oBWsunTIhLKkcrM.png) + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + +## 初次安装 + +第一次安装会默认添加一些规则测试,可以删除。 + + + +## 更新日志 + + + +### 2024 年 6 月 26 日 + +- 保证在移动设备上能够适应屏幕 +- 增加了对设置文字颜色的支持(第二个颜色选择器) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/highlight-keywords.user.js b/highlight-keywords/highlight-keywords.user.js similarity index 76% rename from highlight-keywords.user.js rename to highlight-keywords/highlight-keywords.user.js index 1f8c8e982..1597ea52d 100644 --- a/highlight-keywords.user.js +++ b/highlight-keywords/highlight-keywords.user.js @@ -1,20 +1,22 @@ // ==UserScript== -// @name 网页高亮关键字 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.1.2.72 -// @description 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 -// @author You -// @include * -// @grant GM_addStyle -// @grant GM_registerMenuCommand -// @grant GM_setValue -// @grant GM_getValue -// @require https://cdn.jsdelivr.net/npm/vue@2.6.1/dist/vue.min.js -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-mark-96.png -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT +// @name 网页高亮关键字 +// @name:zh-CN 网页高亮关键字 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @version 1.1.2.72 +// @description 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +// @description:zh-CN 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +// @author ma bangde,人民的勤务员 +// @include * +// @grant GM_addStyle +// @grant GM_registerMenuCommand +// @grant GM_setValue +// @grant GM_getValue +// @require https://cdn.jsdelivr.net/npm/vue@2.6.1/dist/vue.min.js +// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGlklEQVR4nO2de2wURRzHR5CHiEHUAMGofxhfhPhIvZ3fXAunfey2pd2F6BlF2vqItLxMVCKmYEApieGhoKhB411CjNEjBjUVtUYOKK+2s21tSqE3ezQQMRhfiIqCbddse62X0sfd9fa2OPNJfn/dH5f9fnZ29+Y3O4eQQCAQCAQCgUAgEAgEAkEXpolGUYNU6IycoQxqaRu5vfsTge00N88YSxl8oBvE7CnK4Idag8y0/9s5p7HxzispI7uiwxcSUsTBk3ANNeBAf+ELCTajH3VP1xlpGix8IcEm9FZ8h26Qk7GELyQkmfowcekG+TGe8IWEJKEbJEs34Gwi4QsJw4SGYb5ukAvDCV9ISBCdwTLKSEcywhcS4sA00WU6I2uSGbyQECMB0ztaN2CbXeGLkTAIwTbPeN2AnXaH31uMnBZzRxFoOG0SNcielIUfKcqgDvFOTZtrGmXQmOrwIwJ+RTxDQ+6bdQPCToQfEbAW8UqtQWZSA045Fb7OoNK66SMeqQ+Bx2qiOHjm11lT2ohH6plb0xk551z4pO1QGE9FPEINKNEN+Me5yw45w23HTDfICspIp2Phd88pZSEupxYM2OBg8NZlp7OeQTHijWDQczll4HMy/C4BBnkR8UbjII3z1J794EO80XQiY/JQjfMUVdBavoJ4Qo+jcW7zZedIQ5vnasRd45zBCafD1xl8rx8nNyGeqB9G4zy54ZM/aSvGiCf0JDTOk3Tmt1u/tBFP0CQ2zpMgYCniCZ3B0mQ3zhMv2IB4wbS5cR5vUYN8xs3UciBFjfOYw7feCziVNgHxQCiUO44asGMEnfnHuZlaXhHInkRDsNvp0HuLkZ9rj7tvQzywcFvahDIf3lsegOq6kPM3XWqQ89QgmYiX8Et9sLvMD6ZV5TskRyV09RQYKUI8sGxL7rhSH+zqCb+nVgVgX51DzRXKoBzxgDcwY2ypDyr7hu+kBMrgPcQDC7eljSn1wacDhd9TL+9M5Wo22M3F1LI34B1d5ocPhwq/rFcCtl0CNaCZj6nl1atHxRN+WaTWfYK/sTH8UzScfiPiAUkp1OYuz9pX5oPOeCWstWUkwNmGVvfdiBckRavCimY+UH7/nngFlPnBXF9JgkkLn0G7zrCKeAFnz7kFK1qnJaBbQmZCEjZ+nhwJlJEliCckWdvSE36vhJWJjYRNw5RAGbyCeMLj8U7EinqmrwCsaOaDq+4LJiLh1cqE7wkBaxcUxBM4V1vcX/g4Ug+9NDt+CT7ofP1L2BvfdZ/UcDO1HI0kq02DCcCKZj5ckZiEN6twjBIg3GiQKYg3pJzCzKHCx8OU8FbVkCPhp8aw61bEI5KsfRyrAKxo5iPrEpPwdhXsG+Bx8686A9IRj7iz1elYUS/EIwArmjm/YnbcT0elfuh4J0j293nU7KRheBTxiqRoFfGGj63K1ToXrM/YG/9IwO2+II6SAM8jXpnh9Y6VFO10QgKUbglF62cnJMEf7Fq4+y7iGUnRihIOX4mSsHHW/nglLPLjj6x3BxCv3CtrN0iy2jZsAYpVakfRpoyYb8xWh83qtCFeceXnT5MU7Whywte6CuTCjpLXMqpjuPx8wXX4OLNwqqSoLckMH0dKUtT24s3pA16OSn3wVYnfMx7xCsmZNwXL2hE7wsdREko2px/oR0CVCF/Wmu0MH0dJeDxKQqkff/1MAK5AvJIxZ87kVIWPe+4JeYUXHnvDfbjMD9WLt3omIp7xer2jJUV7P5UCJFn7DhcUvLBgO6f7MfTlcItbXrJSabc/fJVKslqclrZwjNPHPGKgYfcsapA/aIiYS1cqdpztf2NZ3S7J8+5y+lhHHNYsIzXg997JrxAxF5crybvMKNoaV9bca50+zhFJPSPu/l6cq211m08tzx3GU462X8pVvR4Px1MJQ0FD6aAb5LeBGiA1x4j5xLN5cZzt6jksa1uJXCD+oWIoakPkHsrgl6FagDWtbvPJ5/JiCl/KKeRjLf5wsVaRWW+OxNoEH2okSNYNNlfLd/q4/pfh99Tho26z+On8iwXI6nmXPLfA6eO6ZKCMfJvoQqhDLW6zaFmUBFk9DzlaodPHdElBw3iR9S9CiUo42EzqSJ5abfWIrUW6Th/PJfsOb30Ysq3VZfFsjkcNaLD+HMetqle5cjX+9lWzg4ZWuD6yUV7boOEzaKxpcYkfU3ZhrbP8b1T02VSDkSZ6LO06275ccPFG2ZFR0aobROdyKaBAIBAIBAKBQCAQCAQCNDD/AhKo6E8dHKXUAAAAAElFTkSuQmCC +// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-mark-96.png +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts +// @license MIT // ==/UserScript== (function () { @@ -23,50 +25,50 @@ // 初始化 function initialize() { let defaultWords = { - "key_123": { - limit: ["baidu"], - "info": "汉字测试", - "words": ["抖音", "快手", "网页", "平台", "的", "最", "一", "个", "多", "服务", "大"], - "color": "#85d228", - "textcolor": "#3467eb" + 'key_123': { + limit: ['baidu'], + 'info': '汉字测试', + 'words': ['抖音', '快手', '网页', '平台', '的', '最', '一', '个', '多', '服务', '大'], + 'color': '#85d228', + 'textcolor': '#3467eb' }, - "key_124": { + 'key_124': { limit: [], - "info": "数字测试", - "words": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], - "color": "#48c790", - "textcolor": "#3467eb" + 'info': '数字测试', + 'words': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], + 'color': '#48c790', + 'textcolor': '#3467eb' }, - "key_3379656389": { + 'key_3379656389': { limit: [], - "info": "字母测试", - "words": ["a", "b", "c", "d", "e", "f", "t", "y", "u", "i", "o", "k", "j", "h", "g", "s", "z", "x", "v", "n", "m"], - "color": "#e33544", - "textcolor": "#3467eb" + 'info': '字母测试', + 'words': ['a', 'b', 'c', 'd', 'e', 'f', 't', 'y', 'u', 'i', 'o', 'k', 'j', 'h', 'g', 's', 'z', 'x', 'v', 'n', 'm'], + 'color': '#e33544', + 'textcolor': '#3467eb' }, - "key_4947181948": { + 'key_4947181948': { limit: [], - "info": "相同的字可以显示各个分组的标题", - "words": ["的", "最", "一", "个", "多", "服务", "大"], - "color": "#6e7bdd", - "textcolor": "#e33544" + 'info': '相同的字可以显示各个分组的标题', + 'words': ['的', '最', '一', '个', '多', '服务', '大'], + 'color': '#6e7bdd', + 'textcolor': '#e33544' } } // 设置关键字默认值 - if (!GM_getValue("key")) { GM_setValue("key", defaultWords) } - if (Object.keys(GM_getValue("key")).length == 0) { GM_setValue("key", defaultWords) } + if (!GM_getValue('key')) { GM_setValue('key', defaultWords) } + if (Object.keys(GM_getValue('key')).length == 0) { GM_setValue('key', defaultWords) } // GM_setValue("key",this.defaultWords); - let cache = GM_getValue("key") + let cache = GM_getValue('key') Object.keys(cache).forEach(key => { let defult = { limit: [], - info: "", + info: '', words: [], - color: "#85d228" + color: '#85d228' } Object.keys(defult).forEach((key2) => { if (!cache[key][key2]) { @@ -76,7 +78,7 @@ }) }) - GM_setValue("key", cache) + GM_setValue('key', cache) } /** * @description: 遍历找出所有文本节点 @@ -88,18 +90,18 @@ let nodeMap = new Map() const walker = document.createTreeWalker(node, NodeFilter.SHOW_TEXT, (textNode) => { - if (textNode.parentElement.nodeName === "SCRIPT" | - textNode.parentElement.nodeName === "script" | - textNode.parentElement.nodeName === "style" | - textNode.parentElement.nodeName === "STYLE" | - textNode.parentElement.className === "mt_highlight" | - document.querySelector("#mt_seting_box").contains(textNode) + if (textNode.parentElement.nodeName === 'SCRIPT' | + textNode.parentElement.nodeName === 'script' | + textNode.parentElement.nodeName === 'style' | + textNode.parentElement.nodeName === 'STYLE' | + textNode.parentElement.className === 'mt_highlight' | + document.querySelector('#mt_seting_box').contains(textNode) ) { return NodeFilter.FILTER_SKIP } if (textNode.data.length < 20) { - return textNode.data.replace(/[\n \t]/g, "").length ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP + return textNode.data.replace(/[\n \t]/g, '').length ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP } return NodeFilter.FILTER_ACCEPT @@ -144,27 +146,27 @@ // 转换 let newWords = new Map - Object.keys(GM_getValue("key")).forEach(classesKey => { + Object.keys(GM_getValue('key')).forEach(classesKey => { - let info = GM_getValue("key")[classesKey].info - let words = GM_getValue("key")[classesKey].words - let color = GM_getValue("key")[classesKey].color - let limit = GM_getValue("key")[classesKey].limit - let textcolor = GM_getValue("key")[classesKey].textcolor + let info = GM_getValue('key')[classesKey].info + let words = GM_getValue('key')[classesKey].words + let color = GM_getValue('key')[classesKey].color + let limit = GM_getValue('key')[classesKey].limit + let textcolor = GM_getValue('key')[classesKey].textcolor words.forEach(word => { let infoList = [] // 检测是否被多个类目包含,被多个类目包含的关键字会有对应类目的信息 - if (newWords.get(word + "")) { - infoList = newWords.get(word + "").infoList + if (newWords.get(word + '')) { + infoList = newWords.get(word + '').infoList infoList.push(info) } else { infoList = [info] } - newWords.set(word + "", { + newWords.set(word + '', { classesKey, infoList: infoList, textcolor, @@ -185,7 +187,7 @@ words.forEach((value, word) => { // console.log(value.limit); // 过滤不匹配的 - if (value.limit.length == 0 || url.match(new RegExp(`${value.limit.join("|")}`, "g"))) { + if (value.limit.length == 0 || url.match(new RegExp(`${value.limit.join('|')}`, 'g'))) { // 添加要筛选的关键字 wordsList.push(word) } @@ -194,7 +196,7 @@ wordsList.length ? doIt = true : doIt = false // console.log(doIt,wordsList); return { - rule: new RegExp(`(${wordsList.join("|")})`, "g"), + rule: new RegExp(`(${wordsList.join('|')})`, 'g'), doIt } } @@ -235,16 +237,16 @@ // 返回新节点模板 // return `${word}` - return `${word}` + return `${word}` }) // 是否检测出了 if (value != newInnerHTML) { // 节点替换 - let newNode = document.createElement("span") + let newNode = document.createElement('span') newNode.innerHTML = newInnerHTML node.parentElement.replaceChild(newNode, node) // 点击复制 - newNode.addEventListener("click", (e) => { + newNode.addEventListener('click', (e) => { navigator.clipboard.writeText(e.target.innerText) }) } @@ -611,22 +613,22 @@ // 开发用 static devCss() { GM_xmlhttpRequest({ - method: "get", - url: "http://127.0.0.1:1145", - responseType: "blob", + method: 'get', + url: 'http://127.0.0.1:1145', + responseType: 'blob', onload: (res) => { // console.log(res.responseText); GM_addStyle(res.responseText) }, onerror: (error => { - console.log("该页无法链接") + console.log('该页无法链接') }) }) } static create() { // 获取根节点 - let seting_box = document.querySelector("#mt_seting_box") + let seting_box = document.querySelector('#mt_seting_box') seting_box.innerHTML = this.setingTemplate @@ -636,11 +638,11 @@ // 创建响应式ui const mt_Vue = new Vue({ - el: "#mt_seting_box", + el: '#mt_seting_box', data() { return { - rule: GM_getValue("key"), - edit: this.addEdit(GM_getValue("key")), + rule: GM_getValue('key'), + edit: this.addEdit(GM_getValue('key')), showSeting: false, config_add: false } @@ -689,20 +691,20 @@ node.style.color = textcolor }) // 保存到油猴中 - GM_setValue("key", this.rule) + GM_setValue('key', this.rule) }, // 更新规则 ruleUpdate(key) { let newInfo = document.querySelector(`textarea[info_key=${key}]`).value - let newWords = (document.querySelector(`textarea[words_key=${key}]`).value.split(" ")) - let newLimit = (document.querySelector(`textarea[limit_key=${key}]`).value.split(" ")) + let newWords = (document.querySelector(`textarea[words_key=${key}]`).value.split(' ')) + let newLimit = (document.querySelector(`textarea[limit_key=${key}]`).value.split(' ')) // 去除空格 newWords = Array.from(new Set(newWords)) - .filter(word => { return word != " " & word.length > 0 }) + .filter(word => { return word != ' ' & word.length > 0 }) newLimit = Array.from(new Set(newLimit)) - .filter(word => { return word != " " & word.length > 0 }) + .filter(word => { return word != ' ' & word.length > 0 }) // console.log(newInfo,newWords); this.rule[key].info = newInfo this.rule[key].words = newWords @@ -711,40 +713,40 @@ this.editOff(key) // 保存到油猴中 - GM_setValue("key", this.rule) + GM_setValue('key', this.rule) }, // 添加新规则 add_key() { - let key = "key_" + Math.floor(Math.random() * 10000000000) + let key = 'key_' + Math.floor(Math.random() * 10000000000) this.$set(this.rule, key, { - info: "", + info: '', words: [], - color: "#dc6c75", - textcolor: "#3467eb", + color: '#dc6c75', + textcolor: '#3467eb', limit: [] }) this.$set(this.edit, key, false) // 保存到油猴中 - GM_setValue("key", this.rule) + GM_setValue('key', this.rule) console.log(2233) }, // 删除规则 del_key(key) { - let ready = confirm("确认删除,该操作不可恢复") + let ready = confirm('确认删除,该操作不可恢复') if (ready && Object.keys(this.rule).length > 1) { this.$delete(this.rule, key) this.$delete(this.edit, key) } else if (ready && Object.keys(this.rule).length < 2) { - alert("至少保留一个") + alert('至少保留一个') } // 保存到油猴中 - GM_setValue("key", this.rule) + GM_setValue('key', this.rule) }, // 复制到粘贴板 @@ -754,12 +756,12 @@ // 获取配置覆盖 config_in() { - document.querySelector(".config_file").click() + document.querySelector('.config_file').click() this.config_add = false }, // 获取配置添加 config_in_add() { - document.querySelector(".config_file").click() + document.querySelector('.config_file').click() this.config_add = true }, @@ -811,18 +813,18 @@ // 合并还是覆盖 if (this.config_add) { let cache = {} - Object.keys(GM_getValue("key")).forEach(key => { - cache["key_" + Math.floor(Math.random() * 10000000000)] = GM_getValue("key")[key] + Object.keys(GM_getValue('key')).forEach(key => { + cache['key_' + Math.floor(Math.random() * 10000000000)] = GM_getValue('key')[key] }) cache = { ...cache, ...res } console.log(cache) - GM_setValue("key", cache) + GM_setValue('key', cache) } else { - GM_setValue("key", res) + GM_setValue('key', res) } initialize() - this.rule = GM_getValue("key") + this.rule = GM_getValue('key') this.edit = this.addEdit(res) }) }, @@ -831,36 +833,36 @@ config_out() { function exportJson(name, data) { let blob = new Blob([data]) // 创建 blob 对象 - let link = document.createElement("a") + let link = document.createElement('a') link.href = URL.createObjectURL(blob) // 创建一个 URL 对象并传给 a 的 href link.download = name // 设置下载的默认文件名 link.click() } - exportJson("mt_hight_light_config.json", JSON.stringify(this.rule)) + exportJson('mt_hight_light_config.json', JSON.stringify(this.rule)) }, // 刷新 refresh() { location.reload() - }, + } }, mounted() { - GM_registerMenuCommand("打开设置", this.open_seting) + GM_registerMenuCommand('打开设置', this.open_seting) // 点击其他区域关闭设置 - document.body.addEventListener("click", (e) => { + document.body.addEventListener('click', (e) => { // 检查是否是移动设备 if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { - if (!document.querySelector("#mt_seting_box").contains(e.target)) { + if (!document.querySelector('#mt_seting_box').contains(e.target)) { this.close_seting() } } }) - }, + } }) } @@ -869,15 +871,15 @@ /////////////////////////////////////////////////////////// // vue根节点 - let seting_box = document.createElement("div") // 创建一个节点 - seting_box.setAttribute("id", "mt_seting_box") // 设置一个属性 + let seting_box = document.createElement('div') // 创建一个节点 + seting_box.setAttribute('id', 'mt_seting_box') // 设置一个属性 document.body.appendChild(seting_box) GM_addStyle(HIGHTLIGHT.highlightStyle) // 初始化数据 initialize() - console.log(GM_getValue("key")) + console.log(GM_getValue('key')) // 静态页面的检测 let nodeMap = textMap(document.body) diff --git a/Script details/highlight-keywords/preview/hl.png b/highlight-keywords/preview/hl.png similarity index 100% rename from Script details/highlight-keywords/preview/hl.png rename to highlight-keywords/preview/hl.png diff --git a/jable-auto-login-helper.user.js b/jable-auto-login-helper.user.js deleted file mode 100644 index acf8a3516..000000000 --- a/jable-auto-login-helper.user.js +++ /dev/null @@ -1,315 +0,0 @@ -// ==UserScript== -// @name JableTV Automatic login -// @name:zh-CN JableTV 自动登录 -// @description:zh-CN 检测 JableTV 状态,并且在未登录时自动登录 -// @name:ar JableTV تسجيل الدخول التلقائي -// @description:ar كشف JableTV ولاية,وتسجيل الدخول تلقائيًا في حالة عدم تسجيل الدخول -// @name:bg JableTV Автоматично влизане -// @description:bg Откриване JableTV състояние,и автоматично влизане, когато не сте влезли -// @name:cs JableTV Automatické přihlášení -// @description:cs Detekce JableTV stát,a automaticky se přihlásit, když nejste přihlášeni -// @name:da JableTV Automatisk login -// @description:da Opdagelse JableTV tilstand,og logger automatisk på, når du ikke er logget ind -// @name:de JableTV Automatische Anmeldung -// @description:de Erkennung JableTV Zustand,und melden Sie sich automatisch an, wenn Sie nicht angemeldet sind -// @name:el JableTV Αυτόματη σύνδεση -// @description:el Ανίχνευση JableTV κατάσταση,και αυτόματα συνδέεστε όταν δεν είστε συνδεδεμένοι -// @name:en JableTV Automatic login -// @description:en Detection JableTV state,and automatically log in when not logged in -// @name:eo JableTV Aŭtomata ensaluto -// @description:eo Detekto JableTV stato,kaj aŭtomate ensalutu kiam ne ensalutinta -// @name:es JableTV Inicio de sesión automático -// @description:es Detección JableTV estado,e iniciar sesión automáticamente cuando no haya iniciado sesión -// @name:fi JableTV Automaattinen sisäänkirjautuminen -// @description:fi Havaitseminen JableTV osavaltio,ja kirjaudu sisään automaattisesti, kun et ole kirjautunut sisään -// @name:fr JableTV Connexion automatique -// @description:fr Détection JableTV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté -// @name:he JableTV כניסה אוטומטית -// @description:he איתור JableTV מְדִינָה,והתחבר אוטומטית כאשר לא מחובר -// @name:hr JableTV Automatska prijava -// @description:hr Otkrivanje JableTV stanje,i automatski se prijavite kada niste prijavljeni -// @name:hu JableTV Automatikus bejelentkezés -// @description:hu Érzékelés JableTV állami,és automatikusan bejelentkezik, ha nincs bejelentkezve -// @name:id JableTV Masuk otomatis -// @description:id Deteksi JableTV negara,dan secara otomatis login ketika tidak login -// @name:it JableTV Accesso automatico -// @description:it Rilevamento JableTV stato,e accedi automaticamente quando non sei loggato -// @name:ja JableTV 自動ログイン -// @description:ja 検出 JableTV 州,ログインしていない場合は自動的にログインします -// @name:ka JableTV ავტომატური შესვლა -// @description:ka გამოვლენა JableTV სახელმწიფო,და ავტომატურად შედით სისტემაში, როდესაც არ ხართ შესული -// @name:ko JableTV 자동 로그인 -// @description:ko 발각 JableTV 상태,로그인하지 않으면 자동으로 로그인됩니다. -// @name:nl JableTV Automatisch inloggen -// @description:nl Detectie JableTV staat,en automatisch inloggen als je niet ingelogd bent -// @name:nb JableTV Automatisk pålogging -// @description:nb Oppdagelse JableTV tilstand,og logger automatisk på når du ikke er pålogget -// @name:pl JableTV Automatyczne logowanie -// @description:pl Wykrywanie JableTV państwo,i automatycznie loguj się, gdy nie jesteś zalogowany -// @name:pt-BR JableTV Login automático -// @description:pt-BR Detecção JableTV estado,e faça login automaticamente quando não estiver conectado -// @name:ro JableTV Conectare automată -// @description:ro Detectare JableTV stat,și conectați-vă automat când nu sunteți autentificat -// @name:ru JableTV Автоматический вход -// @description:ru Обнаружение JableTV состояние,и автоматически входить в систему, когда вы не вошли в систему -// @name:sk JableTV Automatické prihlásenie -// @description:sk Detekcia JableTV štátu,a automaticky sa prihlásiť, keď nie ste prihlásení -// @name:sr JableTV Аутоматско пријављивање -// @description:sr Детецтион JableTV држава,и аутоматски се пријављује када нисте пријављени -// @name:sv JableTV Automatisk inloggning -// @description:sv Upptäckt JableTV ange,och logga in automatiskt när du inte är inloggad -// @name:th JableTV เข้าสู่ระบบอัตโนมัติ -// @description:th การตรวจจับ JableTV สถานะ,และเข้าสู่ระบบอัตโนมัติเมื่อไม่ได้เข้าสู่ระบบ -// @name:tr JableTV Otomatik giriş -// @description:tr Algılama JableTV durum,ve oturum açmadığınızda otomatik olarak oturum açın -// @name:ug JableTV ئاپتوماتىك كىرىش -// @description:ug بايقاش JableTV ئىشتات,ھەمدە كىرمىگەندە ئاپتوماتىك كىرىدۇ -// @name:uk JableTV Автоматичний вхід -// @description:uk виявлення JableTV стан,і автоматично ввійти, якщо ви не ввійшли -// @name:vi JableTV Đăng nhập tự động -// @description:vi Phát hiện JableTV tình trạng,và tự động đăng nhập khi chưa đăng nhập -// @name:zh-TW JableTV 自動登入 -// @description:zh-TW 偵測 JableTV 狀態,並且在未登入時自動登入 -// @name:zh-HK JableTV 自動登入 -// @description:zh-HK 偵測 JableTV 狀態,並且在未登入時自動登入 -// @name:fr-CA JableTV Connexion automatique -// @description:fr-CA Détection JableTV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté -// @description Detection JableTV state,and automatically log in when not logged in -// @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 -// @match https://jable.tv/* -// @grant GM_registerMenuCommand -// @grant GM_setValue -// @grant GM_getValue -// @version 1.0.0.10 -// @icon data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 -// @iconbak https://pic.616pic.com/ys_bnew_img/00/35/79/Gv93yQh7v6.jpg -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// ==/UserScript== -const translate = (function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const strings = { - 'en': { - Accountnull: 'Error: UserEmail or UserPassword is empty.', - loginSuccess: 'Login successful, refreshing the page.', - Networkfailed: 'Status code error.', - Loginfailed: 'Login failed, incorrect email or password. Check console for error details.', - }, - 'zh-CN': { - Accountnull: '邮箱或密码为空', - loginSuccess: '登录成功,即将刷新页面。', - Networkfailed: '状态码错误', - Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。', - }, - 'zh-TW': { - Accountnull: '郵箱或密碼為空', - loginSuccess: '登錄成功,即將刷新頁面。', - Networkfailed: '狀態碼錯誤', - Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。', - }, - 'ja': { - Accountnull: 'エラー:メールアドレスまたはパスワードが空です。', - loginSuccess: 'ログイン成功、ページを更新します。', - Networkfailed: 'ステータスコードエラー', - Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。', - }, - 'vi': { - Accountnull: 'Lỗi: Email hoặc mật khẩu trống.', - loginSuccess: 'Đăng nhập thành công, đang làm mới trang.', - Networkfailed: 'Lỗi mã trạng thái.', - Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.', - } - } - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } -}()); -(function () { - 'use strict' - var messages = [] - let UserEmail = GM_getValue("UserEmail", "") - let UserPassword = GM_getValue("UserPassword", "") - var style = document.createElement('style') - GM_registerMenuCommand("Set Account", showuserInfoModal) - function showuserInfoModal() { - let modalHtml = ` -
          -

          Set Account

          -
          - - -
          -
          - - -
          -
          - - -
          -
          ` - let modalDiv = document.createElement('div') - modalDiv.innerHTML = modalHtml - document.body.appendChild(modalDiv) - document.getElementById("saveUserInfo").addEventListener("click", function () { - UserEmail = document.getElementById("UserEmail").value - UserPassword = document.getElementById("UserPassword").value - GM_setValue("UserEmail", UserEmail) - GM_setValue("UserPassword", UserPassword) - closeUserModal() - }) - document.getElementById("closeUserModal").addEventListener("click", closeUserModal) - } - function closeUserModal() { - let modal = document.getElementById("userInfoModal") - if (modal) { - modal.remove() - } - } - function login(username, password) { - if (!username || !password) { - alert("xxx") - showMessage(translate('Accountnull'), 2000, '#000000', '#ffeb3b') - return - } - const formData = new URLSearchParams({ - username: username, - pass: password, - remember_me: 1, - action: 'login', - email_link: 'https://jable.tv/email/', - format: 'json', - mode: 'async', - }).toString() - fetch('https://jable.tv/email/', { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - }, - body: formData, - }) - .then(response => { - if (!response.ok) { - return response.text().then(text => { - console.error('Login error:', { - status: response.status, - statusText: response.statusText, - responseText: text, - }) - showMessage('Login failed: ' + text, 2000, '#000000', '#ffeb3b') - throw new Error(translate('Networkfailed')) - }) - } - if (response.headers.get('Content-Type')?.includes('application/json')) { - return response.json() - } else { - return response.text().then(text => { - console.error(translate('Loginfailed'), { - status: response.status, - statusText: response.statusText, - responseText: text, - }) - showMessage(translate('Loginfailed'), 2000, '#000000', '#ffeb3b') - throw new Error(translate('Loginfailed')) - }) - } - }) - .then(data => { - console.log('Success:', data) - showMessage(translate('loginSuccess'), 2000, '#67c23a', '#f0f9eb') - setTimeout(function () { - location.reload() - }, 1000) - }) - .catch(error => { - showMessage('An error occurred: ' + error.message, 2000, '#000000', '#ffeb3b') - }) - } - function checkUserId() { - - var scripts = document.getElementsByTagName('script') - var userIdPattern = /userId:\s*'(\d+)'/ - var userIdFound = false - - for (var i = 0; i < scripts.length; i++) { - var scriptContent = scripts[i].textContent - var match = scriptContent.match(userIdPattern) - - if (match) { - - var userId = match[1] - console.log("找到 userId:", userId) - - - if (userId) { - userIdFound = true - break - } - } - } - - if (userIdFound) { - //已经登录 - } else { - login(UserEmail, UserPassword) - } - } - - - checkUserId() - - - function createMessageStyles() { - const style = document.createElement('style') - style.type = 'text/css' - style.innerHTML = ` - .message { - position: fixed; - left: 50%; - transform: translateX(-50%); - padding: 10px 20px; - border-radius: 4px; - box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); - font-size: 14px; - z-index: 9999; - opacity: 0; - transition: opacity 0.5s ease, top 0.5s ease; - } - .message-show { - opacity: 1; - } - ` - document.head.appendChild(style) - } - function showMessage(message, duration = 3000, textColor = '#67c23a', backgroundColor = '#f0f9eb') { - const messageDiv = document.createElement('div') - messageDiv.className = 'message' - messageDiv.innerText = message - messageDiv.style.color = textColor - messageDiv.style.backgroundColor = backgroundColor - document.body.appendChild(messageDiv) - const offset = messages.length * 50 + 20 - messageDiv.style.top = `${offset}px` - getComputedStyle(messageDiv).opacity - messageDiv.classList.add('message-show') - messages.push(messageDiv) - setTimeout(() => { - messageDiv.classList.remove('message-show') - setTimeout(() => { - document.body.removeChild(messageDiv) - messages.splice(messages.indexOf(messageDiv), 1) - updateMessagePositions() - }, 500) - }, duration) - } - function updateMessagePositions() { - messages.forEach((msg, index) => { - const offset = index * 50 + 20 - msg.style.top = `${offset}px` - }) - } - createMessageStyles() -})() diff --git a/Script details/jable-auto-login-helper/Change history/README.md b/jable-auto-login-helper/Change history/README.md similarity index 64% rename from Script details/jable-auto-login-helper/Change history/README.md rename to jable-auto-login-helper/Change history/README.md index bfb3eed21..614fdf795 100644 --- a/Script details/jable-auto-login-helper/Change history/README.md +++ b/jable-auto-login-helper/Change history/README.md @@ -1,6 +1,7 @@ -# **🛠️ JableTV自动登录 更新日志** +# **🛠️ JableTV自动登录 更新日志** ### **📅 2024/9/4 13:41 - Ver 1.0.0.0** + **初始版本**: • 欢迎使用。 --- diff --git a/jable-auto-login-helper/README.md b/jable-auto-login-helper/README.md new file mode 100644 index 000000000..67f25c873 --- /dev/null +++ b/jable-auto-login-helper/README.md @@ -0,0 +1,225 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          JableTV 自动登录

          +

          「 检测 JableTV 状态,并且在未登录时自动登录 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          🛠️ JableTV自动登录 更新日志

          +

          📅 2024/9/4 13:41 - Ver 1.0.0.0

          +

          初始版本: • 欢迎使用。

          +
          + +
          + + + + + +# JableTV AutoLogin Helper + +这是一个用于JableTV 管理用户账户的脚本,主要功能自动登录以及检测用户是否已登录。 + + + +## 功能 + +- **设置账户**: 通过弹出模态框允许用户设置电子邮件和密码。 +- **登录功能**: 使用用户提供的电子邮件和密码进行登录,并处理登录错误。 +- **用户检测**: 检测用户是否已登录,如果未登录则尝试自动登录。 + + + +## 安装和使用 + +1. **安装脚本**: + + - 将脚本复制到 Greasemonkey 或 Tampermonkey 插件中。 + - 确保脚本在你希望运行的网页上启用。 + +2. **设置账户**: + + - 点击浏览器工具栏中的 Greasemonkey/Tampermonkey 图标。 + - 选择“Set Account”选项,输入你的电子邮件和密码,然后点击“Save”。 + +3. **自动登录**: + - 脚本会自动检测用户是否已登录。如果检测到未登录状态,它将使用提供的账户信息尝试登录。 + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/jable-auto-login-helper/README_en.md b/jable-auto-login-helper/README_en.md new file mode 100644 index 000000000..19153a458 --- /dev/null +++ b/jable-auto-login-helper/README_en.md @@ -0,0 +1,225 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          JableTV Automatic login

          +

          「 Detection JableTV state,and automatically log in when not logged in 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          Update record

          🛠️ JableTVAutomatic login Change log

          +

          📅 2024/9/4 13:41 - Ver 1.0.0.0

          +

          initial version: • Welcome。

          +
          + +
          + + + + + +# JableTV AutoLogin Helper + +This script is used for managing user accounts on JableTV . It provides functionalities for automatic login and checking if the user is already logged in. + + + +## Features + +- **Account Setup**: Allows users to set their email and password via a popup modal. +- **Login Functionality**: Logs in using the provided email and password, and handles login errors. +- **User Detection**: Checks if the user is logged in. If not, it attempts to log in automatically. + + + +## Installation and Usage + +1. **Install the Script**: + + - Copy the script into the Greasemonkey or Tampermonkey extension. + - Ensure the script is enabled on the webpage where you want it to run. + +2. **Set Up Account**: + + - Click on the Greasemonkey/Tampermonkey icon in your browser toolbar. + - Select the “Set Account” option, enter your email and password, and then click “Save”. + +3. **Automatic Login**: + - The script will automatically check if the user is logged in. If it detects that the user is not logged in, it will attempt to log in using the provided account information. + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/Script details/jable-auto-login-helper/jable-auto-login-helper.user.js b/jable-auto-login-helper/jable-auto-login-helper.user.js similarity index 99% rename from Script details/jable-auto-login-helper/jable-auto-login-helper.user.js rename to jable-auto-login-helper/jable-auto-login-helper.user.js index acf8a3516..5e6153460 100644 --- a/Script details/jable-auto-login-helper/jable-auto-login-helper.user.js +++ b/jable-auto-login-helper/jable-auto-login-helper.user.js @@ -76,7 +76,7 @@ // @description:fr-CA Détection JableTV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté // @description Detection JableTV state,and automatically log in when not logged in // @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://jable.tv/* // @grant GM_registerMenuCommand // @grant GM_setValue @@ -95,31 +95,31 @@ const translate = (function () { Accountnull: 'Error: UserEmail or UserPassword is empty.', loginSuccess: 'Login successful, refreshing the page.', Networkfailed: 'Status code error.', - Loginfailed: 'Login failed, incorrect email or password. Check console for error details.', + Loginfailed: 'Login failed, incorrect email or password. Check console for error details.' }, 'zh-CN': { Accountnull: '邮箱或密码为空', loginSuccess: '登录成功,即将刷新页面。', Networkfailed: '状态码错误', - Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。', + Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。' }, 'zh-TW': { Accountnull: '郵箱或密碼為空', loginSuccess: '登錄成功,即將刷新頁面。', Networkfailed: '狀態碼錯誤', - Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。', + Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。' }, 'ja': { Accountnull: 'エラー:メールアドレスまたはパスワードが空です。', loginSuccess: 'ログイン成功、ページを更新します。', Networkfailed: 'ステータスコードエラー', - Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。', + Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。' }, 'vi': { Accountnull: 'Lỗi: Email hoặc mật khẩu trống.', loginSuccess: 'Đăng nhập thành công, đang làm mới trang.', Networkfailed: 'Lỗi mã trạng thái.', - Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.', + Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.' } } return (id, lang = '') => { @@ -130,10 +130,10 @@ const translate = (function () { (function () { 'use strict' var messages = [] - let UserEmail = GM_getValue("UserEmail", "") - let UserPassword = GM_getValue("UserPassword", "") + let UserEmail = GM_getValue('UserEmail', '') + let UserPassword = GM_getValue('UserPassword', '') var style = document.createElement('style') - GM_registerMenuCommand("Set Account", showuserInfoModal) + GM_registerMenuCommand('Set Account', showuserInfoModal) function showuserInfoModal() { let modalHtml = `
          @@ -154,24 +154,24 @@ const translate = (function () { let modalDiv = document.createElement('div') modalDiv.innerHTML = modalHtml document.body.appendChild(modalDiv) - document.getElementById("saveUserInfo").addEventListener("click", function () { - UserEmail = document.getElementById("UserEmail").value - UserPassword = document.getElementById("UserPassword").value - GM_setValue("UserEmail", UserEmail) - GM_setValue("UserPassword", UserPassword) + document.getElementById('saveUserInfo').addEventListener('click', function () { + UserEmail = document.getElementById('UserEmail').value + UserPassword = document.getElementById('UserPassword').value + GM_setValue('UserEmail', UserEmail) + GM_setValue('UserPassword', UserPassword) closeUserModal() }) - document.getElementById("closeUserModal").addEventListener("click", closeUserModal) + document.getElementById('closeUserModal').addEventListener('click', closeUserModal) } function closeUserModal() { - let modal = document.getElementById("userInfoModal") + let modal = document.getElementById('userInfoModal') if (modal) { modal.remove() } } function login(username, password) { if (!username || !password) { - alert("xxx") + alert('xxx') showMessage(translate('Accountnull'), 2000, '#000000', '#ffeb3b') return } @@ -182,14 +182,14 @@ const translate = (function () { action: 'login', email_link: 'https://jable.tv/email/', format: 'json', - mode: 'async', + mode: 'async' }).toString() fetch('https://jable.tv/email/', { method: 'POST', headers: { - 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Type': 'application/x-www-form-urlencoded' }, - body: formData, + body: formData }) .then(response => { if (!response.ok) { @@ -197,7 +197,7 @@ const translate = (function () { console.error('Login error:', { status: response.status, statusText: response.statusText, - responseText: text, + responseText: text }) showMessage('Login failed: ' + text, 2000, '#000000', '#ffeb3b') throw new Error(translate('Networkfailed')) @@ -210,7 +210,7 @@ const translate = (function () { console.error(translate('Loginfailed'), { status: response.status, statusText: response.statusText, - responseText: text, + responseText: text }) showMessage(translate('Loginfailed'), 2000, '#000000', '#ffeb3b') throw new Error(translate('Loginfailed')) @@ -241,7 +241,7 @@ const translate = (function () { if (match) { var userId = match[1] - console.log("找到 userId:", userId) + console.log('找到 userId:', userId) if (userId) { diff --git a/missav-auto-login-helper/README.md b/missav-auto-login-helper/README.md new file mode 100644 index 000000000..e195f115d --- /dev/null +++ b/missav-auto-login-helper/README.md @@ -0,0 +1,222 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          MissAV 自动登录

          +

          「 检测 MissAV 状态,并且在未登录时自动登录 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + + +# MissAV AutoLogin Helper + +这是一个用于MissAV管理用户账户的脚本,主要功能自动登录以及检测用户是否已登录。 + + + +## 功能 + +- **设置账户**: 通过弹出模态框允许用户设置电子邮件和密码。 +- **登录功能**: 使用用户提供的电子邮件和密码进行登录,并处理登录错误。 +- **用户检测**: 检测用户是否已登录,如果未登录则尝试自动登录。 + + + +## 安装和使用 + +1. **安装脚本**: + + - 将脚本复制到 Greasemonkey 或 Tampermonkey 插件中。 + - 确保脚本在你希望运行的网页上启用。 + +2. **设置账户**: + + - 点击浏览器工具栏中的 Greasemonkey/Tampermonkey 图标。 + - 选择“Set Account”选项,输入你的电子邮件和密码,然后点击“Save”。 + +3. **自动登录**: + - 脚本会自动检测用户是否已登录。如果检测到未登录状态,它将使用提供的账户信息尝试登录。 + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/missav-auto-login-helper/README_en.md b/missav-auto-login-helper/README_en.md new file mode 100644 index 000000000..8d32c08a7 --- /dev/null +++ b/missav-auto-login-helper/README_en.md @@ -0,0 +1,222 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          MissAV Automatic login

          +

          「 Detection MissAV state,and automatically log in when not logged in 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + + +# MissAV AutoLogin Helper + +This script is used for managing user accounts on MissAV. It provides functionalities for automatic login and checking if the user is already logged in. + + + +## Features + +- **Account Setup**: Allows users to set their email and password via a popup modal. +- **Login Functionality**: Logs in using the provided email and password, and handles login errors. +- **User Detection**: Checks if the user is logged in. If not, it attempts to log in automatically. + + + +## Installation and Usage + +1. **Install the Script**: + + - Copy the script into the Greasemonkey or Tampermonkey extension. + - Ensure the script is enabled on the webpage where you want it to run. + +2. **Set Up Account**: + + - Click on the Greasemonkey/Tampermonkey icon in your browser toolbar. + - Select the “Set Account” option, enter your email and password, and then click “Save”. + +3. **Automatic Login**: + - The script will automatically check if the user is logged in. If it detects that the user is not logged in, it will attempt to log in using the provided account information. + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/missav-auto-login-helper.user.js b/missav-auto-login-helper/missav-auto-login-helper.user.js similarity index 99% rename from missav-auto-login-helper.user.js rename to missav-auto-login-helper/missav-auto-login-helper.user.js index 4c3a5a4fd..b6345f948 100644 --- a/missav-auto-login-helper.user.js +++ b/missav-auto-login-helper/missav-auto-login-helper.user.js @@ -76,7 +76,7 @@ // @description:fr-CA Détection MissAV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté // @description Detection MissAV state,and automatically log in when not logged in // @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://missav.com/* // @grant GM_registerMenuCommand // @grant GM_setValue @@ -97,31 +97,31 @@ const translate = (function () { Accountnull: 'Error: UserEmail or UserPassword is empty.', loginSuccess: 'Login successful, refreshing the page.', Networkfailed: 'Status code error.', - Loginfailed: 'Login failed, incorrect email or password. Check console for error details.', + Loginfailed: 'Login failed, incorrect email or password. Check console for error details.' }, 'zh-CN': { Accountnull: '邮箱或密码为空', loginSuccess: '登录成功,即将刷新页面。', Networkfailed: '状态码错误', - Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。', + Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。' }, 'zh-TW': { Accountnull: '郵箱或密碼為空', loginSuccess: '登錄成功,即將刷新頁面。', Networkfailed: '狀態碼錯誤', - Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。', + Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。' }, 'ja': { Accountnull: 'エラー:メールアドレスまたはパスワードが空です。', loginSuccess: 'ログイン成功、ページを更新します。', Networkfailed: 'ステータスコードエラー', - Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。', + Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。' }, 'vi': { Accountnull: 'Lỗi: Email hoặc mật khẩu trống.', loginSuccess: 'Đăng nhập thành công, đang làm mới trang.', Networkfailed: 'Lỗi mã trạng thái.', - Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.', + Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.' } } @@ -132,10 +132,10 @@ const translate = (function () { }()); (function () { 'use strict' - let UserEmail = GM_getValue("UserEmail", "") - let UserPassword = GM_getValue("UserPassword", "") + let UserEmail = GM_getValue('UserEmail', '') + let UserPassword = GM_getValue('UserPassword', '') var style = document.createElement('style') - GM_registerMenuCommand("Set Account", showuserInfoModal) + GM_registerMenuCommand('Set Account', showuserInfoModal) function showuserInfoModal() { let modalHtml = `
          @@ -156,17 +156,17 @@ const translate = (function () { let modalDiv = document.createElement('div') modalDiv.innerHTML = modalHtml document.body.appendChild(modalDiv) - document.getElementById("saveUserInfo").addEventListener("click", function () { - UserEmail = document.getElementById("UserEmail").value - UserPassword = document.getElementById("UserPassword").value - GM_setValue("UserEmail", UserEmail) - GM_setValue("UserPassword", UserPassword) + document.getElementById('saveUserInfo').addEventListener('click', function () { + UserEmail = document.getElementById('UserEmail').value + UserPassword = document.getElementById('UserPassword').value + GM_setValue('UserEmail', UserEmail) + GM_setValue('UserPassword', UserPassword) closeUserModal() }) - document.getElementById("closeUserModal").addEventListener("click", closeUserModal) + document.getElementById('closeUserModal').addEventListener('click', closeUserModal) } function closeUserModal() { - let modal = document.getElementById("userInfoModal") + let modal = document.getElementById('userInfoModal') if (modal) { modal.remove() } @@ -179,13 +179,13 @@ const translate = (function () { fetch('https://missav.com/cn/api/login', { method: 'POST', headers: { - 'Content-Type': 'application/json', + 'Content-Type': 'application/json' }, body: JSON.stringify({ email: email, password: password, - remember: true, - }), + remember: true + }) }) .then(response => { if (!response.ok) { @@ -193,7 +193,7 @@ const translate = (function () { console.error('Login error:', { status: response.status, statusText: response.statusText, - responseText: text, + responseText: text }) Toast('Login failed: ' + text, 2000, '#FF0000', '#ffffff', 'top') throw new Error(translate('Networkfailed')) @@ -206,7 +206,7 @@ const translate = (function () { console.error(translate('Loginfailed'), { status: response.status, statusText: response.statusText, - responseText: text, + responseText: text }) Toast(translate('Loginfailed'), 2000, '#FF0000', '#ffffff', 'top') throw new Error(translate('Loginfailed')) diff --git a/missav-explorer.user.js b/missav-explorer.user.js deleted file mode 100644 index b519501dd..000000000 --- a/missav-explorer.user.js +++ /dev/null @@ -1,2328 +0,0 @@ -// ==UserScript== -// @name MissAv批量备份收藏视频 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.2.3.73 -// @description 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 -// @license MIT -// @author 人民的勤务员 & ChatGPT -// @match https://missav.com/* -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_xmlhttpRequest -// @grant GM_download -// @grant GM_openInTab -// @icon data:image/png;base64,/9j/4AAQSkZJRgABAQIAdgB2AAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAMgAyADAREAAhEBAxEB/8QAHQABAAEEAwEAAAAAAAAAAAAAAAgDBAcJAQIGBf/EAF4QAAEDAgMDBAkNDQYDCAICAwABAgMEBQYHERIhMQgTQVEXIlZhcYGx0dIJFDJCcnN1kZSVobKzFRYjNDU2NzhSVWJ0wRgZgpLh8CQz8SVDU5OiwsPTRGNUg0Zko//EAB0BAQABBQEBAQAAAAAAAAAAAAAGAwQFBwgCAQn/xABMEQEAAQIDAgcMBgkEAgICAwEAAQIDBAURBjESIUFRcZHRBxMUFTJSVGGBkqGxFiIzNHLBFyM1NkJTc7LCYoLh8EOi4vEkRCVjk9L/2gAMAwEAAhEDEQA/ANnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUpKmKJ2y56I79lN6/EB3jkbKxHtXVq9aaAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0kmZCmr3tYn8S6AcRTsm2thVXZ46oqeUCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKck8cOm29rFXgiqBzHNHNrsPa/TjovACk98r51jY5rERqO1VuqrxA5ie6OXm5Hbe1vY9UTf1oB1hejHSOX28uzr4tP6AdqftHzR9TtpPAu/wAuoFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHV8jYm7T3I1vW5dAOjKqGR2y2RrndSLvA4qJHs5tGbKbbtnVya6bgOjnSU7ke+TnI13O3Imz1L4AEi6Ve1prsRKvxr/oBztIlVG9PYys018G9PoVQLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpLK2FurtV1XRETeqr1IBT2qh+9GMjTqcuq/QB1dUOdSse1ESSTRqIvQq+bf8QHDWrFIscLWq/RFfI/ivnAK1Z3ORyJHUR70enV0eLvAOd23U02mm1qxydWv+qaAU2qskktM9dlWu2on/AE/R5AKUzJPWsSKmkvOufonWm0qeRALvaT1zFInsZWbOv0p9GoFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcOcjGq5yoiJvVVAoJNLLvjjRreh0i6a+IDmKZdJUk0R0a71bw0011/31AUm6okcrmI+ok9ijl3MTj4tAO7tXubFUMY5r/Yub1/08IHR6vWnmjVdqSJUc1eldN6eYBNOkdQxVTagmb23Unf+kCm+N8DKva3tbFoxelU7YDsn4Ojbrxp36a95F0+qoF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALfn3zKvMtRWpu5x67vF1gcRTPSdI3vjejmqqKxNNFTo4r1gXIFui7VVI5d/NtRGp4d6/wBAOsNNHPEySVqSveiOVXJqia9CdQHM8bYIY1Y1GsjejtE6E6fKoB70p53Pdujeidt0Iqdf++gAyRstQsjV1jaxUV3Qq6/00+kDojFfQOVE7ZVdI1P8SuT+gHVVZVz6xqqo5mu2ibmuRd2/xqBVa2aWSN0jGsRmvB2uq6aAcx0aM2NZHuaxe1buREAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZJ1R/Nxt238V36I3wqBTfNLCrVe+JU2kRWIi66KunHX+gF0BQqE25IY19irtVTr0Tz6AdUjbVSyrJ2zWO2UYvDgi6qnTxA7rSRtjkbGxse23RdlNAKW2roYJkRVVns2pxTdovxL5AOZJmVKxsicj1R6OVW+1RN+/yAd4u3qpnJwRGs8aaqvlQC12283HD7J8UmzsImva8N/iUCs6GZYnQIjVZwR7nb9nq06wO8lJzj5F5xzWP9kxum/doBXRNlEROCbgOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt21SyoixROe1eDndqn07/oAOmmiTakjbsJxVjlVU7+miAdHwsmqlbIm2xzEVqKuqbl37vGgHG277n6a6OT8Gq+PZVQO742yTMhVPwTWa7HQvR8QFVsEbHI5sbWuTgqNTcB2c9rE1c5Gp1qugFGRyQT86q/gnojXO6EXoXwb/IBwyOWFuzErHR+12lVFanV3wOkSr67VFk57Vqo9ETtWr0J5QKiQywppE9qs6GvTh4FALA+bdM9FZ+wxNEXw9YFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi+pRHuYxj5HN4o1NETxqBxt1HHmmadXOb/ACAU5ntnZC/tkZt7L266cd2i+PQDvTNSGWWJqI1u57UToRd3lRfjApMVfWkaoqtdM9Fc5OO9f9oBXSkhRunNM09ygFVV0TVeAFCddtrJY1R6xu10auuqcFT6QOG6vcs1O5rkf7JruCr195QKcyyNfGr5E5xHJpFH0prv1692oFd0DmvV8T0Yq+yaqatXv+EDhWTv3OkaxP4E3/GoFWONsTEa1NEQDsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvJVtYrtGOejV0c5NNGgXAFi9yTMSSRFe166Rxa6IvfX4tQO1EiJLJsNiaxUTtYna6L8Sf7QDhWKtNURN1VzHKqInSnskT6dAO0SpA2V6sWOFUTZY7iq9O7v7twHCMdDDSOd7Jmyx3jTTy6Adlj231MKroj0R6L1a7vKn0gEdz6t7ZIqmPii7/AA7ulFA6VCOcxWzztaipojI00V39V8QHZWSP5mV0aPcjNHMcumirpvAq00SxQo12nFV0Tgmq66AcesoP/DRE6k4fEBVYxsbUa1qNanQiaIB2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFKWdI3I1Gq9670a3jp1gdoZUmja9E016F6AKEz9t8iOcrIY01erdyqvHT4vKBRja1KiJWRRRKi702021TTpTTwdIFz7Cs70jPpRf9foAoU0LmSM0Y5qsVyPe5dzk36eHoUDs1nPwVKt4PcqsXwIm/40A7c4jpKaZOEibK+NNU8n0gcbLWI6nkXZaq6xu4dOvxooHZ/PMb+EnjYzpfs6L9K6AUo4nSUz2NRXMSTVvOe3Tj5dQK1PE5sskisSNHIibCLrw13r8f0Ad30sUjlcrE2l4qm5VA7Rwxw67DGt146JxA7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFXRNV3IBTbVQvkRjZGucu7dvAqgU5peZjV2m0vBE616ALZ+u0rXySvk01VsKaI3/ffUDu90j6BHKjmybKK5E499PKBxEqSI+BYuajVnaovFU4KBWpXrJTsV3stNHeFNy/SBaoxi0MCuYj1j0YjV4bWuzv8YHaTfFK9WtZNBvRW9Kaa/EvACqi7NWi9EjPpT/r9AHWmiRyuc9VfIx6pq5ddOrROjdoBWqI+egexNyqm5epegCmxkr5mSPRjNGq3RF1VddPMBVkhjmREexr0ThtJqBxHBHDrsRtZr+ymgFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoyVcMSqjpGoqcU11VAKwHCqiIqruRALR0rpGte972Mf7CONO2cnWoFSkV2kjXI9ER3aq/jpp59QKNPI6LYR0TtXO2ZJXdK7+H++kCvT9pJNH1O2k8C/wCuoHRI2yvqoncHqjt3UqIn9FApw7ErI2OhY2KRu0xG8U8Pf3gc7TuYie5dXRSbKu601Vuv9QO740lq3MkVXMVqOa3Xdx37unoAuUTRNE4AWnMTbHNIjGsa/aa9V36a6pu+gC7c1r2q1yI5F4oqagU2UsMbtpsTGqnSjUAqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHACglbAq6c4nDXaXcnx8AKkUzJkVWORyIumqAWL67t3NfNzbkcqc3EzV3HxgddHy720rnfx1T9yeICqsirS7Svje+FyOXmuCJ0p8WoF8BQqfZ06rwSTf8S6fToBbysjjmlV6SS69u5GrojU4a8d/D6AK8WsMyR7Sujc3abquumnFNfGgHM/aSwyfxbC+Bf9UQBB2k00ffR6eBf9UUDrJE6NX7LOdik3uZrvRe9qB0bC57FjSNYY3Lq9Xu1c7vcV8oFxNA2ZG7WqbK6orV0XqA5jiZCioxuiKuq99QO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRfVxRv2XPTa1RF0TXTXr6gOWVMUr9hkjXO010RdQKFXV8xLsOlbCzZRUcrdVXvJ/vpAoc4s3sYZ6jvyrsN+L/QCtT6qr4ZOYYjk0SKLj3wK9I9X07Nr2SJsu8Kbl8gCrRVpZkTirHafEBRqGNc6GTV6oqbLWMXRXa7+PgQA1WxNZLHtNYrth8bl1036eLRQK1UxX070b7JE2m+FN6AdNtFqIZE9jK1W/1T+oHeaN222WPTbRNFReDk6gKLWOR6ujpljeuvbSOTZTr0RFUCu2nalOsSqrkVFRV6V14qAjp2RO2kRVdpptOVVX6QKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0kmjhTt3tZ4VA6R1TJJEYiO1VFVFVqoi/H4QKM8z31DY27bI0dsvcmnFU3f9QKHOSsWOOSR71crmta1UbrsrxVV38AK6I1aVuxsose7tE5xW95O/wA4pXOjqXtej/wAIm0iyKmq6d5AOlU5zKx2zO2nRzE37O0rt68EApRww1LkRedqVVNpFlcqN+L/QDtC5ZI5GokdNE1mr0a3e1epdfMBfUu362j29ztlNQOZ4ueiVuui8UXqVOCgWsrmv/wCYskEmzsuRrdUcne3AVomrJKkmyrGNbssReK9a/QgFWWJJo1Y7VEXpTiBxFTsiVXJqrl3K5zlVV+MCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXPaxNXORqdaroBR9exbtlVciqibTWqqb1048AOK2d8bNmJqrI5FVFTTo48ekC3mfJTpI/nnrCiNfroiuXVdNEVdyAVadqLzsao1Hu7ZUe/bcvfVPiApbb45Y5XJI5je1VXojERF3bk4gVrgqsSFzXtjVH/8AMdwbuUC0VI5XaSTz1K6oio3tG7+HUB3YnMVCQxQxQvVdNdFVVbpvXXcBc0SORZkV22zbXR2mmq9P0/1AugLJWpCxIpNprWLrHK1NdOpP6AcsbzrWxs2lZtbb5HpptLrru8YF4BQjo441avbO2fY7TlVE8CcAK4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUamR0UW0zRF2kRVcmuiKumoFB6tSdsUkssj3e1YmyifF4F6QOebdHMrIGQRL+07e5fF/qB1ZMskUcquRzopVa5yJoioq6f1RQFavNzxvWTmmK1dpyN2tdFRUTygUrkjIpElWJZFTftPRVY1PB1gVpGPZo38JImmvaqkbE8fEDiNsbJIJWNYm0qscrF2k39/p4fSBUrNhrmP29mVuuwmmuviAptR0W1KrGsqJk2WsTo76+VQO0kTnf86BJ+jbj3L8S+cDmni/4jbRkjGtbpo9VXVV8fe+kC7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwuui6cejUCxdOqU7JppnNa9PYRN06NdOlQO0kTYthzI49t3t53b08qgNZJXT00j2uese0mymmi/70A5qHrLRRytXZcitdrprs79/lUCnUMjlomKqSVCJq1NhFTVe+ne0A4p9p1M17UVEcqpzdO1G/SvgAOYx8UjthnPR6PRNvbdu37+rgBd1CRS06847ZjXRdrXQC2aiyObNMjUji3teqaK7q3dAFTSaRm1JEyVqrqjF3Ob1eP4gKfMNc6NjIZYu2RV1cuiIm/r073jAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0mj52J7P2kVALOSRVZDOjo4nObsukk9r06J9IHd6tjcqtji0e3tpHP2Nr6AKNM+OZ1RTMbGxqt3bDtd/DXXxp8QFeWRZaFr1Tc7ZV/eTXtv6gdJZ1qI0WKTYTnVicqJru4eYClO5UpYfwbJZGqsfbprw16PEBUYrpYkjRzpV22u20j2GtRFRd3xAXU0CSqjkXYkb7F6dHnQBFAkaq5VV8i8Xu/wB7gKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZObsxTN0aqxSbbdvgiLv1+lfiAI5HRtk/A1ErVVOc1RqN8e8Cj64jjrY9GxI569s5km0u/dpw69PiAu6fVnPRpxY5VRO8u/+oFvDOroHQxu0mbFt6/xarr9IHCLpTz7apNq1Jk2tyLqnD6AFJK5muu/inMwxaInf1/3xAuo6dFpY4pE10aiL3l8IBlN2yLJIsqt9jruRO/4e+BXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJoFmhnhRqOc16Pa1enXf50A4a1YNFkSlpk6kTVf6AVOcYsrZUjlkc1NnaRqomi97dqBVpWuRj0cxWtV6q1Haa6Lv8ALqB19YMRdGuc2Pd2jeGqcO/1AVUgjbIr0jbtrxdpvAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3tRKpEX2MrFavhT/RVAtIKaSnjRHRU0SN3c4/eq9/8A2oFZz45o0au1UaKipzTdE1Tv/wCoFSFzpKlZEjexjmIi7eib0Xdu8agdn0jXSbbXLE9V1VzdNV3adPgQDlKSFGsRWI/YTRquTXQCtwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGSnV8m22R0erdldlE3/H4VA5hpo4ETYYiL0u03r4VAqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClPEsqN0dsOau0jkTUDrHSRscr3JzsirrtvRFX/QCuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUK6uprZSS1VZURUtNE3afNM9GMYnWqruQ+TMUxrKpbtV3q4t26Zmqd0Rxyj7mLy4MBYOklpbQs+Ka5mqf8ABdpAi9+V3H/CimGv5rYtcVH1p+DaWU9zjOMwiLmJ0s0z53HV7sfnMI+4r5e+Prw97bPSW2wwL7FWxLPKn+J+7/0mGuZxfq8iIhtTA9zDJ8PETia6rk9PBjqjj+LG1z5TmaV1e502NLlHr7Wnc2FPiYiFjVj8TVvrlLrOxuQWI0pwlM9Os/OZfJdnpmI5VVca3zVf/wDek85T8LxHnz1r6Nmslj/9S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdi5pOULmXQuRYsb3pNOh9U56fE7U9RjcTG6uVG5spkVzysHR7sR8ntMO8tXNKwvZz92prxEnGOvpWLr/iZsr9JdUZpiaN869KPYvud5BiYngWptz/pqn5TrDNuBPVCLZWSRwYtw9LblXctXbX86xO+rHaORPAqmVs5zTPFdp06Gusz7leItxNeXX4q9VXFPXHF8ISawPmVhjMi3+vMOXmlukSJq9sT9JI+85i9s3xoZ21ft341t1atO5lk+Pyi53rHWpon17p6J3S9MV2HAAAAAAAAAAAAAAAAGIc9OUphvJOjWCdyXTEMjNqC1wPTaTqdIvtG/SvQhjcXjreFjSeOrmTvZrZDHbR18Oj6lmN9c/KI5Z+EcrX7mtnxi/OGvdJfLi5tCjtYrbTKrKeJOjtfbL33aqQ7EYu7iZ+vPFzcjqXI9mctyC3FOEt/X5ap46p9vJ0RpDHhZJWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0cP4jumFbpDcbPcKi210S6snppFY5PGnFO8e6K6rdXConSVpisJh8damxiaIrpnkmNYTPyF5ccVylprFmFzdLUO0ZFe4m7Mbl6OeansV/iTd1onElGDzaKtKMR19rnvafub1WYqxeTa1Rvmid/+2eXonj6Uv4J46mFk0MjZYpGo5j2Lq1yLwVF6UJJE68cNC1U1UVTTVGkwqH15AAAAAAAAAAAAAj1ypOU7T5QW91isb46nFtVHqmujm0TF4PenS5fat8a7uOGzDHxho4FHlT8G1Ni9ja8+ueF4uJjD0z7ap5o9XPPsj1a7Ltdq2+3KouFxqpa2tqHrJLPM5XPe5eKqqkKqqmuZqqnWXWFixaw1qmzZpimmniiI3QtDyrgAAAAAfUt2Fb3d9FoLNcK1F4LT0r3+RCpTbrq8mJlZXcbhbH2t2mnpmI/N9hmUuOJW6swdfnJ1pbZvRKng97zJ6pWM55lccU4q379Pa7diHHfcZf8A5sm9EeD3vMnql88e5V6Vb9+ntOxDjvuMv/zZN6I8HveZPVJ49yr0q379PadiHHfcZf8A5sm9EeD3vMnqk8e5V6Vb9+ntOxDjvuMv/wA2TeiPB73mT1SePcq9Kt+/T2nYhx33GX/5sm9EeD3vMnqk8e5V6Vb9+ntOxDjvuMv/AM2TeiPB73mT1SePcq9Kt+/T2nYhx33GX/5sm9EeD3vMnqk8e5V6Vb9+ntOxDjvuMv8A82TeiPB73mT1SePcq9Kt+/T2nYhx33GX/wCbJvRHg97zJ6pPHuVelW/fp7TsQ477jL/82TeiPB73mT1SePcq9Kt+/T2nYhx33GX/AObJvRHg97zJ6pPHuVelW/fp7TsQ477jL/8ANk3ojwe95k9Unj3KvSrfv09p2Icd9xl/+bJvRHg97zJ6pPHuVelW/fp7TsQ477jL/wDNk3ojwe95k9Unj3KvSrfv09qzq8t8W0DFfU4XvMDU4ukt8qJ9U8zYuxvpnqVqM2y+5OlGIon/AHU9r4NRTy0kisnifC9OLZGq1fiUpTExvZOmumuNaZ1hTPj2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAknyXOVTV5aVtNhrE1Q+qwpM5GRTPVXPoFXpTrj629HFOpc5l+YTYmLdyfq/L/hqHbTYm3nFFWOwFPBvxvjkr/+XNPLulsLpamGtpoqinlZNBK1HxyRrq1zVTVFRelFQmcTExrDlWuiq3VNFcaTHFMKp9eAAAAAAAAAAAxpn/nHSZK4Aqbu/Yluk+sFvpXL/wA2ZU4r/C3ivxdJY4zExhbU18vIl+y+z9zaLMKcNHFRHHXPNHbO6Gra/X2vxNeay63OpfWV9XK6aaeRdVe5V3kArrquVTXVOsy7SwuGs4OzRh7FPBopjSIjmWB4XQAAAety7ypxVmtdfWGGLPPcXoqJJMibMMKdb5F3N8pcWcPdxE8G3GrB5rneAyW133HXYpjkjlnojfKXmWvqeFupo4qnHN8lrZtyuoLV+DjTvOkVNp3iRCRWMmpjjvVa+qGi837qd6uZt5XZimPOq456o4o9sykfg/IXL3AkTUs2ErZBI3/v5YEmlXv7b9V+kzdGEsWvIohqnH7TZxmUz4TiapjmidI6o0h72GFkEaMjYjGJwa1NEQutNEbqqmqdap1Vj6+AAAAAAAAAAAAAAAAAB8S+YPsWJadYbtZqG6ROTRW1dMyTyoUq7dFyNKqYle4fH4vB1cLD3aqJ9UzHyYQx7yG8tcYRySW6jnwvWu3pLbZPwevfjdqmng0MZeyrD3PJjgz6mw8s7o2d4CYpvVRep5qo4+uNJ69UTM2+RfjvLSOeuoIm4ps0erlqbexeejb1vi4+NuqEexGWXrH1qfrR6uxu3I+6BlWbzFq7Pebk8lW6eird16MBORWuVqoqORdFRdyopiGzYnXjhwH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzuRBygHpNHl3fqnaY5FW0Tyu3ovFYNerirfGnUSfKsZ/+vXPR2Oe+6PstHBnOsHTx/8AkiPhV+U9fOmqSlzwAAAAAAAAAOFXRNV4AaxOVdm4/NTNOt9bzK+yWlXUVE1F7V2i9vJ/icnxIhA8xxPhF6dN0cUOydiMijJMqo4cfrbn1qvbuj2R8dWGDFthAAABKfk3ci6uzDipcR40Sa14dfpJBQt7SorG9Cr+wxevivRpxM/gssqvaXL3FTzc7TO1ndAtZXNWCyzSu9umrfTT2z8I5eZPjC+FLRguzw2qx26ntdBCmjIKZmy1O+vWvfXepLaLdFqng0RpDmXGYzE5henEYqua655ZfcKi0AAAAAAAAAAAAAAAAAAAAAAAACO+fvJBw1m5BPdLUyKwYp0VyVULNIah3VKxOv8AaTf4TEYvLreIiaqeKr/u9s3ZnbrHZHVTYxEzcsc076fwz+U8XQ12Y7wHfctcSVNixDQSUFwgXe129sjeh7HcHNXoVCGXbNdiuaLkaS6qy3M8Lm2GpxWDr4VE/D1THJPqefKLKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABc2241NouFNXUczqerppGzRSsXRzHtXVFTxoeqappmKo3wo3rNGIt1Wrsa01RMTHPEtr2R+ZcObWWlnxCxWpVSx81Vxt/7udu56eBV3p3lQ2HhL8YmzTc5eXpcQbR5PVkeZ3cFPkxOtM89M7uzph7wu0ZAAAAAAAAMYcpTHzsuMmsQ3SGTm62WH1nSqnFJZe1RU8CKrvEWGOvd4w9VUb93WmWyGVxm+dWMPVGtMTwquinj+PFHtaq1VVXVd6mvnbIAAATF5HPJUjxC2kx3jGk27ajkktdtmbunVF3TSIvFmvsU6ePDjJMty/h6X7scXJH5tDbe7aTheFlOW1fX3V1Ryf6Y9fPPJu3p5tajURqIiInBE6CWObN/HLuH0AAAAAAAAAAAAAAAAAAAAAAAAAADFueuRVkzywpJQV7G010harqC5Nbq+nf1L1sXpb/AFLHF4SjFUcGrfySluze0mK2bxcXrM60T5VPJMdscktWmOsE3fLrFVww9fKZaW40T9h7favToe1elqpvRSBXbVVmubdcccOy8uzHD5rhaMZhataKo/7E+uOV8EpMmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEu/U+sfuosS33CE8i8xXQpXUzVXckrNEeieFqov8AgJJk17SuqzPLxtD91PK4uYazmVEcdE8GeieOOqfmnQSxzYAAAAAAAAQ79URxM6GzYSsDH6JPNNWyNReKMRGN+u4jWdXNKaLftb87lGDiq/isZMboimPbxz8oQgIo6PAAGa+SlkY7OnMNiV0TvvctWzUXB/BJN/aQovW5U395FMpl+E8Ku/W8mN/Y17trtHGz+Xz3qf11zip9XPV7Pno2jU1JDRU8UEEbYYImoxjGJo1rUTREROhEQnkRERpDjeqqquqa651md66D4AAAAAAAAAAAAAAAAAAAAAAAAAAAAARu5ZWQkeaWCJL/AGunR2J7LE6SPYTtqmBN74l61Te5vf1TpMLmWE7/AG+HR5UfGG1NgNppybGxhMRV+puzp+Grkn8p6+RrVIS63AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIvJ4xM7CWdeELgj1ZH6/ZTyLrxZJ+Dd9Di9wVzveIoq9fzRLavBxjskxVnTj4MzHTTxx8m142G4hAAAAAAAANf8A6oNXunzVslKq9rBaWuRO+6WTXyIQ7OZ1vUx6nUfcstRTlN65z3J+FMIuGAboAOWtV7ka1Fc5V0RE4qofJnTjltd5MmU8eUeUtqt0kSR3asalbcHab1meiLsr7lNG+JSf4HD+D2Yp5Z45cU7X51OeZtcvRP6un6tPRHL7Z42XTIoWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFTVNF3oBqy5XmU7cq8365tHDzVmvCLcKNGpo1m0v4Rie5dru6lQgWYYfvF+dN08cOyNhs7nOcoom5Oty39Wr2bp9sfHVhIxjYYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvbJVOob1QVLF0dDURyIqdCo5F/oeqJ0qiVtiaIuWK6J5YmPg3JU8vP08Un7bUd8aGzYnWNX5/1U8GqaeZUPryAAAAAAA14cvv9NdJ8EQ/XkIXnH3iOh1Z3L/2JV/Uq+VKNZg23wDK3JcwI3MLPHDNumj5yjp5vX1S1eCxxJt6L4XI1PGZDAWu/Yimmd2/qQrbLMpyvJMRepnSqY4MdNXF8I1ltlNgOKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARd5fuBG4iyip7/ABR7VXYatsquRN/MyaMenx7C+IwWb2uHY4cb6W3u5lmU4XN5wlU/Vu0zH+6njj4atcxDHVoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJh+pxYdbU4uxde3sRVpKOKljcqcFkerl+iNCRZNT9euvmhojurYqaMJhsLE+VVNXVGn5p8Euc1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8VnFh5mK8q8WWl7UclVbJ2NT+JGKrf8A1IhbYmjvlmujniWcyHFTgs1w2Ij+Gunq14/g08JwQ1w7vcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv8ATXSfBEP15CF5x94jodWdy/8AYlX9Sr5Uo1mDbfAJ6epvUrW4OxlUaJq+4Qx695sar/7iW5LH6uufW5p7rFczjMLb5qZnrn/hMckbRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALWthbU0c7HJq18bmqneVD5PHD3bmaa6ZjklpWuESQ3CqjTgyV7U8TlNYzxTL9A7U8K3TPqhbnxVAAAAAAAAJ6clnk3ZdZg5KWK+Ygw3HcLrUPnSWodUTMVyNme1u5r0TciJ0EtwGCw97D01106zx/NzRtltZnOV53ewuEv8Ging6RpTO+mJnfDx3LYyLwRlXgqwV2FrGy1VVRcFhle2aR+0zm3Lpo5y9KFtmmFs4e3TVbp0mZSDue7R5pnWNvWsfe4dNNOscURx6xzRCHhG29wAAAAERVVERNVXoQCYnJ/5DLcWYTqLzjx1VbJK+DS3UMDtiWDXek0mvT1MXo4kjweV98omu/xa7u1obafujTgsXThsp0r4E/Xqnjif9MfnPUwDndkViLI7Ei2+7xeuKCZVWiucTV5qob/AO1ydLV+lN5icVhLmFr4NW7kls3Z7aTB7RYbv2HnSuPKpnfE/nHNLHJZJY43daAZj5JmBbFmRnRb7HiGhbcrXLS1Ej6dz3MRXNZq1dWqi7l75ksutUXsRFFyNY40C23zLFZTk1eKwdfBriqmNdInfPHv1TiuvI/yiprZWSx4QiSSOF7mr67n3KjVVPbkpqy7CxEzwPm52s7dbRV3aaZxM6TMfw08/Q1eSaNkciKmiKqEEdixxxDNvI+y/sGZmb6WfEtvbc7b9z55uYdI5ibbVZourVRd2qmUy2zRfv8AAuRrGkte7d5pjMoyjwnBV8CvhUxrpE8U688SmPjLkkZT2zCF8rKbCUMVRT0M80T/AF1Ouy9sblRd7+tEJLdy7C00VTFHJPO0JgNuNoL2Ls2q8TMxVVTE/Vp3TMeprJRyaJvIM6+NpOsDkAAAAAAAAAAAAAAAB6fBGWWKsyX1bMMWOqvTqRGrOlKiLzaO12ddVTjovxFe1Yu39e9066MPmOcYDKYpnHXot8LXTXl03vtYg5P2YuFbNV3a74RuNBbaRnOT1MzWoyNuumq7++Va8HiLdM1VUTEQx2F2oybG3qcPh8TTVXVxREa6z8GPizSkAkJyJsvsPZj5nXS3YltMF4oorY+ZkM+uy16SMRHblToVfjMzldm3evTTcjWNGre6HmmMynLLd7A3JoqmuI1jm0lLXM3kzZX2XLrFNfRYMt9PWUtrqZoZmberHticrXJ23FFRCQX8DhqbVVUURrES0jlG1+e4jMcPZu4qqaaq6YmOLjiZjXkaxU4IQZ2A5A+thjCl3xre4LRYrfNc7nOjljpoERXuRqKq6a9SIqlS3bru1cCiNZWOMxuHy+zOIxVcUURvmd3HxPdu5L2a7Gq5cC3VERNVXYb6Rd+AYnzJRyNscgni8Mo+PYxe9jo3uY5NlzVVFRehULBMImJjWHAfQAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/3JfkiaNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSqPxeX3K+Q+TueqfKhpUu35Wrvf5PrKayq8qX6BWPsqOiPktDyrgAABkPDHJ6zExpYqa82TCtXcLXVIqw1MTmbL0RVaumrkXiip4i8t4PEXaYroo1iUVxm1WTZffqw2KxEU1074nXi5eZ9b+yjm13D3D/PH6RU8X4rzJWX022e9Lp+PYf2Uc2u4e4f54/SHi/FeZJ9NtnvS6fj2H9lHNruHuH+eP0h4vxXmSfTbZ70un49if/JSwhd8DZHWGzX6gktt0gfULLTSqiuajpnuTgqpvRUUl+X267WHporjSeP5uY9tcdhsyzu9icJXw6JinSY9VMQ8Xy4st8S5lYGw/RYZtE13qqe4rNLHArUVjObcmq6qnSpbZrYuX7dMW41nVIO51m2ByjHX7uPuxRTNGkTOu/WOZDT+yjm13D3D/ADx+kRnxfivMlvz6bbPel0/HsP7KObXcPcP88fpDxfivMk+m2z3pdPx7D+yjm13D3D/PH6Q8X4rzJPpts96XT8ex8TGGQ2P8AWSS8YhwxV2u2RvbG6omcxWo5y6NTc5V3qUrmEv2aeHcp0hkcBtLlGZ34w2DxEV1zx6Rryex4EtEmX1ivVVhu9UN1oVjbWUUzZ4VljSRqOauqatVFRU7ynuiqaKoqjfC2xOHt4uzXh7vk1RMTpOnFPrhsy5NvKjs+d9ubbqzmrVi2CPWah2tGVCJxkh14p1t4p303k4wWPoxUcGeKr/u5yHtbsbidnbk3rWtdiZ4quWPVV+U7pZTx/gGy5m4Xq7Df6NtZQVLdFbwex3Q9i+1cnQpf3rNF+iaLkawhmWZnisoxVOLwlXBrp6p9U88S1iZ1ZDXfI3HtLb6xFrLNVTtdQXFG9rOzaTtXdT06U8ablILicJXhbsUzxxO6XYGz20uH2kwFV619W5TH1qeWJ03x6p5JbO6bL3CzqaJVwzZ1XYT/wDAi6vck5izb08mOpyFXmmP4U//AJFfvVdq7t2D7DZ6ltTQWS30VSiKiTU1LHG9EXimqIinqm3RTOtNMQtruOxd+ngXrtVUc01TMfGX2nMSRqtciK1U0VF4KhVWUTpxw8/2PMKr/wD4zZ/kEXolHvNrzY6mT8aY/wBIr96rtXFswjY7LUeuKCzUFDUbKt52mpWRv0XimqIi6H2m3RTOtNMQoXsdisRTwL12qqOaapmPjL6k0DKiJ8cjGvieio5jk1RUXiioVd6ziZpmKqZ0mHwux3hXuZtHyCL0Sh3m15sdTKeNcf6RX71Xaw7yt8GYftfJ8xXVUVjttJUxxw7E0FJGx7fwzE3KiaoY7MLVFOGrmKY6vWnOw+YYy9tBhrd29VVTMzxTVMx5M+trKIO6+AO8EMlTPHDDG+aaRyMZHG1XOc5eCIicVPsRM8UPNVVNFM1VTpEJT4E9T8xTifDVJcrze4MOVdQm2lumpXSyRt6NtUciI5eroM/aye5coiqurSeZpfMu6hgMHiarGGszdpp/iidImfVxTxevlY75RHJuqeT99xPXF9hvX3U51G81TrFzexs8dXLrrtfQWWMwU4Pg61a6pXsrtbRtP37gWZt9703zrrrr6o5mGTGJ+AZZyd5MWN86EbVWuiZb7LtaLda/VkS9ewmmr/EmnfMjhsDexPHTGkc8oRn22GV5B+rv1cK55tPHPt5I9qT2HPU5MO08LFvmKblXT6ds2hiZAzXvbW0pnKMltx5dcy0/i+6tja6p8Ew9NMf6pmZ+Gj0E3qeuW8kOzHcL/E/9v11Gv0LGVpyfD88sXT3Us6idaqLcx0T/AP8ATHOOPU5qmCnknwliltXI1NW0t1h2Fd3kkZu+NpZXclmI1tVdaVZd3V6KqopzDD6Rz0Tr8J7UUMc5e4hy1vsloxJa57XXN3o2VNWyN/aY5Nzk76KR+7ZuWKuDcjSW7MtzTB5vYjEYK5FdPq3x6pjfE9LzpRZUAmn6mz+Use+9UfllJPkm+57Pzc+91n7PB9Nf+KR3Ku/V4x1/If8AvaZjH/da+hqrYv8AeHCfi/KWp4gDtcAlP6nb+mK8/Az/ALWMz+Tfb1dDTPdT/ZFr+pH9tScecP6KMafA1Z9i4lGI+xr6J+TnbIv2rhf6lH90NOicENcO73IGdeRL+sdhv3up+weZXK/vVPt+TXHdC/dy/wBNP90Nn1X+Kze4d5Cd1bnHtHlR0tKlx/KVV78/6ymsat8v0EtfZ09EfJbnlVAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/9iVf1KvlSjWYNt8An56nB+YOLPhNn2SEuyX7Ovpczd1f7/hvwT/cl+SJo0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAAG1Dkd/q3YO97m+3kJ7lv3Wj/ALyuMtvP3jxXTT/bSzWZNAQAAAAAAACO/Lx/V5uX89S/aGGzb7tPTDaHc3/eC3+Gr5NZhCHXYBd2i71tgudLcbdVS0VfSyJLDUQuVr43JwVFPVNU0TFVM6TChfsWsTaqs3qYqpqjSYndMNj/ACceVhZ8ysGVq4orKe0Ygs9Os1e+RyMjnhbxmZ/VqcFXdxJrgswov2575OlUb+1ydtXsRiMpxtPgFE12rs6U6ccxM/wz+U8yKHKe5TlZnTiGGitbVpMK2yfnaSN7e3qJE3c8/q7zehF37yP47HTiqtKfJjd2t2bHbH29n8PN2/8AWv1xpVPJEebH5yu2cvDNiNjWJW2rRqaJ/wBnt8568bYnnjqUZ7m2z8zrNFXvSyzyYOVbjvNLNyhsGIaq3utc1NPK9IaVsTtprNW9tr1mQwGYXsRfii5MacaE7YbFZTk2U14zB01cOJpjjqmd88fEmTc7jHTW6rnjmj5yOF729snFGqqElqq0iZaEs2aq7lNMxOkzDXBJy8s12yORK21aIqp+T2+chXjbE88dTq+O5ts/MeRV70swclblT43zXzT+4eJau3rbfWM0/wCBpmxO22q3Ttte+pkcBj72IvcC5MaaILtpsZleS5X4VgaauHwojjmZ4p15Er8WYhitWFrxXU1TTrU09HNNFq9qpttYqt3a796ISG5XwaKqondDSeCws38VatXKZ4NVVMT0TMRLXenL0zZVPx21fN7fOQ3xtiueOp1P+jXZ/wAyv3peex7yt8w8ycKV2Hb1U2+S2VqNSZsNG1j1Rrkcmjtd29EKN7Mb9+ibdcxpPqZTLNh8nynF0Y3C01RXTu1q1jjjTcwwYxP2a8tuSDmRmNJDKlodYLZJo5a67axJsr0tZ7N3xad8yljLsRe49NI9bXubbdZLlUTT33vlcfw0cfXO6OtNvIzkmYRyZSKvVv3dxIib7nVsTSJenmmb0Z4d698k+Fy+1hvrb6ufsc8bR7bZjn+tn7Oz5scv4p5ejd6mdTKteoQ+qT8MB+Gr/wDiIvnf/j9v5Ohe5Nvxn+z/ACQiIu6GZ65IuQUWdOOJqq7Rudhq0bMtWxN3riRfYQ69S6Kq95O+ZbLsJGKua1eTH/dGtNudpqtn8FFvDz+uuaxT6o5auz19DZpQUNNaaOGko4WU1NCxI44Ymo1rGpuREROCE6iIpjSHIVy5Xerm5cnWqeOZnfLA2avLUwHlpc5rVB65xJdIFVk0Vu2eaicnFrpFXTXvJroYjEZnYsTwY+tPqbKyXufZtm9qMRXpaondNWus+uIjj69GNqL1SK0OqkbV4Kr4qdV9nDWse5E8CtTX4yxjOqNeOj4pbc7k+JinW3i6Zn10zH5z8kiMpc9cIZz26SfDtx26mFE5+hqG83UQ99W9Kd9NUMxh8XaxUa259nK1XnezeY7P3IoxtHFO6qOOmfbz+qeNWziygsec2D6my3eFvObKupKxG/hKaXTc9q9XWnBUPWJw1GJomiv2epTyHPcVs/jKcVhp4v4qeSqOafynkancY4Ur8DYqumH7pHzdfbqh1PKicFVF3KneVNFTvKa/u26rVc0Vb4dtYDG2sxwtvF2J1priJj/vq3PjlJfpp+ps/lLHvvVH5ZST5Jvuez83PvdZ+zwfTX/ilxmrgTsmZe3vDC1i29tzg5j1zzfOc32yLrs6prw6yQ4i13+1Vb101aPyXMvFGYWcfweF3uddNdNfbxoqf3a8fd6/5rT/AO0wHiSP5nw/5bq/SzV6H/7/APxP7tePu9f81p/9o8SR/M+H/J+lmr0P/wB//iyhyeuSSzIbGNZfG4ldefXFG6k5haNIdnV7XbWu2v7PDvl9g8u8EuTXwteLTchm1O287S4OjCzh+BwauFrwteSY03Rzs3Yww/8AfThK82VZvW/3Qo5qXntna2Ntit2tN2umuuhlLlvvlFVHPGjXmBxXgWLtYrTXgVRVpz6TroiCnqa8aJ+fr/mxP/tI74kj+Z8P+W9v0s1eh/8Av/8AE/u14+71/wA1p/8AaPEkfzPh/wAn6WavQ/8A3/8Ai9vkryKGZP5i23FLMWOui0bZW+tVoUi29tit9ltrpprrwLnC5XGGuRd4eunqRvaDuhTnuXXMBOG4HC04+FrumJ3aQk5V/is3uHeQz1W5qKjyo6WlS4/lKq9+f9ZTWNW+X6CWvs6eiPktzyqgAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/w34J/uS/JE0aAAAAD5l9vtBhq01VzutXFQW+lYsk1TO7ZYxqdKqeK66aKZqqnSIV8Nhr2Lu02LFM1V1TpERvlDPE3qjKUt9rYbFhKOvtMcitp6mrqnRSStT2ytRq7OvQmvAjdzOtKpiijWG+8H3KeHYoqxeJmm5MccRETEerXXjfN/vI7v3EUXy5/oFPx1V5nxX36JsP6XV7sdr2GUHLnuOZuZNhwvLhOloIrlOsLqhlY57maMc7VEVqa+xLnDZrVfu025o019bAZ73OLOUZbex9OJmqaI104MRrxxHOmCSJo4AAAAAD5t4vNDh+3S19zrIKCjhbrJUVMiRsYnfVdx5qqpojhVTpCtYw93FXItWKJqqndERrKM2ZPL+wbheSWkwvRVGKqpmrfXCLzFKi95yptO8Sad8wWIze1RxW44U/Bt7Ke5jmWMiLmOrizTzb6uqOKOv2I74t5dmaGInvSgqaHD1O7gyhpke9E93JtL8Whhrma4m55M6dDaeC7m+RYWIm7TVdn/AFTpHVGjGl2z6zHvjldW43vkmvFrK18bfiaqIWVWLxFe+uetL7GzOS4eP1eEoj/bE/PV8CTMDFMrlc/Et4e7rWvl9Ipd+uedPWyUZXgKY0ixR7tPYuqLNLGducjqXFt7gVOGxcJU/wDcfYxF6N1c9ajcybLLsaV4aif9tPY9ph/lY5sYce1YMY1lWxv/AHde1lQ1f86Kv0l1RmGJo3V9fGwGK2J2fxcfWwsU/h1p+Usz4G9UWvdI+OHFmHKa4w8HVNresMqd/Ydq1fjQydrOa44rtOvQ19mPcrwtyJqy+/NM81XHHXGk/NKnK7lE4EzfjayxXljbhpq621iczUt8DV9l4Wqpn8PjLOJ8iePm5Wmc52WzXIp1xdr6nnRx09fJ7dGTy9RMAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAAH2qDG2IrVSR0tFf7nR0seqMgp6yRjG79dzUXRN5Vi7cpjSKp62Pu5fg71c3LtmmqqeWaYmevRcdkbFndRefnCX0j7367509al4qy/0ej3aew7I2LO6i8/OEvpDv13zp6zxVl/o9Hu09h2RsWd1F5+cJfSHfrvnT1nirL/AEej3aexsn5HFyrLxyfMO1VfVT1tS99Sjp6iRZHu0neiaqq68Cb5bVNWGpmqdd/zck7fWbdjaC/btUxTTEU8URpHkxyQ8H6oLfLnYcvsNS2y41Vulfc3Nc+kmdE5yc07cqtVNULPOK6qLVM0zpxpL3MMNYxOYYim/RFURRyxE8sc6CnZGxZ3UXn5wl9IinfrvnT1ukfFWX+j0e7T2HZGxZ3UXn5wl9Id+u+dPWeKsv8AR6Pdp7DsjYs7qLz84S+kO/XfOnrPFWX+j0e7T2LS5Yxv96pVpbhfLlX0yqjlhqauSRiqnBdFVUPNVyuqNKqpn2q1nAYTD198s2aaaueKYifhD5BTX762FMKXbG9/o7JY6KS4XKrfsRQRJqvfVV6ETiqruQqW7dV2qKKI1mVjjcbh8uw9WKxVcU0U75n/ALv5oTGu/qeLG5bUy2+8q7G8bVlnWVf+EmVU/wCU3dq3TgjunpTqklWTfqo4NX1/g0NY7qUzmVXfrX/408UaeVH+qefXljqQ4xLhq64MvdXaLzQz2240ztianmTZVPOi9CpuUjdduq1VNFcaS31hMZh8wsU4nDVxXRVxxMf93sj8lvLKy5t5sU+H7+2eS3yUk8zkppebftNRFTeXuAsUYi93uvdoie2Wb4rI8pqxmDmOHFVMccaxxpof2B8qP/493+cF8xJvFOG5p62gf0l5/wCdR7v/AC5j5BmVkL9uOG8xu/aZcXIvkHinDRz9b5PdKz6qNJmif9kdqv8A2GMs/wBq/fOj/MevFWH9fWp/pGzv/wDr9yFv/YHyo/8A493+cF8x58U4bmnrVf0l5/51Hu/8uWcgvKyJ21HBeWO623FyL5B4pw3r63ye6Vn9XFM0e5HaqryEssVRUVL2qL0Lc3eY++K8N6+t5/SPnn+j3IUf7A+VH/8AHu/zgvmPninDc09b3+kvP/Oo93/l8+/chTK23WS41UNPdudgppJWbVeqptNaqp0d48V5VhopmYietc4bukZ9dv0W6qqNJmI8nnnpa5Yv+az3SeUhkb3Vk7pbqbIqJZbeqru9bx7/APChs2nyYfn7iPtq+mfmwJnzyxsMZWU09ssk8OIsUaKxKeB+1BTO65Xp0p+ym/r0MTi8yt4eODRx1Nk7NbB47Oaqb+KibVjnnyqvwx+c8XSz1ZKt9fZ6Gol052anjlfomiaq1FXymWpnWmJlrbEURav10U7omY6pQy9Un4YD8NX/APERnO//AB+38m/u5Nvxn+z/ACQiIu6GbJOQFaYKHIj13G1EnrrnUSSuTiuzssRPEjfpJrlFMRhteeZcm902/Vcz3vc7qKKYj26z+b1XK8x1X4ByLvdda5XQV1W+OhjnYujo0kXRzkXoXZRyIvfLjMbtVnD1TTvniYPYXLbOZ55atX41pp1qmOfg7o69GrFVVVVVVVVd6qvSQJ2cAeuymxzccuMxLFfrbM+KanqmJI1q7pYlciPYvWioqoXGHu1WbtNdLB53l1nNcvvYS/GsVROnqmN0+yW4mN6SMR6cHIiobIcITxTo1r8vm0Q23PpaiJqNdXWynnl0Ti5FezX4mIQjN6YpxOscsQ6z7md+q7kXAq/grqiOjin80cDDNsJLci/O3CeTVZiuTFNbNRtuEdO2n5qnfLtKxZNrXZTd7JDOZZirWGmvvk6a6NR7f7PZhn9GGjAURVwJq11mI36ab+hKT+3PlJ++qz5BL5jOeNML53wab/R1tF/Kj3qe0/tz5Sfvqs+QS+YeNML53wP0dbRfyo96ntP7c+Un76rPkEvmHjTC+d8D9HW0X8qPep7X128rDAr7ZBcWsvz7fO3aiqm2SpWJ6a6ao5GaKm4reMLOnC49OiVhOxWaxcmzM2+HG+O+Uax7NXypeXBlRA5WS3avicntX26ZF8hS8Z4WOX4Sv6e53tBVGtNumf8AfT2uv9ufKT99VnyCXzHzxphfO+B+jraL+VHvU9p/bnyk/fVZ8gl8w8aYXzvgfo62i/lR71Paf258pP31WfIJfMPGmF874H6Otov5Ue9T2qVRy5MpZIJGNvNZq5qon/AS9XgPs5phdPK+D3T3OtoYqiZtR71Pa1oVkjZqyeRi6tfI5yL3lVSDzxy65txNNFMTzQonxUAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/9iVf1KvlSjWYNt8An56nB+YOLPhNn2SEuyX7Ovpczd1f7/hvwT/cl+SJo0AAAPD5n5tYYyisD7riS4MpWaLzNM3tp6h37MbOKr3+CdKoW9/EW8NTwrks5k+R43PMRGHwVGs8s8keuZ/7PM1v8oDlMYgz0uKwSK61YbhftU1rjfqjup8q+2d9CdHWQnGY65i503U8zrLZjZDB7OW+FH17076p+VPNHxnlYcManoBlnkofrEYH/AJ132TzIZf8AeqOlCNtv3exf4fzhtiNgOKwAAAAYpz1z/wAPZF2BKm5SevLtUNX1la4nIkky9a/ssTpcvi1UsMXi7eEp1q38kJfs5sxjNo8R3uxHBtx5VU7o7Z9TW3m7npi3Om7uq7/Xu9Ztcq09tgVW00CdGjelf4l1UhWIxd3E1a1zxc3I60yPZzL8gs97wlH1uWqfKn2/lHEx8WaUAAAAAAAKlNUzUVRHUU8r4J4nI5ksTla5ipwVFTein2JmJ1h4ropuUzRXGsTySmHycuXFV2uopcO5iVDqygcqRwX1U1lh6ESb9pv8XFOnUkeCzWaZi3f3c/a0RtX3Ord6mrGZNTwat80ck/h5p9W7m0TppKuG4UsVRTysmglaj45Y1RzXtVNUVFTiioSyJiY1hzfXRVRVNFcaTG+F2HwAAUqj8Xl9yvkPk7nqnyoaVLt+Vq73+T6ymsqvKl+gVj7Kjoj5LQ8q4AA+9hjAWJMapULYLFcLylPspMtDTul5vXXTa0TdrovxFW3ZuXfIpmWNxmZYLL+D4Xept8LdwpiNejV9zsEZjdw1/wDm+TzFbwTEeZPUxv0kyb0u370dp2CMxu4a/wDzfJ5h4JiPMnqPpJk3pdv3o7TsEZjdw1/+b5PMPBMR5k9R9JMm9Lt+9HadgjMbuGv/AM3yeYeCYjzJ6j6SZN6Xb96O1sW5IeH7nhjIXD1uu9BUWyvikqVkpqqJY5G6zPVNWrv3oqKTPLqKqMNTTVGk8fzcq7c4qxjM+vXsPXFdMxTpMTrHkxyvDcvTBt9xngHDlNYbPW3iohuSySRUULpXMbzTk1VETcmpaZtaru2qYojXjSLuaY/CYDH368XdpoiaNImqYjj1jnQi7BGY3cNf/m+TzEX8ExHmT1OiPpJk3pdv3o7TsEZjdw1/+b5PMPBMR5k9R9JMm9Lt+9HadgjMbuGv/wA3yeYeCYjzJ6j6SZN6Xb96O07BGY3cNf8A5vk8w8ExHmT1H0kyb0u370drzWI8K3nB9e2hvlrq7RWOYkqQVkKxvViqqI7RejcvxFCu3XbnSuNJZfCY3DY+333C3Irp101idY19j2+QeeVwyJxe670lDTXGlqWJDV08zESR0euvaSaasX6F6ULrCYqrCV8KI113o7tNs5Z2kwng9yuaaqeOmY3a+uN0x8eZs1yrzbw5nFhpl3w9XJM1NGz0z9Emp3/svb0eHgvQTnD4i3iaOHblyDnWR43IcTOGxlGnNPJVHPE/9mHnM+uT1YM9MPrDWMSivsDF9ZXSNvbxr+y/9pirxTxoUMXg6MXTpPFPJLK7NbU4zZvEcK3PCtT5VHJPrjmn19aBuA7tduSLndJPiexTVdTSU80CQRSpG2Zr00bKx6oqK1dP9qROzVVl2I1uU7nSmZ2MPtzkkUYG9EU1TE6zGukxviY52ff7yW3dw1X8vZ6Bl/HdPmfFrX9E170uPdntP7yW3dw1X8vZ6A8d0+Z8T9E170uPdntSry7xezH2BrHiNlO6jZc6VlSlO920rEcmuir0mfs3O/W6bmmmrSua4Ccsx17BTVwpt1TGu7XRgTN3luUWU2YV2wrLhSpuUlArEWpZWNYj9pjX+xVq6ey0MRic0pw92bU0a6etszIu55dzvL7ePpxMUxXrxcGZ00mY36+p7bk68pKm5QX3c9b2Oay/cvmtedqEl5zb2uGiJpps/SXODxsYvhaU6aI9tVsnXsx3nh3oud813Rpppp6551/yhM/IMgsP2q6VFnlvLK6pWlSKKdIlYqMV2uqouvAqYzFxhKYqmNdVrsts1XtNiLlii7FHAjXWY1149OeGCv7yW3dw1X8vZ6BivHdPmfFsn9E170uPdntWd39UVtt0tVbRpgmrjWogfEj1r2Ls7TVTX2HfPNWc01UzHA+KtY7ld6zdoueFxPBmJ8meSelCNrla5HJxRdSLOh9NY0ZSx5ynMxcwqFKCvxBLR2xGJH6xtyet43NRNNHK3tneNVL+7jsRejg1VaR6kNy3Y/Jsrr79asxVXv4VX1p9mvFHshi32yeEsEync3S4a/Nu0/ykP1ENl0eTHQ/P/GfeLn4p+aG3qk/DAfhq/wD4iOZ3/wCP2/k333Jt+M/2f5IREXdDJ9+p4Y8pa7A96wlLK1tdbqtayKNV3vhkREVU8Dmrr7pCXZNeibdVrljjcyd1PLa7eOtZjTH1a6eDM8009sT8GcOUVlpNmzlFfcP0uylwextRSK5dEWaNUc1FXo10VvjMrjbE4ixVbjfyNd7K5vTkmbWcZc8iOKroninq3tT93tFdYLnU265Uk1DX0z1jmp52K17HJxRUU19VTVRM01RpLtexftYq1TesVRVTVxxMccStDyuGVOTfk9c83MybVT09LItmo6iOouNZsrzccbXI5W68Np2miJ3+8ZDBYarEXYiI4o3oXtZn1jI8tuV11frKomKY5ZmeLXojfMtsqIiJ1IhsBxQ1X8sDHtNmBnreqiilbPQ29rLdFIi6tfzaLtqi9W2riBZlei9iapjdHE7L2Fy2vLMjtUXY0qr1rmOnd8NGFjGNgAAABkfITJi45249pbLTNfFbYlSa41iJughRd+/9p3BE6/AXuEw1WKuRRG7lRLabP7Oz2AqxNfHXPFRHPV2RvlthslkosOWejtVvhbT0NHC2CCFqbmMamiIbAppiimKad0OKMRiLuKvV37061VTMzPrlrm5b2aUOPczkslrYx1rsCOgdNExPw1Qv/MXVOKN0RqeBeshmaX4vXuBTup+bqvud5NXluWeFYifr3uPSeSnk69/UjlzT/wBh3+VTDaS2vwo5zmn/ALDv8qjSThRznNP/AGHf5VGknCjncOY5vsmqnhQ+PsTE7nAfQAAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/sSr+pV8qUazBtvgE/PU4PzBxZ8Js+yQl2S/Z19Lmbur/f8N+Cf7kvyRNGgHzL5frdhu2y191rqe3UUSavnqZUjY1PCp4qrpojhVTpC4w+FvYu5FnD0TVVO6IjWUUM5eX3ZbI2e3YBpkvVw0Vv3UqWq2mjXrY3c6T6E8JgMTm9FP1bEazz8jdWQdzLE4iab+b1d7p82PKnpndHxnoQixlje+5gXya8Yhuc90uEq75Z3ao1P2WpwaidSbiLXbtd6rh3J1l0RgMuwuV2Iw2DtxRRHJHznnn1y+GUmRAAGWeSh+sRgf8AnXfZPMhl/wB6o6UI22/d7F/h/OG2I2A4rAAADHudmblsyXwJXYhr1SaZv4KkpEXR1ROqdqxO90qvQiKWmJxFOGtzcq9iSbPZHf2gx9GDs8Ub6p5qeWez1tUuO8dXnMfFNdiC/Vbqu41b9pzl9ixvQxqdDUTciEAu3a79c11zxy7Ty3LcNlOFowmEp4NFPx9c88zyvgFFlAAiaqiJvVdyIgGQ8I8nvMfHELJrPhC5TU7/AGNRNFzEa99HPVEXxF5bweIucdFEotjtqMly6ZpxGJpiY5InWeqNXvabkL5t1EaOdaaCDX2slwj1+hVLuMqxU8kdaM190fZ6mdIu1T0Uy+ZeeRlm5Z4lkXDCVrU3r6yq4pV+La1X4jxVlmKp/h1Xljb/AGexE6eEcH8VNUfkxPiLCl6wjWrSXy01toqU/wC6rYHRKvg1Tf4jH1267c6Vxom2FxuFx1HfMLcprp54mJ+T5RTXoAAl1yKOUpNhy60uAMSVSyWerfsWypmd+KyrwiVV9o5eHUvhJFleNmiqLFyeKd3qaM7oeyVOLs1Zvgqf1lPlxH8Uc/THLzx0NgJLnM4AApVH4vL7lfIfJ3PVPlQ0qXb8rV3v8n1lNZVeVL9ArH2VHRHyWh5VwABOD1Nn8Wx57uk8kpKck3V+xzv3WvKwfRX/AIptknc+AAAAAAAAAABri9UJ/Tfb/gaH7SUhecfeI6I/N1X3L/2JX/Uq+VKMJg24HqstMzb/AJUYop75h+sdTVMa6SRLviqGdLJG9KL9HFC4sX68PXw7csLm+T4TO8LVhMZTrTO6eWJ54nklskwFyqsGYtytqcY1tdHaEtzEbcaGR2ssEqpuY1OL9pfY6cfEpNbOPs3LM3ZnTTfDkvM9i8zwOaU5bao4fD8iqN0xzzzacvMgFyhc+LlntjD7pVELaK1UaOit9GiJtRxquqq93S52iKvQnBCI4zF1Yu5wp4ojc6b2X2bs7N4PvNE8Kurjqnnn1RzRyfFn7DvqeMN+sFsuK43lhWspYqjm/uci7O2xHaa85v01MvRk0V0xVw9/qayxXdTqw2IuWPBNeDMxrwuadPNfR/u2Ye7yT5tT/wCw9+JY8/4Lb9LVXoce/wD/ABSzy5wf94GBLHhtKla1LXSMpfXGxsc5spprpqunxkhs2+826beuujSOa47xnjr2N4PB75VM6b9NUfs4uRDHmzmJdsVPxY+2rXrGvrVtCkmxssaz2W2mvsdeBh8TlcYi7N3h6a+ps7Ie6JVkeXW8BGG4fA14+FprrMzu0nne45N/JtZyfVvuzfnXv7qc17KmSHm9ja/iXXXa+gusFgvA+F9bXVHtrNrJ2o7zrZ733vXl11109Ucz6HKLyDbn9h+1Wt95dZUoapannW0/Oq/Vit002k04lTG4TwumKddNFpsptNOzOIuX4td84dOmmumnHrzSwL/dtRd3knzan/2GI8Sx5/wbM/S1V6HHv/8AxY3z+5HEWSOXr8TMxQ+7K2qip/Wy0aRa7arv2tteGnUWWMy2MLa75wtfYlezO3tW0OYRgZw/A4pnXha7vVpCM5g23gDs32aeEPk7m6TDX5t2n+Uh+ohsujyY6H5/4z7xc/FPzQ29Un4YD8NX/wDERzO//H7fyb77k2/Gf7P8kIiLuhnocBY7veW+KaK/4fq3UlypndqqJq2Rq8WOb7Zq8FQrWbtdiuK6J42LzPLcLm2FrwmMp4VFXw9cTyTDafkjmRfszMIw3K/YSrcLVatauzUKnNz6+2jRV20TvORPCpPcLfrv0cKujgy4x2iynCZRi5sYTE03qfVvj1TydU9T7OM8pMG5hoi4jw3b7tIiaNmnhTnUTqR6aO+kqXcPavfaUxKwy/O8yyriwV+qiOaJ4urc8bR8kfKOknSdmCqNzkXVGyyyvb/lV6oW8ZdhYnXgM/XtztFcp4M4ufZFMfGIZPsWHLZhi3x0Nnt9Na6KP2NPSxNjYniRC+ooptxwaI0hD8Tir+MuTdxFc11TyzMzPxRV5Y/KAxvgyhnw/ZsOV1ittWiwvxHNo5JWrxbCrVVGKqdLlR3UicTAZljL1qO90UzETy9jc+wey+V5jXGMxN+m5XTx97jk9dWumvs4vXKAaqqqqquqr0qRF02AAAHtspsoMRZy4ois1gpVeiKi1NZIipDSs6XPd5E4r0F1h8NcxNfAoj/hHc7z3B5BhZxOLq6I5ap5o7d0NoWTOTtkyVwdBY7QzblXSSrrHtRJKmXTe53kROhCd4bC0YajgUe31uOc/wA+xW0GMnFYmdI3U08lMc0fnPKyGXaOPnrZLeqqq0FKqquqqsLd/wBB54NPMr+EXo4ornrlz9xLf+76X/yG+Y+cGnmPCL3nz1yfcS3/ALvpf/Ib5hwaeY8IvefPXJ9xLf8Au+l/8hvmHBp5jwi9589coZeqNUNPRWfA6wQRQK6oqtebYjde1j6iN51ERTRp62+u5TcruXsXw6pnip39MoQEWdFAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/3JUYkvsWG8PXO7TRulgoKaSqeyPTac1jVcqJr07jP11RRTNc8jSuEsVYvEW8PROk1zER7Z0QYx56olf7nHJBhPD1NZ43bm1de/1xKnfRqaNRfDqRW9nNdXFap06XR+W9yvCWZivML01zzU/Vjr45+SNGOMy8U5kV61eJb5WXeXXVrZ5PwbPcsTtW+JDB3b9y/OtyrVt3LsowGU2+94KzFEeqOOemd8vMlBlwAAAAZZ5KH6xGB/5132TzIZf96o6UI22/d7F/h/OG2I2A4rAAADWhy4805cc5tzWGnmV1ow6i0rGIvauqF3yu8KLo3/CQnNcRN2/wI3U/Plda9zrJacuymMXXH6y9x/7f4Y/P2o5mFbWAPTZc5c3vNPFdJYLBSrU1k66ucu6OFieykevQ1P8ATiV7FmvEVxRRHGw+bZrhclwtWMxdWlMdczyRHrlshyT5JuD8oqKGplpIr9iJGor7nVxo7Yd080xdzE7/AB75NcJl9rDRrMa1c/Y5O2i22zLPa5opqm3Z5KYnf+KeX5epnNE0TROBlGvXIAD4eKMI2bGVrkt19tdNdaGRNHQ1USPTwprwXvpvKdy3Rdjg1xrC9weOxOX3YvYS5NFUcsTogjymuRjLgGjqsUYJSassUWslXbXqr5aVvS5i8XsTp13p304RPHZZ3mJu2eOObmdJbIbfxmddOAzTSm7PFTVuir1TzT8J9SJxH27ADtHI+KRskblY9qo5rmroqKnBUG58mIqjSdza/wAmTNJ2beUNnu9S9H3SBFoq5elZo9EVy+6TZd4yf4G/4RYiqd+6XFG1+TRkmb3cPRH1J+tT0TyeydY9jLRkUMAKVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAAffwtj/EuCPXCYev1wsqVGysyUNQ6LnNNdNrRd+mq/GVrd65a8iqY6GMxmWYHMeD4ZZpucHdwoidOjV97s+Zk93eIPnCTzlXwvEfzJ62O+jOSeh2/djsOz5mT3d4g+cJPOPC8R/MnrPozknodv3Y7Hp8tcc5vZpY0tuG7PjbEL6qskRHSLXyq2GNPZyO38Gpv+gr2LuKxFyLdFc8frYbN8t2dybBXMbicJb4NMebHHPJEcW+WzWibT4CwbH90blNUUtqpNqouFdKr5HoxurpHuXiq6KpOI4Nm39aeKI3y5BuTXmeMnvNuIquVcVNMaRGs8URDzGQeYE2aWXVPiWVqsbXVlWsMa+0ibO9sbfE1EKGEvTetd8nlmfmzG02V05NmM4Gn+CmjX1zNMTM9b5+dubDMpbtgWsqpUjs9xujrfXKvBrHxrsv/wALkavg1POKxHg9VEzumdJXWz2STndrGW7ca3KKOFT0xPHHtjX26PQ5rYTuWOMA3K3WK9VVju8kfOUVfRTujVsib2oqtXe13Be8uvQVsRbqu2ppoq0nkliclxtjLsfbvYq1Fy3E6VU1RrxTv38sb4axr5nBmthu8VtqueMsR0dwo5XQzwSV8qOY9F0VOJBq8TiaKppqrnWPW7Bw2RbP4uzRiLGFt1UVRrE8GOOJ9iy7PmZPd3iD5wk8548LxH8yetdfRnJPQ7fux2HZ8zJ7u8QfOEnnHheI/mT1n0ZyT0O37sdjzGJcWXrGVwbXX661l4rGxpEk9bM6V6MRVVG6r0b1+MoV3K7s8KudZZbCYHC4C33rCW4op110pjSNefifJKa+APf5YZHYvzfoL1PhejZWstiRrPE+ZI1kV2uy1uu5XaIq6KqF5Ywt3ExVNuNdEXzjaLLciuWqMfXwe+a6Tprpppv044h5bFGEL5guvkoL9aay0VbdU5qrhdGq+DXcqd9C3uW67U8GuNJZrB4/C5hbi7hLkV088Tq3BZffmDhr4MpvsmmxrP2dPRDhXNPv9/8AHV/dLD2Z/LOwdlTjW44YulrvFRXUOxzklLFGsa7TEcmiq9F4OToMdfzO1h65t1ROsJzk+wGZZ1gqMdYuURTXrpEzOvFOnJE8zNuHL1HiPD9tusMUkEVdTR1LI5URHta9qORHaaproplaauHTFUcrXmKw9WExFzD1TEzRMxrG7inTiYKzA5b2C8ucZXbDVwtV6qK22y8zLJTQxrG52iLuVXovT1GIvZpZs3Jt1ROsNkZZ3PMzzXB28bZuURTXGsRMzr8Il7bI/lBWHPmC7zWOhuFIy2ujZKtcxjdpXo5U2dly/sqXWFxlGLiZoiY050e2i2XxezVVqnFV01TXrpwdeTTfrEc6vnZnzYsibTbrhfKStq4a+d0ETKFjXORUbtKq7Tk3H3F4qjCUxVXE8fMpbPbN4vaW7cs4WqmmaI1nha8+nJErTI7lFYfz6W7pYqK4Uf3M5vnfXzGN2tva02dly/sqecJjbeL14MTGnOuNotlcZs13rwqumrh66cHXk036xHO8Ty+v1fpvhOl8ri1zf7t7YSHuaft+n8FX5NahCXW4B2b7NPCHydzdJhr827T/ACkP1ENl0eTHQ/P/ABn3i5+Kfmht6pPwwH4av/4iOZ3/AOP2/k333Jt+M/2f5IREXdDJsciDk3UdbQw5iYkpW1O09fuRSTN1YiNXRZ3IvFdUVG+BV6iU5XgomO/3I6O1zz3RNrLluucmwVWn8yY38f8AD29XOmRifFNswXYa283irjobZRx85NPKuiNT+qrwRE4qSO5cptUzXXOkQ0Lg8Hfx9+jDYanhV1TpEQhZmD6opcH18sGC8PU0VE1VRlbdVc6SROtI2qiN8aqRm9nNWulmni9boHK+5VZi3FeZ35mrzaOKI9s669UPEUvqgOZ0NQj5YbHURou+NaNzUXxo/UtIzfExPHp1JHX3Mcjqp0pmuJ5+FHYkDkVy4bJmXdqaw4koEw5ealyR08zJdulnevBuq72KvQi6ovWZjCZrRfqii5Gk/BrDaTudYrKLVWLwVffbdPHMaaVRHPzTHR1JGYkw7bcW2WqtV3o4bhbqpixzU8zdprkX+vf6DNV0U3KZprjWJapwuKv4K9TiMNXNNdPHEw1ZcpLJKbI7MOa1xufLZqxq1NtqH8ViVdFY5f2mruXr3L0kCxuFnC3eDG6dzszZLaGnaLL4vzxXKeKuPXzx6p3/AAYpMemoiK5yIiKqquiInFQ+TOnHKR+RXIrxPmW+numI2y4Zw47R34ZmlVUN/gYvsUX9p3iRTNYTLLl/Sq59Wn4tT7Sd0DA5RFVjBaXb3q8mnpnl6I64bA8v8u7Blfh6Gy4dt0dBQx712U1fK7pe93Fzl61JfZs0WKeBbjSHMWZ5rjM4xE4nG1zVVPVHqiOSGNOUhymbRkdZnUlO+O44rqGa0tAjtUj14SS6cG9ScV+kssbjqMLTpHHVzdqWbJ7IYnaK9FyvWmxTP1quf1U88/JAyblSZrzzyS/fxcmK9yu2Y3Na1NV4ImzuQic4/FT/ABy6Vp2L2fppinwSni6e10/tRZr93d2/zt9E+eH4nz5e/ods/wCh0dU9p/aizX7u7t/nb6I8PxPnyfQ7Z/0Ojqntehy9zqzmzGxpaMN2zG92fV3CdsSOR7VSNvFz17Xg1uq+IrWcVi79yLdNc6yxeabP7NZTgruNv4Sjg0Rry8c8kb+WeJs7ttK+hoKenfPJVPhjax08q6vkVE0Vzu+vEndMaREOPrtcXLlVcRpEzM6Ruj1Q15cv3MNuJs0qLDdNLt0tgp9mVGru9cSaOd8TUYnxkMze/wB8vRbj+H5upO5llU4PK6sbXH1r08X4aeKOudUXzBNxgAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv8A2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP8Ackjmz+i7F/wRV/YvMziPsa+iWpsk/amG/HR/dDTg32CeA1w7ydgAFWkpJ7hVQ01LDJU1MzkZHDE1XPe5eCIib1U+xE1TpCncuUWqJruTpEb5ndDIWaeRl9yesOGKzESsp7he2TS/c9N7qZjNjRHrw2l296Jw0LzEYWvDU0zc31ciL5LtHhc9xGIt4PjotaRwvOmdd3qjTfyscFklgBlnkofrEYH/AJ132TzIZf8AeqOlCNtv3exf4fzhtiNgOKwAB8+93Nlns9fcJE7Skp5J3eBrVcvkPNVXBpmrmV8PanEXqLMb6piOudGmC8XSa+XeuuVQ5Xz1k8lRI5eKuc5XL5TWdVU11TVPK78w9mnD2aLNG6mIiPZGizPK4F3IBs05GWUFPlvlXRXaogRL5f4m1lTK5O2ZEu+KNOpEaqOXvu7xOcsw0WLMVTvq43IPdAz2vNs1rw9E/qrM8GI55/inr4uiEhzLtZAAAAAoyxMnjcx7UexyK1zXJqiovFFQ+kTNM6xvasOVllNBlJm5W0tvi5qzXJnr+iYibo2uVUfGnea5F07yoQHMMPGHvzFO6eOHZmxOeVZ5lNFy9Otyj6tXr03T7Y+OrDJjE/AJp+pwYlclwxjh5ztY3Rw18bV6FRVY7ys+Ik+S3eOu37XPvdXwdM28LjY36zTPzj806CUudgClUfi8vuV8h8nc9U+VDSpdvytXe/yfWU1lV5Uv0CsfZUdEfJaHlXAAAABeWez1uILrS2220stbX1UiRQ08Ldp73Ku5EQ9U0zXVFNMazK3v37WFtVX71UU00xrMzuiGznkt8nSlyPwt64rmx1OK7ixFrahu9IW8UhYvUnSvSveRCdYDBRhbetXlTv7HH+2W1dzaPFcC1xWKPJjn/wBU+ueTmhifl7Z5tt1sjy6s8+tXV7M91fG7/lxcWRL33Lo5U6kTrMdm2L4MeD0b53pt3NNnJvXZznE0/Vp4qPXPLV7N0evoZW5En6uOGvfKr7d5f5Z92p9vzQ3uh/vFf6Kf7YY99Ud/Rzhb4Vd9k4s85+yo6fySfuU/tHEfg/yh6DkU56tzIwQ3DN1qEdiKxxtjRZF7appk3Mf31buaviXpK2V4vv8Ab73VP1qfkxXdC2bnKcd4dh6f1N2dfw1cse3fHtWfK/5LyZnUD8WYYp2piqjj/wCIpmpp6/iROHvjU4dabuo+ZlgO/wAd9tx9aPir7C7Y+J7kZfjqv1FU8U+ZM/4zy82/na7ZoZKaaSGaN0UsblY+N6aOa5NyoqLwUhsxpxS6ppqiuIqpnWJdD49AAAu5ANovI2y3XLzJK1PqI+buN5VblUIqaORHonNtXwMRvxqTvLbHecPGu+eNxxt7m3jTO7kUTrRa+pHs3/HVjT1RLGsFuwPY8MMbG6tuVStS9VaiuZDGnQvRq5yf5VLLObsU26bfLKWdyvL67uOvY6deDRGnTNXZEfFJ7L78wcNfBlN9k0zln7OnohqLNPv9/wDHV/dLXZym8Nz4x5XlxsVM1Xz3GsoqZqJ/FFGir4k1UhuOom5jpojlmHU2yGLowGyVGKr3UU1z1TU2VW+iitlBT0sWjYaeJsTE6mtTRPoQm8RFMREOSrlyq9cquVb6pmetFvlo8m1uPLLLjbDlKi4ioItauCJu+tganFETi9qcOtN3QhgczwXfqe/W4+tG/wBcNx7AbWTlt6MrxtX6mufqzP8ADVP5T8J4+d29Tww4+3ZUXm6yN2fulc3IxVTiyNiN+srhk1HBs1Vc8vndSxcXc1tYeP4KPjVMz8tGUOUnkfT545fS25j0gvVErqm2zuXRqS6aKx38Lk3d7cvQX+OwsYq1weWNyHbJbR17OZhF+Y1t1cVcernj1xvYF9TvtVXZLrmNb6+nfS1tLLTQzQSJo5j2rKiovjMTk1M01XKat8afm2V3U71vEWsDetVa01RVMTHLE8Fkjl9fq/TfCdL5XF5m/wB29sIp3NP2/T+Cr8mtQhLrcA7N9mnhD5O5ukw1+bdp/lIfqIbLo8mOh+f+M+8XPxT80NvVJ+GA/DV//ERzO/8Ax+38m++5Nvxn+z/JCSONZpGRpxe5Gp41IvvdCVTwYmW5vBNjp8MYQslqpWJHBRUUNOxqJwRrEQ2VaoiiimmOSHAuYYivF4y7iLk6zVVM9cokeqN4vq6a24SwzDI5lJVvmrahqLukVmy1iL3kVzl+Ij2c3JiKLcbp428O5TgbddzE46qNaqdKY9Wusz8oQZIs6MAOWPdG9r2OVj2qjmuauioqcFQPkxExpLbxkJiupxzk5hG+VjlfWVVAznnrxe9urHO8atVfGbFwlybtiiud8w4Z2lwVGXZxicLa8mmqdOieOI9mrCPqiOHoK3Kmy3dWp66oLo2Jr9N+xIx20nxtaviMVnNETZpq5pbE7lmKrt5rdw8eTXRr7aZjT5y16EPdRpxcg2wZa4gtM9R9yYp8eW521PJXOSVUjVe1khau5qdC7tUXp3oSrKaMPXTrp9eOf8nOfdLxWd4W9FHfJjC17uDxcfLFU75545Jjk4k0Z6iOlhfLK9scTEVznvXRGonFVXoQkszpxy0DTTNUxTTGsyiPyheXLbsNMqrFgCSK6XbfHLd1Tap6denm/wDxHd/2Kd8j2MzWmjWixxzz8jd+y/c4vYuacXm8TRb3xR/FPTzR8eh5nky8lesx7cW5iZmpNcEq3euKa31yq59Sq70mm19r1N6enduWhgcBN2e/4jj15Of1yy+1+2drLbfibI9KeDxTVTup/wBNPr555OlYcpnkUyWRtXijL6mfPQJrLVWNmrnwpxV0PS5v8PFOjXgnjHZXwdbliOLm7F1sh3QYxE04DOKtKt1NfJPqq5p9e6eVDpUVqqioqKm5UXoI23zv4xrXPcjWornOXRGomqqvUCZiI1lsY5GHJzfllYXYqxBTbGJbpEiRwSJ21HTrv2V6nu3KvUmidZM8swXg9PfbkfWn4Q5T2/2rjOL/AIBg6tbNueOfOq5+iOTr5mas3My6DKbL+74lr3NVKWNUghVdFmmXcxieFfo1UyuIv04e1Nyrka+yPKL2d5hbwVn+KeOeaOWfZHxai7/fKzE18r7vcJVnrq6d9RPIvtnuVVXymuq65rqmqrfLuTDYa3g7FGHsxpTRERHRCwPC6AAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kkc2f0XYv+CKv7F5mcR9jX0S1Nkn7Uw346P7oacG+wTwGuHeTsBkrKTk9Y1zkq2JZLY6G27Wkl1rGrHTMTp0d7Ze83UvsPg72Jn6kcXPyIjnm1OWZBRPhVzWvkpjjqn2cnTOjYDkVyWMK5Jwx1jI0vWJHN0kutSxNWdaRN4MTv8AFesl+EwFrDRrvq5+xzDtJtnmG0NU25nvdnkojl/FPL8vUwR6pP8AlDAfvVZ5YjEZ3vt+38myu5N5GM6aP8kKyMuggDLPJQ/WIwP/ADrvsnmQy/71R0oRtt+72L/D+cNsRsBxWAAPG5wvfHlRjF0fs0s9Wqae9OLXE/Y19Es3kUROa4WJ3d8o/uhp1b7FDXLvByBUpo0mqYY3exe9rV8CqfY45eK5mmmZhuns1LHQ2mipYkRIoYGRsROCNRqInkNm0xpTGj8/b9c3L1ddW+Zmfi+gelEAAAAACEXqktDEkeBK1ETn1dVwqvTs6Rr5SL51EfUnpdCdya5VrjLXJ9Sf7oQhIu6HAJR+p4Pe3Oa7NRV2HWaTa/8ANj0M9k3289DTfdSiJye3M/zI+VTYwTJywAUqj8Xl9yvkPk7nqnyoaVLt+Vq73+T6ymsqvKl+gVj7Kjoj5LQ8q4AAAfcwZgm95gX+nsuH7dNcrjOujYok3NTpc5eDWp0qu4q2rVd6qKKI1ljsfmGFyvD1YnGVxRRHLPyjnn1NkHJr5LVpyRoG3K4LFdcXTs0lrNnVlMi8Y4teHfdxXvJuJrgsBThY4VXHV/3c5N2t2yxG0NzvFnWjDxPFHLV66vyjdHS9LyiM9bbkbgmWvkc2e+VSOit1Frvkk09m5P2G8VXwJ0lbGYunC2+Fyzuhidltm720mNizTxWqeOurmjmj1zydbVbfr5X4nvVdd7nUvq7hWyunnnkXVXuVdVUgVddVyqaqp45dn4bDWsHZow9ing0UxpEeqGzTkSfq44a98qvt3k3yz7tT7fm5F7of7xX+in+2GPfVHf0c4W+FXfZOLPOfsqOn8kn7lP7RxH4P8oQewBjq7Za4tt+IrJOsFfRybaJ7WRvtmOTpa5NUVCL2btViuLlG+HRGZ5bh83wleDxUa01R1TyTHrhtdyezZs+cuCqS/wBoeiOcmxVUjl1fTTJ7Jjv6L0popsDDYijE24ro/wDpxVn+SYnIMbVg8RHrpnkqjkmPz5pYa5T/ACQKPM9KjEuFGQ27FaNV01PuZDX6df7Mn8XBenrMZj8ui/rctcVXzT/Y7bq5k/BwOYTNVjknfNHbT6uTk5mvW+WO4Yau1TbLrRTW+4Uz1ZNTVDFa9ip1opD66KqKppqjSYdRYfE2cXapv4euKqKuOJjdKxPC5APf5D5byZr5r2DDyMV1LLOk1Y5Pa07O2kXxomnhVC8wljwi9Tb5OXoRjaXNoyXKr2M1+tEaU/inijt9jbpT08dLCyGFqRwxtRrGImiNRE0RENhxGnFDhyqqa6pqqnWZaruVvmMmZGdl9qIJedt1tX7m0qouqbMeqOcnherl+IgWY3u/4iqY3RxOzdiMq8U5LZoqjSuv69XTVu6o0bNsvvzBw18GU32TScWfs6eiHImaff7/AOOr+6WBMIZTyYg5Y2NcbVsKpb7K2CGkVybn1L6diKqe5Yq+NyGIt4fhY6u9O6Pno2Tj87jC7H4TLLU/Xu8KavVTFc/OflLIXKjzFZlrkpiGvZIkdfVwrQUaa71llRW6p4G7TvEXmPvd4w9VXLPFHtRfY7KpzfOrFmY1ppnhVdFPH8Z0j2sIZf8AK5ZQcmqCSSRK7HVK9tko6Ny7T6mVU0hlVOKps6a9at06TGWcx4OE131xxR+TYWabDTc2lmIjg4WqO+VTyUx/FHTru9U+pJXKLBa4By4sVjlVr6uCBH1ciIibdQ9VfKu7+NzjNYe33i1TRO/82pc8zCMzzG9iqfJmfq+qmOKn4RDGuBOURDiXlLYvwE+di0NPExlvd+1PEn4dqL066r/5allaxkV4uuxycnTG9Lcy2WqwmzWFzaI+tMzw/wANXkT/AN53o8vrxhi653ZhpYYk9f08NFDdqiNU5uWoTndERP2mt0Ry9fgK9mq1OIucDfxa9PGxWaWMdYyTA+Fz9Wqa5oid8U/V+Ezxx/y8Zy+v1fpvhOl8ri1zf7t7YSDuaft+n8FX5NahCXW4B2b7NPCHydzdJhr827T/ACkP1ENl0eTHQ/P/ABn3i5+Kfmht6pPwwH4av/4iOZ3/AOP2/k333Jt+M/2f5IRtesbkc32TV1Qi7oWY1jSW5HLTE0GMcAYdvdM9HxVtDDNu6FVibSeJdU8RsmxXF21TXHLDgrNsJXgMwv4WuOOiqY+PF8EeuXrlJcMbYMtmJbRTPq6qwvk9cwRN2nrTv0VXInTsq1FXvKq9Bh82w1V23FyiOOn5NodzTPLOXY25gcRVwab2mkzu4UcntietryIc6mAPp4aw1c8Y36istnpJK65VkiRQwxpqqqvSvUicVXoQqW6KrtUUURrMrPGYyxgLFeJxNXBopjWZlt6yswW3LrLvD2G2vST7m0ccD3pwc/TV6p4XKqmxbFvvNqm3zQ4YznMJzXML+NmNOHVM+zk+COPqimKYaLL7D2Hkc1amvuHrpWIu9I4mKmv+Z6fEYXObkRapo55bX7leCquZhfxmn1aKdPbVPZCABEHTj0eXmPrtlji+3Yiss6w11G/a2VXtZWL7KNydLXJuUr2b1ViuLlG+GJzXLMPnGDrwWKjWmrrieSY9cPfZzcqXGuczpKWrq0tFiVd1qoHK2Nyf/sdxf493eLvE4+9ieKZ0jmhGcg2NyzINLlunh3fPq3+yN0fP1sPGNTxI/k3csC75UTU1ixI+a84SVUY3VdqehTrjVfZM/gXxacFzWCzKvD6UXOOn5NTbWbCYfOqasZgoii/8Kunmn19bYnhrEtsxhZaW7WethuNuqmJJDUQO1a5P6L1ou9CZ0V03KYqonWJcr4rCX8Deqw+JommunimJRX5VvI9jxYyqxfgajbFfN8lbaYURravrfGnBJOtODvDxwGYZbFzW7Zjj5Y5259idu5wU05dmtWtrdTXP8Pqn/T6+To3VeS5yNo8Fy0mK8cQx1N9bpJR2xdHx0a8Ue/odJ3uDe+vD7gMt71pdvb+SOZ42y29nMIqy/K5mLW6qrdNXqjmp+M9CV9fX09ro56uqnZT0sDFklmlcjWsaiaqqqvBEQkMzFMay0nbt13q4t241qniiI3zLWTysOUM/OvFraG1yPZhO1Pc2kau71zJwdM5O/wAGp0J4VILmGM8Kr4NPkx/3V1/sTstGz+E77fj9fc8r/THJTH5+voYHMS2UAAAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kk8zaSaty5xRTU0T6iea11MccUbVc57liciIiJxVVM3fiZtVRHNLUWUV028xw9dc6RFdMzM8kaw145f8h/MvGKxS19DBheidoqy3N/4TTvRN1dr4dCHWcrxF3jqjgx63U+Z90TJMBrTZrm9VzU7veni6tUpsr+QvgPA7oay9JLi25M0XWtRG07V70Sbl/wASqZ6xlVi1x1/Wn4dTTOcd0bNsxibeG0s0T5vle92RCRNJSQ0NNFBTwsp4I27LIomo1rU6kRNyIZqIiI0hqquuq5VNdc6zPLO9dh8QY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8AJCsjLoIAyzyUP1iMD/zrvsnmQy/71R0oRtt+72L/AA/nDbEbAcVgAD42LbV93cL3i2aa+u6KanRPdMVv9Sldp4dFVPPC8wV7wbFWr3m1RPVMS0wT076SeSCRFbJE5WORehUXRUNazGk6O/KaorpiundPG6Hx7co5WKjm7nIuqeEPkxrGktyGWmIosX5fYbvUD0fFW0EM2qdasTaTxLqniNk2K4uWqa45YcFZvhKsDmF/DVxx01VR8eL4PVFdigAAAAAICeqNYmiqsYYTsUb0c+io5aqVqL7FZHIjdfFGvxkRzmqOHRRzQ6V7lOEqowmJxcxxVVRTH+2NZ+aH5HW9gCYHqcVjfPjPFt4Vv4KmoIqVHL+0+Ta8kZIsmp/WV180NFd1fExTg8NhuWqqZ6o0/NPslzmkApVH4vL7lfIfJ3PVPlQ0qXb8rV3v8n1lNZVeVL9ArH2VHRHyWh5VwABnXITklYlzqigu00rLJhZz1RbhJo+SbRdHJEzpXVFTVdE8JlsJl1zFfWnip52t9ptt8Ds/M4emO+X/ADd0RzcKfyjjbCcq8nML5O2NLdhy3NgV6Is9ZKu1PUO63v6fAmiJ0ITHD4a3hqeDbhy3nWfY/Pr/AH7G1680R5MdEfnvWmdGdlgyRwtJdLvOklU9FbR2+Nyc7UydSJ0J1u4J9BTxWKowtHCr38kc642f2exe0WKjD4aNKY8qrkpjt5o5WrjNDM++Zt4uq8QX2fnKiVdmKBirzdPH7WNidCJ9K71IJfv14iublbsjJsnwuR4SnB4SNIjfPLM8sy8mW7ONofIk/Vxw175VfbvJ1ln3an2/Nx33Q/3iv9FP9sMe+qO/o5wt8Ku+ycWec/ZUdP5JP3Kf2jiPwf5Q1/ERdOsjZG53XrI7GEd3trlqKCbSOvt7naMqY9focnFF6PAql7hMVXha+FTu5YRTaPZ7DbRYOcPe4qo46auWmeyeWG0bLjMixZq4Xpb/AGCrSpo5k0c1V0khf0se3ocn+9xPLF+jEURXbnicb5tlOKyXFVYTF06VR1THPE8sPL518nbCud1r2LtT+s7tE3Smu1M1Emj6kX9tv8K+LQt8Vg7WKj60cfOzOz21OYbO3dcPVwrc76J3T2T649urXbnZydMWZH1qLdoW1lmlk5unu1LvhkXoa5OLHaJwXxKpDcVgruFn627ndT7PbV5ftFRph54NyI1mid8euOePXHtYtLBM0+fU98q/uPha6Y4rYdmpurvWlErk3pAxe3cnunpp/gJdk+H4NE3p5d3Q5m7qGc9/xVvKrU/Vt/Wq/FO6PZHzZ05RWZDcqsor/fGSIyt5laaiTpWeTtWaeDVXf4TKY2/4PYqr5eTpa42Vymc6zezhZj6uutX4Y45693takpXukV73uVz3aq5y8VXpU167fiIjSIbmMvvzBw18GU32TTZVn7OnohwRmn3+/wDjq/ul5KzZ24Zqs1b5gCV6W3EFI9ksbJVRG1qOja7Vi9LkRdFau/RN2vRQpxVub1VieKqPiy+I2ex1GVWc3pjh2qtYnT+HSZjj9U8+5Cflv51MzFzAZhy1zpJZLA50avYurZqld0ju+jdNlP8AF1kXzTFd+u97p3U/N0N3O9n5yrL5xt+nS7e0nop5I9u+fY+tyGMjJMXYvbji7Uy/cWzyf8Ekibqiq6FTrRnHw6dSlTKsJ3yvv1UcUbulY90faSnA4TxVh6v1l2Preqntq3dGqaGeOZ1NlHlnecRTPb64hjWKjicv/NqHbo2/HvXvIpJcXfjD2qrk+zpaB2cyevPcztYOndM61TzUxv7OlqfsuMbzh/FUOJKCukp73FO6pbVpvdzjtdp2/jrqvxkApu10V98pnjdr4jAYbFYWcFdoibcxpp6o3JiepxVMlVVZgVFRI6aWV1K98j11c5yrKqqq9KqpI8lmZm5M+r82h+6vTTRTgqKY0iOFEf8Aqydy+v1fpvhOl8ri+zf7t7YRDuaft+n8FX5NahCXW4B2b7NPCHydzdJhr827T/KQ/UQ2XR5MdD8/8Z94ufin5obeqT8MB+Gr/wDiI5nf/j9v5N99ybfjP9n+SERF3QyXHIt5TNHglEwNimqSmtE8qvt1fKujIJHL20b16GuXei8EVV14kiyzHRa/U3J4uSWje6BsfczD/wDlcBTrciPr0xvqiN0x645Y5YT9Y9lREjmq18b01RUXVFRSXb3M0xNM6TxSwlj/AJHOWWP6+WvntEtorpVV0k1pl5lHuXpVmit18Ri72W4e9PCmNJ9TYWWbeZ5lluLVN2K6Y3RXGvx4p+LxVJ6njl5DUI+a6X6piRdeaWojai+NGalrGTWInjmUgr7qWc1U6U27cTz6T2s05b5I4MylgczDNjgop3t2ZKp+sk8idSyO1XTvJohlLGFs4eP1dOjX+bbQ5nndWuOvTVEbo3Ux7I4n2cdY+seW+HKm94gro6Gggaqq569s9ehjG8XOXoRCrdu0WKJrrnSGOy3LcVm2JpwuDomqqfh655o9bVbntnBXZ2Zg1l/qmOp6NE5ihpFXXmIEVdEX+JdVVe+pAMXiasVdmud3I7Q2byK1s9l9OEonWrfVPPVP5Ruj1MeFmlQAAAXlos1wv9ayjtlDU3GreujYKWJ0j18SIp6ppqrnSmNZW9/EWcLRNy/XFNMcszER8U4+RrlHm3l3cnT3VYrNhOqRXT2i4PV0znabnxsb/wAt3DXVU1TinAlWW4fFWZ1q4qZ5Jc57f55s7mtvgYfWu/Turp4o6JmfKjo60zCSNEPiYoxVacF2Wpu97uEFtt0DdZKiofstTvJ1r1Im9SncuU2qZqrnSF3g8HiMfepw+FomuurdENdvKd5Wtbm/JLh/D3PW3CLH9vtdrLXKnBX9TOlG+NepIbjsxqxP1LfFT83VGx+xFrIojGYzSrET1UdHPPPPUjiYVtgAAAAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kvyRNGgAAAAgx6pP+UMB+9VnliIrne+37fydE9ybyMZ00f5IVkZdBAGWeSh+sRgf+dd9k8yGX/eqOlCNtv3exf4fzhtiNgOKwAAA1TcrPLWXLXOq+RMiWO23SRblRuRO1Vsiqrmp7l+0nxEBzCxNjEVRyTxw7O2JzanNsltVTP17ccCrpjdPtjSWHTGp6ATh5Bue9Ktu7HV6qWw1UUjpbTJK7RJGuXV8KL1ourkTp1XqJTlOLjTweuejsc590vZq533x1hqdYnir05NN1XRpxSm0SdoAAAAAHnMb40tOXmGa6/XurbR26kjV73uXe5ehrU6XKu5EKV27TZom5XPFC/y/L8RmmJowmFp4VdU/9mfVHK1K5sZiVua2YF5xPWosbq2XWKHXXmYk3MZ4monj1Ne4i9OIuzcnldv5JlVrJcvtYG1x8GOOeeZ45n2y8iWzOgGzXkSZay4AyXpq2siWO436X7oSNcmjmxqiJEi/4U2v8ROMssTZsRM76uPschd0PN6czzmq1bnWizHBjp31fHi9iQxmGsQClUfi8vuV8h8nc9U+VDSpdvytXe/yfWU1lV5Uv0CsfZUdEfJaHlXAAEr+Qlnj96WKZMDXao2bVd5Nuhe93aw1X7PeR6Jp4UTrJBlOK73X3mrdO7p/5aT7pOznh2FjNcPT+stx9b108/8At+WqSfKC5VmHMlqaWgpXR3rFSt/B22J/awL0OmcnsU/h4r3uJm8ZmFvCxwY46ubtal2X2Kxu0FUXq/1djlqnl9VMcvTuhrgzAzDvuZ2JKi+Yhr311bMuia7mRN6GMbwa1OpCF3r1d+vh3J1l1hleVYTJ8NThcHRwaY65nnmeWXnCgywBtD5En6uOGvfKr7d5Oss+7U+35uO+6H+8V/op/thj31R39HOFvhV32Tizzn7Kjp/JJ+5T+0cR+D/KGv4iLp0A9/k3nViHJLEzbpZJucppFRtZbpVXmalnUqdC9Tk3p9BeYbFXMLXwqPbHOjGf7PYPaHDd4xUaVR5NUb6Z7OeOVsryt5QWEc1sIT36gr2UXrKLnLhSVT0bLRoiaqrutvHRybl+gm2HxlrEW+HTOmm/1OR852YzHJcZGEu0TVwp0pmN1XR6/VvQA5UPKDqs8MYqyjfJDhe3Pcygp13c4vBZnJ+07o6k8ZEcfjJxVzi8mN3a6c2O2Xt7O4PW5Gt+vjqnm/0x6o5eeWN8usD12ZGN7Nhq3NVam41DYtrTdGzi9695rUVfEWNm1VeuRbp5UtzXMbWU4K7jb26iNemeSPbPE2/YVw1RYQw5bbJb40ioaCBlPCz+Fqaar314r4TY1uiLdEUU7ocK4zF3cdibmKvTrVXMzPtQT9UEzUS/YztuC6ObapLOz1zVo1dzqh6bkX3LPrqRPOL/AA7kWY3R83SPcwybwbB3Mzux9a7xU/hjtn5IkO9gvgI+3e3NZffmDhr4MpvsmmyrP2dPRDgfNPv9/wDHV/dLWvyx55ablKYnmhkfDMx1M5kkbla5qpAzRUVOCkKzKZjF1THq+TrPYKimvZvD01RrE8L+6WEHOVzlc5Vc5V1VV4qpimxIjTihnjk1cqe65JVzLVcUkumD5pNZaTXV9Mqrvki1+NW8F7ymWwOPqws8Grjp+XQ1ttbsZh9oaJxFn6mIiOKeSr1VflPJ0O/K35QrM6sV09FZpZPvVtaf8PtIrfXEqp20qtXen7KIvRr1n3McZ4VXwaPJh42H2WnZ/CVXcTH6+5v9URujX4z/AMPd5H8jXDGc2V9qxNHie5UNbPzkVTA2GORkcrHKionBdNNF3r0l3hcst4mzFyKpiUb2i2/x+QZpcwNWHpqpjSYnWYmYmNf+EpOT9yeLVkBablTUVxqLtVXGVsk9VOxGbmoqNa1qa6Imq9PSZ7B4OnB0zFM6zLTW1G1OI2ou2671EUU0RMREce/fMyx/6oLeIKLJOmoXvRKitukKRM13qjGuc5fFu+Ms84qiMPFPPKUdzCxXczuq7EcVNFWvt0iGuQhbq4AJuXUCU1B6oVje30VNSx4dsTmQRNiarkm1VGoib+37xnozi9ERHBhpi73Lsru3Krk369ZmZ/h5fYxhnpyi77n59x/u1bqCg+5nO816yR/bbezrrtOX9lCxxeNrxenDiI0THZzZXC7M998Grqq4emvC05NeaI52KDHpsAZdys5U+YGU8EVHbbqlxtMe5tuubVmianUxdUc3wIuneMjh8ffw8aUzrHNKDZzsZk+d1TcvW+Dcn+Knin28k+2GfrH6pHpC1LzglXS9L6Cu0Rf8Lm/1MtRnWvl0dUtZYjuT8f8A+Ni+L/VT+cT+T7MvqkOH2sXm8G3Rz+hHVMaJ8eilbx1b8yWPjuUYzXjxVPVLxOK/VF8RV0MkWHcMUVrc5NEnrZnVDm99GojU+PUtbmdXJ4rdOnxSHBdynB25irGYiqv1UxFMdfHKNOPsz8UZn3X7oYnvNRdJ2682yR2kcSdTGJ2rfEhg71+5fq4VydW3MsyfAZPa7zgbUURy889M75eXKDMgGS8isjqzPa/1tot97t9pq6WFJ+brUerpWa6OViNTfpqmu9OJfYTCzi6pppqiJhENpNo7ezdijEXrNVdNU6fV04p9evOktYvU3aZqtdesayvT20dBRI3/ANTnL5DN0ZLH8dfVDUmJ7rFc8WGwkf7qvyiI+bKeFeQzlZhxWyVVtrL9M3frcalVaq+5Zsp8Zf28qw1G+NelDcb3Rs+xcTFuuLcf6Y4+udZZqw5gyw4OpEprHZqK0QaabFHTtj18Oib/ABmSotUW40oiIa+xePxePr4eLu1Vz65mV7dLxRWKikrLlWQUFJGmr5qmRI2NTvqq6FSuqmiNap0hb2LF3E1xbs0zVVPJEaz8Eas2OXlg/B7JqPCsbsV3RNWpKzWOkYvWr13v/wAKad8wmIza1b4rX1p+DbWSdzTMsdMXMwnvNHNvqn2bo9vUhBmlnPizOK6+vMSXN9RExVWGii7SngT+BnDxrqvfItfxV3E1a3J7HROTbP5fkNrvWCt6TO+qeOqemfy3PEFqkQAAAAAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kvyRNGgAAAAgx6pP+UMB+9VnliIrne+37fydE9ybyMZ00f5IVkZdBAGWeSh+sRgf+dd9k8yGX/eqOlCNtv3exf4fzhtiNgOKwAAAwxym8hafPPBDqeBY6fENBtTW6ofuRXadtE5f2XaJ4FRFMbjsJGLt6R5Ubk62Q2lr2cx3Dr47VfFXHymPXHxjiaur9Ybhhi8VdqutHLQXGkkWKanmbsuY5P8AfHpIJXRVbqmmqNJh2PhsTZxlmnEYeqKqKo1iY5VgeF0qU88tLNHNDI+GaNyPZJG5Wua5N6KipwU+xMxOsPFVNNymaao1iUscoOX5e8M0cNsxtQOxDSxojG3KncjKpE/jRe1f4dy9epIMNm9dEcG9Gsc/K0nnvcywuMrm/ldfeqp/hnjp9nLHxhJbDXLJynxLE133zNtUzv8AubnC+FU8eit+kzdGZYWvfVp0tR4zYLaDCTMRh+HHPTMT/wA/B7GHPnLmdiPjxxYVavT6/jT+pcxi8PP8cdbB1bNZ1TOk4S57s9ixunKTyvs8bnVOObOuntYahJXfEzVTxVjcNTvrhcWdk89vzpRhK/bGnz0Yjx76oFgaxQzR4co67EtaiKjHKxaen177ndsqeBpjr2b2aPs44U9Sb5b3Mc1xNUTjaqbVPvVdUcXxQyzhz6xZnZc21F+rEjoYXKtNbKbVtPD39PbO/iXVSN4nF3cVOtc8XM37kOzWX7PWuBhKdap31T5U9keqGOiySsAkPyT+TNV5u4ggv16pnw4OoZUc9z009eyNXXmmdbf2l8XHhmcvwM4mrh1+THxas222ut5Hh5wmGq1xFccX+mJ5Z9fNHtbLYYWU0TIo2oyNiI1rWpojUTgiITfc5HmqapmqqeOVcABSqPxeX3K+Q+TueqfKhpUu35Wrvf5PrKayq8qX6BWPsqOiPktDyrgADvDNJTTRzQyOiljcj2SMXRzXJvRUXoU+xOnHDzVTFcTTVGsS5qKiWqnklnkfNNI5XPkkcrnOVeKqq8VEzMzrL5TTTRTFNMaRCmfHsAATS5OPK9wLlVlFZ8NXqK7OuNI6ZZFpaVr4+3lc5NFV6dCp0EnwWY2cPYi3XrrDn3avYXNc6ze7jcLNHAq4OmtUxPFERzS8ryueUthDO7CFltmHY7iypo65aiX17TpG3Z2FbuVHLv1Ut8xx1rFUU029eKWb2H2RzHZ3F3b+MmnSqnSODOvHrrzQiuYBucAAVYKuelSVIJ5IUlYsciRvVu2xeLV04p3lPsTMblOq3RXpwoidOOPVPOpHxUXdqu9dYrhDX22snoK2FdqOoppFjkYvecm9D1TVVRPCpnSVC/YtYm3Nq/TFVM74mNYlJXLTl8Y0wpA2jxLSw4rpWtVGTyLzNS1dN2rkTR3jTXvmbsZvet8VyOF82pM37mWWY2rvmBqmzVzb6erfHsnT1I44kxBW4sxBcb1cZVmrq+ofUzPXpc5VVfEYWuublU11b5bXwmFtYLD28NZjSmiIiOiHzFTVFQ8LtPzC/L8wHY8M2i3T2i+umpKSGne5kMWyrmMRqqn4ThqhLreb2aaIpmJ4ocyYzuZZtiMTdvU3aNKqpmOOeWdeZEbP/MO35q5sXvE9rhqKehrea5uOqaiSJsxtauqIqpxavSR3GXqcRequU7pbx2Yyq9kuVWsDfmJqp1103cczPq52PSzSoAASL5M/KvhyIwzdrJcLLU3mmqqpKqDmZ2x80qtRr0XVF46N+kzWBzCMJRNFVOurVO1+xNW0uJt4mzdi3VTGk6xM68esbubjZfqvVI7W2B/rbBFc6bTtUlrmI3Xv6NVTIznVOnFR8UFo7k+I4Ud8xdOnqpntRbzsz0xDnniGK4XlY6akpmq2jt9PrzUDV4rv3ucuiauXqTgYHFYu5i6uFXujdDcuz2zeD2cw82cNrNVXlVTvnsiOSGOSySsAAAAAAAAAAAAAAA9Rllj+vyvx1Z8TW5y8/QTI90euiSxruexe85qqhXsXqrFyLlPIw2cZZZzjA3cDe3Vx1TyT7JbFqvlr5S0VFDOuIJJpZI2vWnp6SV8jFVNdle101ThxJpOaYWI14XwcqW+57tDcrmiLMRETvmqIifXv1+DwOJPVF8JUSPbY8OXa6P8AavqXMp2L9Ll+gs685tR5FMz8EnwfcqzC5pOKv00R6tap/KGG8ZeqAZhX9skVmpLbhuF25HxRrPMie6fu/wDSY27m9+vioiIT7AdzHJ8NpViaqrs+ueDHVHH8WA8XZg4mx7VrU4ivtdeJddU9dTq5rfA3gniQxFy9cvTrcqmWy8DleByyjgYOzTRHqj898vPlFlAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv8A2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP8Acl+SJo0AAAAEGPVJ/wAoYD96rPLERXO99v2/k6J7k3kYzpo/yQrIy6CAMs8lD9YjA/8AOu+yeZDL/vVHShG237vYv8P5w2xGwHFYAAAAMP56cmvC2eVDzlfGttvsTNmnu1M1OcTqa9Pbt7y706FQx+KwNrFR9binnTXZva3H7OV6Wp4Vqd9E7umOaf8Astf+cXJhxtkwktXc6SOvsiO0bdaJ21Hx3bTV7Zi+FNO+RDE4G9huOqNY53T2Q7YZZn+luxVwbnm1b/ZO6WJDHJwAAONlOoDnRAAAC/sVhuGJrtTWu1UktfcKl2xDTwpq569490UVXKoppjWVricTZwdqq/iKopop3zKYmSHIFqHz093zGmayFqo9tkpJNXO70sibkT+FvxkkwmUa/XxHV2tDbRd0yiKasPksaz58x/bH5z1JsWq1Ulit0FDb6WKjoqdiRxU8LUaxjU4IiJwJPTTFMcGmNIc+Xr9zEXKr16qaqquOZnjmZfQPSkAAKVR+Ly+5XyHydz1T5UNKl2/K1d7/ACfWU1lV5Uv0CsfZUdEfJaHlXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv9NdJ8EQ/XkIXnH3iOh1Z3L/2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP9yX5ImjQAAAAQY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8kKyMuggDLPJQ/WIwP8AzrvsnmQy/wC9UdKEbbfu9i/w/nDbEbAcVgAABTkkbExXvcjWtTVVVdEROsERMzpCHXKA5dMGHaqpsOXrYbhXRqsc16lTbgjd0pE326p+0u7wkbxmaxRM0WOOefsb32Y7nFeKppxeca00zxxRHFM/ink6N/QhXi7HmIse3F9diG9Vl3qXLrtVMquRvea3g1O8iEYuXrl6dblWroHA5bg8ttxawdqKI9UfOd8+18EpMmAAAAAAA5a90bkc1ytci6orV0VA+TETGks2ZRcrrHmVc8EElwfiKxtVEfbrlIr1Rv8A+uRe2Yvxp3jKYbML+HnTXWOaWvc82HynOqZrijvV3zqY0643T8/W2EZO54Yazrw/90rFU7FREiJVW+dUSemcvQ5OlOpyblJhhsVbxVPCon2OXc+2dx2zt/vOLp4p8mqN1XR6+eN7IxeIyAAKVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/3JfkiaNAAAABBj1Sf8oYD96rPLERXO99v2/k6J7k3kYzpo/yQrIy6CAMs8lD9YjA/8677J5kMv+9UdKEbbfu9i/w/nDbEbAcVgAABBblrcpuWWpqsvcK1asij/B3iuhdorndNO1U6E9svi6yLZpjuObFqensdFdz7Y+mKac4x9PHPHbpn+6fy6+ZC0jDoEAAZqyt5ImYeaMENbDb2WO0yaK2uuqrGj29bGaK5yd/TTvmTsZdfvxrEaR62vs525yfJqptVV98uR/DRx9c7o69UhsOepw2WGNjr7i6urJfbMoKdkLfErtpTM0ZLRHl1z7GrcX3WMVVMxhMNTTH+qZmfho9fD6n1llGzSSe+zO002lrWp5GFzGUYb19bBVd0/PZnii3H+2e1YXP1PDL+pjVKG732if0OdNHKieJWJ5TxVk1id0zC5s91POKJ/W2qKo6Jj82K8b+p2Yht0Mk+FsRUl6RqapS10a08i95HIqtVfDoWF3JrlPHbq1+CZ5d3VcHdmKcfYmj10zwo6uKfmjDjLAWIcvbu+14jtNTaK1u9GVDNEenW13Byd9FUwV2zcs1cG5Gktw5fmWDzSzF/BXIrp9XJ0xvj2vglFkwD0+XOYt6ysxZR4hsVUtPWU7u2Yq9pMz20b06Wr/qV7F6vD1xconjYfNsqwuc4SrB4unWmeuJ5Jj1w2r5O5r2nOTA9FiG1uRvOJsVNK5dX00yeyY7yovSiopsDDYinE24uUuLM+yXEZDjq8Hf5OOJ5Ko5Jj8+aXvS5R8ApVH4vL7lfIfJ3PVPlQ0qXb8rV3v8AJ9ZTWVXlS/QKx9lR0R8loeVcAAAABV04gcbSdaAcgAAADjaTrQDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAce+BzovUvxB81hwH0AAAAAAAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/sSr+pV8qUazBtvgE/PU4PzBxZ8Js+yQl2S/Z19Lmbur/f8N+Cf7kvyRNGgAAAAgx6pP+UMB+9VnliIrne+37fydE9ybyMZ00f5IVkZdBAGWeSh+sRgf+dd9k8yGX/eqOlCNtv3exf4fzhtiNgOKwABh7lQ5urk7lRcLlTSIy81i+srenSkrkXV/wDhaiu8KIY7H4jwazNUb54oTfY7I/H2a0Wbkfq6frVdEcntniaqJppKiaSWV7pJZHK973rqrnKuqqq9ZAZnXjl2lTTFERTTGkQ6Hx6AJ7ckvkjUVkttFjPGtE2qvE7WzUNsqG6spGrva97V4vXiiL7Hw8Jbl+XRREXr0cfJHM5n2325u4m5XlmWV6W44qqo31TyxE8kfPoTDRERERE0RCRtGOwAAAA8hmJlph7NTDk1mxFQMraV6KrHKmkkLuh7HcWqn/Uo3rFvEUcC5GsMxlWb4zJsRGJwVfBqjqmOaY5Yavc/MkLpkXjWS0VjnVVtnRZbfX7OiTxa8F6nN4Knj4KQPF4WrCXODO7kl2LsztFY2jwUYi3xVxxVU809k8jGpYpcAZ+5GmcUmWOadNbKudW2G/vbSVLXL2scqrpFJ4lXZXvO7xl8sxPeL0Uzuq4msdv8hpzfK6r9uP1tnWqPXH8UdXHHrhs9Jy5CAKVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAAAHiUDP3IetVFec+KamuFHBW062+pcsNTE2RmqImi6ORUMvlVMVYmIqjXilrDujX7tjIqq7NU0zwqeOJ0nl5mwbE2X+F4sN3V7MOWhr20kyo5tDEiouwu/2JL67NvgT9WN3M5iweZ4+cTbib9flR/FVz9LT3r3jXLuwAAZE5O1HBX55YIp6mCOop5LnE18UzEcx6b9you5UL3BRE4iiJ50V2quVWsjxddE6TFE6THFLap2PcLdzNn+QReiTzvNvzY6nGPjTH+kV+9V2tSGa0EdJmhi+GGNsUMd3q2sjjbo1rUmciIiJwQ17iI0vVxHPPzdvZLVNeWYaqqdZmij+2HlvEpQZoAAAAAAAA2Ncm3IDLvFeR+ErveMI22vuVVSufPUzxqr5F5xyarv6kQmmCwdi5h6KqqImZco7WbTZzgs7xOHw2JqpopniiJ4o4oYl5dmU+EcuLFhOfDNgo7LLVVU7J3UrVRZERjVRF39GqmOzbD2rNNE26dNdU47m+dZjmt/E0469NyKYp015NZlD8jjewAAAAAAABODk1ci/D9faLdi3FlwpcRpO1Jqa3UMm3St6ucens1Tpam5OnUlOByyiaYu3Z19XI502v7oGLt3bmXZfRNqaeKaqo0q9kckevfzaPtcqPkc0GIrZUYpwJQx0N6p2K+ptNOxGxVbUTesbU3NeidCbneHjVx+W01xN2zGk83Ox+xu3t3C3KcBm1fCtzxRXPHNM+ueWPl0IDPY6N7mParHtVUc1yaKi9KKhEXTUTExrDgPoAAAAAAAAAAAJJ8gW2U9zzsq2VNPHUxstE7tiViPbrtxprovhM3lFMVYideZqXumXa7OS0zbq0ma6d3FyVNhF1w3Zo7ZVv8AuVQpswvXVKZn7K94mFVFGk8Tl6zi8TN2mO+Vb45ZaZ5v+bJpw2l8prWXfNPkw6Hx6AAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv9NdJ8EQ/XkIXnH3iOh1Z3L/2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP9yX5ImjQAAAAQY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8kKyMuggDLPJQ/WIwP8AzrvsnmQy/wC9UdKEbbfu9i/w/nDbEbAcVgADXp6ofjKS55lWXDbHr62tdD64ezXdzsq8f8rW/GQ/ObvCu02+aPm6g7luAizlt3GzHHcq09lP/MyieR9usAzRyRctIczc6rXT1sKTWu2NW5VTHJq16MVNhq95Xq3xamTy6xF/ERE7o42v9uc3qyjJbldqdK7n1I9u+fZGrakiaJom5CeuNHIAAAAAAMG8r7LKHMjJi7vZCj7pZ2LcaN6J2ybCayN8DmbXjRDF5jYi/h55444bB2FzirKc5txM/Uu/Uq9u6fZOnxatkXVCBuygDsyR8L2yRuVkjFRzXJxRU4KNzzMRVExO5uCyaxiuPsq8LX97tqatoY3Sr/8AsRNl/wD6mqbHw1ffrNNfPDhTP8B4szTEYSN1NU6dG+Pg9uXLAqVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAASN5BlBTXLPKWGqp4amP7k1DubmYj267Ue/RTNZTEVYjSY5Jap7pV2u1kcVW6pieHTunTklsV+9Kxfua3/ACWPzEx73R5sOVvD8V/Nq96e1WpMP2y3Tc9SW2kppkTTnIYGsdp1aoh6iimnjiFO5ib92ng3LkzHrmZfQc1JGq1yI5FTei8FPa3idOOHyfvSsX7mt/yWPzFLvdHmwvPD8V/Nq96e1H7ly4ftluyAuE1LbaSmmSupUSSGBrHabfWiGJzWimnDTMRyw2b3OsTfu5/RTcuTMcGrfMzyPf8AJ+wzZ6nJLBMs1qoZZZLTA5z307HOcuwm9VVN5d4OiicPRMxG6EZ2nxeJozvF003KoiK6uWedkSHDNnppWSw2qiglZva9lMxrmr1oqJuL6KKI44hFq8XiK4mmq5VMT65fXPS1fGkwtZZHukktNC971VXPfTMVVVeKquhS73RPJC7jGYmmIiLtWkeuT70rF+5rf8lj8w73R5sPvh+K/m1e9Pa1V8pynipM/cbQwRMhhZXqjY42o1rU2W8ETgQPHREYmuI53Zux1dVeQYSqudZmnl6ZYxLBMgAAAAANrnJL/V0wP/Ju+1eT/AfdaOhxXtt+8OL/ABR8oYQ9Uk/NzA/83U/UYYvOfIo6ZbE7k/3nF/hp+coJEUdIAAAAAAAAGYeTtyjbzkXiBjduSuwxUvT17bVdqiJ0yR/svT4l4L3slgsbXhKuemd8IHtVsphto8PM6RTepj6tX5Tzx8uRs/wtie24zw/RXu0VTKy21sSSwzMXcqL19SpwVOhUJ1buU3aYronWJcd4zB38BiK8LiaeDXTOkwg3y6OT8zDVz7IFhpkjt1dKjLnBE3tYZ14SonQj+C/xeEi2a4PgT3+iOKd7ozucbTzi7XifF1fXoj6kzy083THJ6uhEMjjegAAAAAAD7UeCcRTRtkjw/dXxvRHNc2ilVFReCouyVu9XPNnqY+cwwVM6Tep1/FHa7feLiXudu3yGX0R3q55s9R4ywX8+j3o7T7xcS9zt2+Qy+iO9XPNnqPGWC/n0e9HafeLiXudu3yGX0R3q55s9R4ywX8+j3o7Un/U/8JXa15qXysuFrraCJlpcxr6qnfGjnOlZuRXImq6IpnMnt1U3qpqjTiac7p+Ow97K7Nuzcpqma+SYndTPMnLi2R1PhS8ysa5zmUczmtamqqqRu0REQlVzioq6HOeBpirFWonlqp+cNPf3jYldvXDt21Xf+Iy+ia571c82ep3b4xwMcXf6PejtPvFxL3O3b5DL6I71c82ep68ZYL+fR70dp94uJe527fIZfRHernmz1HjLBfz6PejtPvFxL3O3b5DL6I71c82eo8ZYL+fR70dr5FVST0NRJT1MMlPPGuy+KVise1epUXehSmJidJXlFdFymK6J1ieWOOFI+KgAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/ALEq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/wB/w34J/uS/JE0aAAAACDHqk/5QwH71WeWIiud77ft/J0T3JvIxnTR/khWRl0EAZZ5KH6xGB/5132TzIZf96o6UI22/d7F/h/OG2I2A4rAAGqnlh1z6/lG4vV6qvNSQwt7yNhYhAsynXFV/95HZuwluLezuG05YmeuqWGjGJ8ATS9Tctsa3DHNwVE5xkVLTNXpRFWRy+RPiJPktPHXV0Ofe6xemLeEs8kzVPyj806SUudgAAAAAAFlcqOOvoKqmkRHRzRPjci9KKiovlPNUaxMSqWq5tXKa6d8TE9TSzcaZKO41VOnCKZ8aeJyp/Q1nVGkzD9AbNffLdNfPEStzyrAGzjkNVzqzk7WZr1VeYqqmFuvVzqr/AO4nOVceFp9rkDui24t7Q3Zjlimfh/wkGZdrNSqPxeX3K+Q+TueqfKhpUu35Wrvf5PrKayq8qX6BWPsqOiPktDyrgAD0OBswMQZa3tbvhq5PtdxWJ0Czxsa5dhyoqpo5FToQrWr1dirh250li8xyzB5tZ8Hxtvh0a66ce+OjRlPDXKWzwxhfKOzWbE9bXXGrkSOGCKmhVXKvT7DcicVVdyIX9GOxlyqKKKpmZ6EMxmyOy2AsV4nE4emmimNZmZq7WxPK+wYiw9g2ipsVXyTEF/cm3VVTmta1r19oxGonat4a8V3r0kzsUXKLcRdq1qcqZzicHi8ZXcwFnvVrdTHHu551meOXslTVFTh4C4YZHDO7AOdNsbUXbLvHdXXQJq91mq4oOeanVE9WaO8DtF76mFxVrFx9axc19XE2ps7mezN7g4fOcHFM+fE1af7o14umOL1QhDmRnfmbiygqsM4yvdZNAyZqz2+rpo4nNkYuqaojEVFRSL38ViLkTbu1ex0RlOzuR4K5TjsttREzHFVEzPFPtmH1cA8oDN9fuNhPC2Iat6ojKOhoYKeJyonBrU1Yq6J1qpUs4zFfVtW6vVELLM9mNnI77mGPsRy1VVTNXtne2UZXWS/4fwZb6bFN6kv1+VvOVdW5rWtR6+0YjURNlvBF6ePSTaxRXRbiLtWtTknOMTg8Vja7mAtd7tbqY490cs6zPHL2RcMM8DnBYsVX7A9XHgm+useIYfw1NK1rHMmVNdYnbSKiI7r6F0LXE0Xa7c95q0qSDIsTgMLjqZzOz3yzPFMceseuNJjdzczXfeeVHnXh661VsueKa2hr6WRYp6ealha+NycUVNghtePxlFU01VTEx0OqMPsdsxirVN+xh6aqao1iYmrSY62JMSYkuWL77W3m8VTq251snOz1DmoivdpproiInR0GOrrquVTXXOsym+EwlnA2KMNhqeDRTGkRzR7XzTwvADJvJvy6tWa2btpw3enVDbdVRzOkWmk2H6sjc5NF0XpQvsFZpxF+Lde6UP2szXEZLlFzG4XTh0zTprGsccxCai+p95X/APjXz5a30CT+KMN6+tz9+k7Peaj3Z7Wuy/UUdtvtyo4tVip6mWFm0uq7LXqia+JCG1xwapiHVGGuTesW7lW+YieuFieFy2uckv8AV0wP/Ju+1eT/AAH3WjocV7bfvDi/xR8oYQ9Uk/NzA/8AN1P1GGLznyKOmWxO5P8AecX+Gn5ygkRR0gAAAAAAAAAJS8iDP1+BsVswVeKhfuDd5dKV8jt1NVLw06mv4L39F6zPZXi+9V95rn6s/Npnui7MxmOF8Z4an9bbj63+qntp39GqfWLsL2/GmGrjYrpCk9vuELoJmL1KnFO+nFF60Ql1y3TdomirdLmbBYy9l+Jt4qxOldExMexqHzMwFXZYY6vOGbgi8/QTqxsmmiSxrvY9O85qoprq/ZqsXJt1cjufKMztZxgbWOs7q416J5Y9kvMFBmAAAAAdXewXwAbmcvfzBwz8GUv2TTZNn7KnohwPmv3/ABH46v7pekK7GAAAAAAAAADUtyo/1hMdfCLvqtNfY/7zX0u2djv3fwf4Pzli0sEyAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/wDYlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/wByX5ImjQAAAAQY9Un/AChgP3qs8sRFc732/b+TonuTeRjOmj/JCsjLoIAyzyUP1iMD/wA677J5kMv+9UdKEbbfu9i/w/nDbEbAcVgADVZyx7e638ozFqPRUSZ8M7delHQs/wBSBZlGmKr/AO8jsvYK7F3Z3DacnCjqqlhcxjYABMj1N+/RQYlxlZpHoktTSwVUbVXijHOa7T/OhJclr0rroaF7q+Gqqw2FxMbqZqpn2xEx8pTzJW5uAAAAAAAfKxDdYLFYblcp1RkFHTSVEjlXREa1quXyHiuqKKZqnkXOFs1YnEW7FG+qYiPbOjS/WVK1lZPULxlkdIvjVV/qazmdZ1d/W6O90U0c0aKJ8VADZ3yHbe+h5O1iV6Ki1FRUzpr1LK5E+qTnK40wtPtcfd0S7FzaG9EfwxTH/rHakAZdrVaVdQqRzRsjdI9GKq6aIia69fgPk7nqnyoaW7zG+G81zJE2Xc89dy6oqbSmtKo0ql39hq4rtUdEfJzbqSGaNXyt21V6tRFXdw6j7TEaKd2qeFMarWaLmaiWNE0Rrtyd5d6eU8Vb1xZnWl0PKu9vlVk3ijOO9pbsOW907GKnritl7Wnp0Xpe/wDom9ehC6w+GuYmrg24R3Os/wABkNjv2Nr013Ux5VXRH57mx/IHk24eyKtW1AiXLEFQxEqrrK3Ry9bI09ozvcV6Sa4PA28LTxcdXO5O2m2txm0l3Sv6lqPJoj5zzz8uRUlzxpblyg7flzansqFp6SequczU1RkiNTYiRetNdV8SdY8KirExh6eadXmNnLlrZ+vOsRGmtVMURzxM8dX5R7ZZNxDUPo7Bc6iF2zLFTSvY7qcjFVFL6udKZmERwtEXL9uirdMxHxYa5LvKPpM78Mes698dNiy3sRKynTckzeCTMTqXpToXvKhjcBjYxVGlXlRv7U92y2TubO4nvlmJmxX5M80+bP5c8I98r2vZnZm/bsEYIsMV2vtt1ZW3GmjTnFev/duk4IxnSq8FXToMPmM+FX4s2adZjfP/AHmbQ2EtTs9lFeaZpemi1X5NMzxac8Rz1ckRyJA8mrku2vI+3pcq5Y7pi2pj2ZqzZ1ZTtXjHFrwTrdxXvJuMvgcDThY4VXHV/wB3NYbXbY39ornebWtFimeKOWfXV+Ucj5+c2eLaXO7L/Lm0VGs891gqLs+N3sGa6xwr31XRyp1InWeMTi9MRbw9PPGvYu8g2cmvJMbnWIp4ooqijp5avZuj2pGGZauRp5Nee8d9xzjPL671H/aduu1ZJbHyO3zU/PPVY077OhP2V7xhcDi+HcrsVzxxM6dGra+1uzc4bBYXOMNT9SuiiK/VVwY4+ifn0vQ8obkuWHPCiWth2LPiqJmzDcmM1bKicGTInsk6l4p9BWxmAoxUcKOKrn7WK2W2yxezlfeqvr2J3083rp5p9W6WubMrKzEuUt/dacSW59FMuroZUXainYi6bUbuCp9KdOhC7+HuYerg3I0dW5RnWCzzD+EYKvhRyxyxPNMcjyRbs4AZ35EX6x2Hfear7Fxlsr+9U+35Nbd0P93b/TT/AHQ2hrwJ049aW8W/nZfP56f7RxrO55dXS79wP3Sz+Gn5Q+SU182uckv9XTA/8m77V5P8B91o6HFe237w4v8AFHyhhL1SJjn4cwRstV3/ABdTwTX2jDF5z5FHTLYfcnmIxGL182n5ygnzMn/hv/yqRXSXR/Cp5zmZP/Df/lUaScKnnOZk/wDDf/lUaScKnndVRWroqKi9Snx9iddzgPoAAAAPdZG4Mkx/m5hWxsRysnro3zK32sTF23r/AJWqXeFtd9v0UetG9o8fGWZTiMVO+KZ06Z4o+MtwCJomiGxXDCFnqhmViVFutGPaKLWWnclvr1anFjlVYnr4F1b/AIkIznGH1iL8dEt+9y3OeBcu5Rdniq+tT0x5Ue2OP2SgwRV0cAAAADq72C+ADczl7+YOGfgyl+yabJs/ZU9EOB81+/4j8dX90oj8t/OXGuXOY9loMM4iq7PSTWtJpIadW6Ofzr02l1Rd+iIR/NMTes3aabdWkaN39zrIMszXLrt3G2IrqivSJnXdpCOv9qfNju6ufxs9Ewvh+K8+W1foZs/6JT8e0/tT5sd3Vz+Nnojw/FefJ9DNn/RKfj2p08jPEeJ8Z5QrfsVXapu9XWV8vMSVOmrYmaNRE0RN20jiVZZXcu2OHcnWZlzht/hMDgM38EwFqKKaaY1iOedZ+Wj6PK4zDuWW+TNxr7LWSUF5qKiCkpZ4dNtjnPRXKmv8LXFXMLtVnDzVROkrLYnLbGaZzbs4qjhW4iqZid06RxfGYQIm5T+btOjVkxvcmo7cio5i6L3+1IlONxUfxy6Wp2Q2eqnTwSn49rtScp7NWpmckuOborGsVVRHNTp7zT7TjsTO+uXi7sdkFOmmEp+Pa9dlZyg8x7lm5g63VWLq+e311zpoJ4FVuzI1ZERyL2vBUUubGMxFd6imqudJmGCzjZbJMPlWKvWsLTFVNFUxPHxTETpO9szJq5OaluVH+sJjr4Rd9Vpr7H/ea+l2zsd+7+D/AAfnLFpYJkAAAFWk/G4fdt8p9jep3PInoblbd+TqX3pvkQ2bTuh+ft37SrplcnpSAAAAAAAa8OX3+muk+CIfryELzj7xHQ6s7l/7Eq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/3/Dfgn+5L8kTRoAAAAIMeqT/lDAfvVZ5YiK53vt+38nRPcm8jGdNH+SFZGXQQBlnkofrEYH/nXfZPMhl/3qjpQjbb93sX+H84bYjYDisAAa9fVEMHvtmZNjxExi+t7nQcw9+m7nYnL/7Xt+Ih+c2+Ddpuc8fJ0/3LMfF7Lb2DmeO3Vr7Ko7YlE4j7dgB73IzM6bKDM6zYkajn00D1iq4m8ZIH7np4UTenfRC7wl+cNei519CM7R5PTn2WXcFPFVMa0zzVRxx2T6pba7HfKHEtnpLrbahlZQVcTZoJ411a9qpqiobCoqprpiqmeKXEOJw13CXqrF+ng10zpMTyTD6Z7UAAAAAAIr8unOinwdgKTBtBOjr3fGbMzWLvhpde2Verb02U720YLNcVFq13qnfV8m4e5xs/Xj8fGZXY/V2t3rq5OrfPsa7FXQhjql2ZFJImrInuTrRu49cGVKbtEOrGulcxsbVe966MYnFyrwQ+acej3VXTTRw5becn8HfeHldhWwVHOPqKOgibJFEqojXqm0/h/Eq8TY2Ho7zZpo5ocKZ9jvGWaYjFxuqqnTo3R8Htmdq1XwOeuz7KF6qvi38F+guWCdah6LsytXVksbm69e7VP6nydz1T5UNNt6Z69uNxjTdUwVEiJr0ptLp8aGuKo1mXeGHqmm3RMc0fJ85sq09tgk0VF57VUXqRV18h5jihWn61UzDtdWbNSx6cHt08af8AU81c6vYnjmFmU14zNyW89Zsk8wYpKuV64buStp7jCm9GJr2syJ1tVfGiqhk8Bi5wt3j8md6AbZbN07Q5fMW4/XUcdE/Onon56Jgcp7lWW7K7D/3Kw1WQ1+KrhDtwuicj2UcTk1SV/fVF1a3xru4yPH5hTYp4Nudap+DROx2xd7OcR4RjaZpsUTx68U1TH8Mernn2b0ZuQzWzV3KMjqqqZ89RPQ1cks0rtXPcqIqqqrxVVMHlUzOK1nmlt7ujW6bezs27caRFVEREckNiuKpGLhq79s38Tm6f4FJjc8iehyvg4nwm1+KPnDTphXFl3wRfKe82Ovlt1zp1Xm6iFdFRFTRUXrRUXgpri3crtVRXROku8MbgcPmVirDYqiKqJ3xL1eSucNzyhzJpMTwySVMb3qy4wudqtTC5dXovW72yL1ohcYXE1Ya7FyPb62F2gyGxnuW1YGqNJjyZ82Y3ezkn1Ng2dXKfw9lvlhSYgtdTDcrjeqfnLPTNXXnNU/5j06Gt6e+mhMMVj7dmzFymdZnc5f2f2PxmbZnVg79M0UWp0uTzackeueT1caB2Q97rsScpTCF1udS+ruFZemTTzyLq573KqqpE8JVNeLoqqnjmXSe0uHtYTZvE4exTwaKbcxERyRDbHqnWhsBxU1A48v8AcMLZ44lu9qqn0dxor9VTQTxrorHJO7T/AKdJrq7XVbxFVdM6TEz83c2W4WzjcksYfEU8Kiq3TEx6uDCe2WXLCwrinKquxJfKqK2Xe0QItxt6L2738GrCi+yR67k6lXResltjMrVyzNyudJjfHY5nzjYPMMHmtGCwtM127k/Vq5Ijl4XNMRv5+RATOHNm75y44rMQ3Z6sR683S0iO1ZTQovasb5VXpVVUiOJv14m5Nyp03kOSYfIMFTg8PG7jmeWqeWZ/Lmh4gtUiAM78iL9Y7DvvNV9i4y2V/eqfb8mtu6H+7t/pp/uhtDXgTpx60t4t/Oy+fz0/2jjWdzy6ul37gfuln8NPyh8kpr5tc5Jf6umB/wCTd9q8n+A+60dDivbb94cX+KPlDKtXRU9W1qTwRTInBJGI7T4zI6RO9C6LldvyJmOhS+4lv/d9L/5DfMeODTzKnhF7z565PuJb/wB30v8A5DfMODTzHhF7z565PuJb/wB30v8A5DfMODTzHhF7z565aweWdBFTcorEscMbImIym0YxqIifgGdCEGzSIjFVaer5OwNgKqqtncPVVOs/W/ulhExbYgAAAAJl+p25cLVXq/43qYtYqWP7nUblTjI7R0ip4G7Kf4lJLk1nWqq9PJxQ0H3VM24FmzldE8dU8OrojijrnWfYmne8V2zDlys1DXVDYKm71K0lI1fbyIxz9PiavjVOsk1Vym3NNNU7+KHPmHwV/FW7t21TrFuOFV6o1iPzWeZGCqXMXAt8w5VonM3GmfCjlT2D9NWO8TkRfEfL1qL1uq3PKucpzC5lWOs423vomJ6Y5Y9scTT3fbLV4bvVfaa+JYa2hnfTzRr7V7XKi+Q1xXTNFU01b4d24bEW8XZoxFqdaaoiY6J41ieFyAAAHV3sF8AG5nL38wcM/BlL9k02TZ+yp6IcD5r9/wAR+Or+6UFfVEtZs2rAkbVkVtoai7Ca6Lz0hFs4iZvU9DovuWV00ZVf1/mf4wikqK1zmuRWubxRegwExo3VTVFUawvKO3+uEjfIjnLK5GRQsTVz3KuiInTxKkUxuhZ3b0xrOukQ225N4JiwBlnhzDrEkpqmiomJKi66OkXtpNy7l7ZymwcPb7zZpt80OH89x/jTM8Ri43VVTp0RxR8Ih4/lRZP3HOrLplFbKxKW6WqpSsjp3r+DqHNarVY5ejtXLovWqalDHYacTa4NM8ccbO7H59ZyDHzexFGtFccGZ5aY1idY5/XDWzf7TVWS9VVlu1NLRVkbljfDK3Zex7eKKnxKQiqmqiqaao0mHW2HxFvFW6b9iqKqKo1iY3TD49LG+n9fI/2TI+PXx3nmI0XddfD0l7vJF3PZq5fyr7KO90aOX/8Ata1S6wvHft9MI7tD9XKMX/Tr+UtupsBxO1LcqP8AWEx18Iu+q019j/vNfS7Z2O/d/B/g/OWLSwTIAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv8ATXSfBEP15CF5x94jodWdy/8AYlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/wCG/BP9yX5ImjQAAAAQY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8AJCsjLoIAyzyUP1iMD/zrvsnmQy/71R0oRtt+72L/AA/nDbEbAcVgADCnKyyndm1lFcKWji5282xfX9CiJ2z3NRdpie6aqp4dDGZhh/CLExG+OOE92JzuMkzeiu5Oluv6tXRO6fZPw1asFarVVrkVrkXRUVN6KQJ2bE68cOA+gGeeTfyq7vkjO21XCOS8YTlftPpEd+EplXi+JV+lq7l7ymXwWYV4WeDVx0/Loaz2s2Kw+0NPhFmeBfjl5KvVV+U749bYTl1nBhDNShbV4bvVPXKqavpdrYni7zo17ZPITCzibWIjW3Vq5ezXIsxyW5NvG2pp9e+meidz3JcsCAAPn3C601sgfJUzNibGmr3PciI1OtVXcnjEzERrL1Rbru1RRbiZmeSOOUa87OXBhvAlPPbsKtTEN+cio2ZqotHCqdLnoq7ap1N3d9DB4rNLdqODa+tPwbZ2d7nmOzOum7mETatc0+VPRHJ0z1Nf2K8V3XHGIa293utkr7nWP5yWaRePUiJ0IibkROCEPuXKrtU11zrMuosFgsPl2HowuFp4NFPFEf8AeXnlZ26nbPM58iIrI010XgqimOV6vVcfBcSXOeV20x/NM6EREVdO/qJqfaLMTGssyckPKeTMnNq21NRCr7JZJWV1ZIqdqrkXSOP/ABO6OpqmRy6x3+/Ezup45QDbrOaMmyiq3RP6y59Wn2759kfGYbRmLs1kqLxc1Fb30Tj/AL75O3Hxwrt3TH23x7v6gWk+60yvT/u1e9vgRy/0Pk7nqnyoabcRudTYjqp4/bSP/wAWjl1T4tDW9XFVMu88NTw7NMeqPks7hVxVUcTYl13q5yaaabv9TzVPEuLVM8LjhSlqnzwQxuYic3p22uqru0PM1awqUWqqatVI8LoAy7yXsrrPnLmtHh/EL6taF1FNOrqWXYk2mI3Z7ZUXdvMjgLFGJvcC5u0QXbHOMTkGVTi8HEcLhRHHGsceuvMmTByBstKJ/OQVWIYJNNNuK4I1dPCjCSxlOHjdM9bQtfdLzu5GldNuY9dP/K6XkM4Bciot3xSqLuVFuy7/AP0n3xVY56utS/SLm0f+K17n/Kx/u+8r/wBu/fLm+gefFGF9fWuf0nZ7zW/dntP7vvK/9u/fLm+gPFGF9fWfpOz3mt+7Pa7ScgXLSVkTZKnEEjYm7EbXXBFRjdVXRO03Jqqr4z74ow88s9anHdMzumZmKbca7/q/8kPIDyzppWSw1GIIpWLq2RlwRrmr1oqM3CMow8cca9b7V3TM8riaaqbcx+H/AJfR/sSYH/fuLfnh3onrxXa86rrWv6Qs0/k2v/8AP/l82XkA5YyyOkkmv73OVXOc6vaqqvSqrsHjxRhvX1ruO6bnlMaRFvT8M9qBObeF6LBGZ+KLBbllWgttdLTQLM7afsNXRNpdE1UimJtxavVUU7ol0rkWMu5jlmHxl7ThV0xM6btZ5nki1Z0AAZ35EX6x2Hfear7Fxlsr+9U+35Nbd0P93b/TT/dDaGvAnTj1pbxb+dl8/np/tHGs7nl1dLv3A/dLP4aflD5JTXza5yS/1dMD/wAm77V5P8B91o6HFe237w4v8UfKHjeWTndinJSzYZqcMT00MtwqJo51qIElRUa1qpprw4qW+ZYq5hqaZt8rO7A7O4DaC9iKMdEzFERMaTpvmUWv7eGbX7wtnzewwHjbFc8dTcv6Ntn/ADKvek/t4ZtfvC2fN7B42xXPHUfo22f8yr3pP7eGbX7wtnzeweNsVzx1H6Ntn/Mq96WG8wMe3fM3FdXiK+yRS3SrRiSvhjSNq7LUamjU4bkQxt69Vfrm5XvlPcryzD5PhKcFhImKKddNZ1njnXe88UWVAAAC4t1uqbvcKWho4XVFXUythhiYmqve5dERPGp6ppmqYpjfKjdu0WLdV25OlNMTMzzRDbpknltBlNlnY8Nw7LpqaFHVUjf+8nd20jvjXRO8iGw8LYpw9mm3H/ZcN7Q5tXneZ3sbVuqni9VMcUR1fFDnlyZv1TM58P26z1KsfhVGVW01dyVTlR/0NRieNSN5riZ7/TTRPk/NvrudZFROTXr2Jp4sRrT/ALY1j4zqm3lvjijzHwNZcSUKotPcKZsytRddh/B7F76ORU8RKLF2L1um5Tyuec2y65lOOu4K7vomY6Y5J9scaD3L9ykXDuNaPG9DDpb7zpDVqxNzKpqblX3bU+NqkWzfD8C5F6ndO/pdE9zLPPCsFVld2fr2uOn10z2T8JhE8j7doA13oiIqqvBETVVPumrzVVFPHLvJBNEzbfE5rNdNV08594MqUXaZnRSd7BfAeVduTwMqrgHC0TVVqyW2lRVTiic01V83jNk2fs6eiHA+a/f8R+Or+6UHPVDKx8GatihgRImMtLU1ROnnZOBF83nS9T0OiO5bb4eV35n+Z/jCKErnyq9z3q9zk01VETyGA11bqijgRMQk1yOsnVzCx/b8SV0Crh+wyNm2np2stQqaxNTr0Xevi6zOZbhu/Xe+VeTT82oNvc/pyvATg7M/rb0adFPLPt3R7eZsZq1RvMu4OSRNP6/RqTJyy8xgnH1hzDbcaiw3GKvhpZlpahGLvZI1zmqip1KiIqLwVN6FG1et3omaJ10ZLMMrxeWV028XbmmaoiqPXE/94+aWIuU7yaaLOjDsd0tbY6PGFD2kNT7FKlEXTm5F8KJo7o8Bj8dgYxNPCp4qo+KbbIbW3MhvxYxEzVh6p4482eePzjl6Wuq+09VZJ6613SllobtTuWnnppWK17XJx1QhlUTRrTVGkw6qsXLeJopvWZiqmqNYmN0w9HkVM/svYMpkaipJeaXRyr7HWRqFbCT+vtx64YzaW3M5RjKo/l1/KW35NURNV1XpU2G4gal+VH+sJjr4Rd9Vpr7H/ea+l2zsd+7+D/B+csWlgmQAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/ALEq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/wB/w34J/uS/JE0aAAAACDHqk/5QwH71WeWIiud77ft/J0T3JvIxnTR/khWRl0EAZZ5KH6xGB/5132TzIZf96o6UI22/d7F/h/OG2I2A4rAAADXvy0eTPPhO71WPMNUivsVY9ZLjTQt/E5VXfIiJ7Ry/Eq9SkQzPAzbqm9bjinf6nTvc/wBrqcbZpynG1fraeKiZ/ijm6Y+MImEebuAAFWjrp6CqZPSTy01SxdWyQPVsjV7ypvQ9RrTOsKF2m1cpmi7ETE8k8cMoYf5Uea+FYo2U2L7k+FqaNZXtSoaif/2Iq/SX9ONxVviiufmh2J2R2extU8PDUxP+nWn5TD2VBy4M259uJ16oNWoio5bbFqpcxmmJnljqR+93O8girit1R/vl8m58tbN65w80mI4qJy9rrS0UTF14cVaqlOrM8VVPlaeyF7Z2A2ds08PvE1dNVU/mx/jPMrFOKFbHeMQXC6Pdq93rqoc9qd9G66Iq+AtLt+7c8uqZSfL8owGB4sJZpo6IjXr3vHyPklc1XyOfpw1LWZ1Z+m3FM6w4PiqvbVIjZZIne3TVO/pxKlPMsr8cer6GFMDXvGWJKKwWWglr6+qejImxN1TTpc5ehqJvVV4Hu3aqu1xTRGsytMXmeGy3C1YnFVcGmmOOfyjnmeSG0jIjJuhyYwNTYehaySpqG8/W1fB0827aVepE1REToRO+pPMJhqcLbiiN/K412lz+9tFj6sVc4qY4qY5qe2d8slvR2yjJ4nS7PsZI+PnRfAXqLOGMcrVZFGsDXeykeurl8H+oFWaNraOSNE0YjFTTvaHydz1T5UNKt1aiXat4qqTSJqq6r7JTWdU/Wl+gGHppptUaRyR8lqeFyAAGugGQci83pcksdsxNBbo7rI2mkpvW8kqxp2+m/VEXhoXmExM4W53yI1RfaPI6docDOBqucCNYnXTXd1JG/wB5Pcu4ek+cHegZjx1PmfFqr9E9j0ufdjtP7ye5dw9J84O9AeOp8z4n6J7Hpc+7Haf3k9y7h6T5wd6A8dT5nxP0T2PS592O0/vJ7l3D0nzg70B46nzPifonselz7sdp/eT3LuHpPnB3oDx1PmfE/RPY9Ln3Y7T+8nuXcPSfODvQHjqfM+J+iex6XPux2n95Pcu4ek+cHegPHU+Z8T9E9j0ufdjtP7ye5dw9J84O9AeOp8z4n6J7Hpc+7HaijmDjB2P8c33EklO2jfdKt9U6na/aSNXLroi7tTA3rnfrlVzTTVunK8DGWYGzgoq4UW6Yp159HnyiygAAzvyIv1jsO+81X2LjLZX96p9vya27of7u3+mn+6G0NeBOnHrS3i387L5/PT/aONZ3PLq6XfuB+6Wfw0/KHySmvm1zkl/q6YH/AJN32ryf4D7rR0OK9tv3hxf4o+UMIeqSfm5gf+bqfqMMXnPkUdMtidyf7zi/w0/OUEiKOkAAAAAAAACXfILyPdf8QyZgXan/AOz7Y5Yra2RN0tRp20id5iLu7694kWU4Xh1d/qjijd0tGd0raKMNh4yjD1fXr46/VTyR/u+XSm1j/GlFl9gu74iuLmpS26ndMqKum25E7Vqd9ztETwkovXYs25uVcjnnLMvu5pjLWCs+VXMR0c8+yONp+xRiOsxfiS53u4SLJW3CofUyuX9py66eBOHiNc3K5uVzXVvl3Zg8JbwOGt4WzGlNEREexL71PvOKKjmuWX9zqUYyVVrrYsjvbafhY08KaORO84keT4nTWxV0w0T3Ucj4VNvOLMbvq1/4z+XUlZm5gS2ZsZfXfDVcjmsq415mo5py8zMm9j03dC6eLUkOIsU4i1NurlaTyPNruSZhax1r+GeOOeJ3x7Yalb/hquwxiassVzjWlraOZ0E7V36Obu+JeKL1Ka8rt1W6poq3w7ew+NtYzDUYvDzrRXETE9L508PreofHqrkTRUVelNP+p4qjSV3aqmqONd0+lFQeuEajpZOCr0a8POVI4oWlUzcrWks807Va+VyovFNyIU+FK6izTCk72C+A8q7clgZebwHhSVfYst1Ltd5FhamvkNk2fs6eiHA+a/f8R+Or+6UHPVEaSRM2bHIxivY60tXtd6ovOvIvnEa3aeh0V3LLkU5Xfif5n+MMG5R5NYhzixTT2m1U6w06Oa6rrZW/g6aJXaK53f6k4qpi8Pha8TVwKf8A6bEz3aLCZDhpxN+eP+Gnlqnmj855G0vLvLq15VYPosN2Wn2rbTs0VXac5I9fZPcq8VVd5PbFmjD24t0bocaZrmmIznGV43EzrVV1RHJEeqGJ+VznlT5SYDlt1u20xNeY3QUqOd20ES7pJd6qqaIuiadK94x2Y4uMPa4NM/Wn/uqabC7OVZ5j4vXaf1NqYmfXPJT+c+rpQSyWzpvmS2NI75bpHVEErkbX0TnaMqotd6L1OTii9C+MieGxVeGucOndyxzuls+2dwmf4KcLfjSqOOmrlpns545W0vLzGdhzPwtRYkscramjq27Wjl7aJ/tmOb7VyLuVCe2b1F+iLlE8UuNM1yvE5Pi68HiqdKqeqY5Jj1Swryt+TBDmvaJcSYep2x4voo9XRsTT1/GiewX+NPar4urTFZjgIxFPfLflR8WxNh9sKskvRgsZVrh6p9yZ5ejnj2oNZIQSU2eGCYZo3RSx3ylY+N6aOa5JWoqKnQpFsJGmIoieeHRm0VVNeSYuqmdYm3V/bLb8bEcNNS3Kj/WEx18Iu+q019j/ALzX0u2djv3fwf4Pzli0sEyAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/9iVf1KvlSjWYNt8An56nB+YOLPhNn2SEuyX7Ovpczd1f7/hvwT/cl+SJo0AAAAEGPVJ/yhgP3qs8sRFc732/b+TonuTeRjOmj/JCsjLoIAyzyUP1iMD/AM677J5kMv8AvVHShG237vYv8P5w2xGwHFYAAAWFfFSVdM+krEilhnasb4ZURWvaqaKiovFFExExpL7RXVbqiuidJjjiY5EHOUTyHKu31FViHLmBaqicqyTWLX8JF0qsKr7Jv8PFOjUimNyqaZm5h93N2Oj9le6Nbu004POZ0q3Rc5J/FzT693PoiFLap6WaZlax9A+F6skjmYrJGqnFNF3opHuBNM6VN2xiabkRVZmJid0xxwtJObSVWxPdIzRF1cmi6/Eh5mI5Fe3VVOsVL+mlWK0vdEjWyR6ou7qXzFSJ4tVnVGlWjtQzurYJ2Tqj2Ju2tNPD8Qidd77XTFM6RKztkvN1UKr7dNlfH/qh5p4p0V7sa0RVLitYsNXKiJv2kkb5fLqfJ4p1Lf1rc0ryshWuiing7ZdPY68U86HuY1hRt18CeNaNoKiRF7Tm0ROL/MeIp51eq9Gn1VOm5mR6LM9WRq3VNOlRERyvtyqrSJpe+ymyLxdnNdUp8PW6RaNkipLc6lFjp4W68Vf0r/Cmql1h8JdxNWluOLn5EbzraLLsiw/Cx9f1uSmOOqfZ+c8TY5kZyeLNknZFipZ/X96qGolXdJYmpI/+Fn7Le909OpNMJg6MLTxcc8suUto9qMXtDe1ufVtU+TRG6PXPPPr6mWoqdsbtrVXv4bb11X/Qv0OVQAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAJDchvC1oxbnDVUV6tdJdqNLVNIkFZC2ViOR8aIuipprvX4zMZVbouX5iuNY0as7ouMxOByem7hbk0VcOI1iZidNJ5k+ewXl53D4f+b4vRJb4Lh/Mjqc1fSTOfS7nvT2nYLy87h8P/N8XojwXD+ZHUfSTOfS7nvT2nYLy87h8P/N8XojwXD+ZHUfSTOfS7nvT2nYLy87h8P8AzfF6I8Fw/mR1H0kzn0u5709p2C8vO4fD/wA3xeiPBcP5kdR9JM59Lue9PadgvLzuHw/83xeiPBcP5kdR9JM59Lue9PadgvLzuHw/83xeiPBcP5kdR9JM59Lue9PadgvLzuHw/wDN8XojwXD+ZHUfSTOfS7nvT2nYLy87h8P/ADfF6I8Fw/mR1H0kzn0u5709p2C8vO4fD/zfF6I8Fw/mR1H0kzn0u5709rWZylrRRWDPXGFvt1LDQ0MFUjYqenYjI405tq6I1NycSEY6mmjE100xpGrrnZG/dxORYW9eqmqqaeOZnWZ455WMyxS8AzvyIv1jsO+81X2LjLZX96p9vya27of7u3+mn+6G0NeBOnHrS3i387L5/PT/AGjjWdzy6ul37gfuln8NPyh8kpr5tc5Jf6umB/5N32ryf4D7rR0OK9tv3hxf4o+UMIeqSfm5gf8Am6n6jDF5z5FHTLYncn+84v8ADT85QSIo6QAAAAAAAZAyRyguWdGN6Wy0mtPQMVJa+udubTw67190vBE6V8ZeYTDVYq5FFO7lRbaPP7Gz2BqxV3jqnipp86eyOX1NruEcM2zBuGrdZLNA2ntlFC2KCNvQ1OletVXVVXpVVNg27dNqiKKI4ocUY3GX8wxNeKxFWtdc6zP/AH4IV8vPOVcQXeny7s9QnragclVdpWru53TtIl9yi7S99U6iMZtieHMWKeTe3/3N8inC2qs4v0/Wq4qOjln27o9XShzUNgj2OandK7XR2qbvEuhHJiORvaiuuauPc+9gDElZg7E9HeLa/mbhQzMqYZNN+rV0VF7ypuXvKVbNyq1VFdO+FhmWDs46zXhr0a0VxMT7W1/KrMajzRwbZ8RUEzXMrWLz1OnGCVu57F8DkVN/WimwbF6m/bi5TyuJc3yu7k+NuYK9vpninnjkn2wjXy4sgXXq3y5h4fptuttujblBGm+WFNFbLp0qxdUX+HwGDzTCcL9fRHHG/tbb7nW00YeqcmxdX1Kp1omeSrlp9vJ6+lCC6tRXwzN4Pbs6/Sn9SLVOi7M6VaO1O1K22rAiokke5Ne9wPUccPE60VrZKGpc7Z5lUXrVU0PHBlcd/p0UJI+akfHI7c1URzmp0DSIkiuqqjWN7cjluu1gewNarpIPuZS6K/r5pNU76cDY1n7Onohwfmn3+/8Ajq/ulGHlKZSz5vcpHDOG6e809ohWyLPI6o7aRWNmftJC1fZO06OrVegwmNseE4um3rpxfm3BsjnNOQ7N4jGzbmue+aREbtZpjThTyR/9JI5a5U2DKzDsFostKscLFR8ksm98z+l716V8nQZuzZow9HAtw1Nm2b4vOsROJxdes8kckRzRHItM5c5bDkrhGa8XiZHzORWUlCxyc7VSabmtTq614IhSxOJowtHDr9kc67yDIMXtDi4w2Gji/iq5KY55/KOVquzKzFvGamMK7EV7n52sqXdrG1e0hjT2MbE6Gonn6SBX71eIuTcr3y7OyjKsNkuDowWFjSmnrmeWZ9cvMFBmWa+S7yhKrI/GLY6yR82Fbi9rK+nTfzS8EmYn7TenrTxGUwGMnC3OPyZ39rXu2Oy9vaLB8K3Gl+jyZ5/9M+qeTmltCoK+mu1DBW0c7KmlnjbLFNGurXsVNUVF6lTQnkTFUaxucc3bVdmuq1cjSqJ0mJ5JhD/lDZc4Xw5ykstsQ2ytp6W+3W90y11pYnbSIkjdKjRPY68F14rvTpI3jLNujF2rlM8czGsfm3rstmuPxezePwd+iZtW7dXBr5uKfq+vnjm3cyZxJGh2pblR/rCY6+EXfVaa+x/3mvpds7Hfu/g/wfnLFpYJkAAAFWk/G4fdt8p9jep3PInoblbd+TqX3pvkQ2bTuh+ft37SrplcnpSAAAAAAAa8OX3+muk+CIfryELzj7xHQ6s7l/7Eq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/3/AA34J/uS/JE0aAAAACPHKn5Nl0z/AKjDstuvFJaktbJ2vSqje7b21Zpps9WyvxmHx+Bqxk0zTOmjZuxm1tjZem/F61NffODumI0015+lgj+7fxT3Y2j5PKYnxNc8+Gy/0r4H0Wvrg/u38U92No+TyjxNc8+D9K+B9Fr64exyc5Dl/wAsszrBiirxNba2nts6zPhhhka96KxzdEVd3ti6w2VV2L1NyaonRH8/7o2DzfLL2Bt4eqma401mY0jjiUzSSNDur3tjYrnLo1E1VQLd882ztaRwt6OdXevmA7PqVWjbMxE1ciLv4Jr5gKTGxTRzxMfzkqp20nWvR8WgFzBJz0LH8NpqKBi7MnIXBWbVrp1xDaIlqGtTWup05upRdNNEem9d68F1Qs72Es4jy6ePn5UlynaTM8kq1wd6Yp82eOnqn8tEZMeep31EMU1Vg7ErZWx6qtHeGK1yd7baiov+VDB3cm5bVXW3DlndUo4qcxsTrz0Tr8J7WI7jySc1cLVE0U+F5LhE9NpH26Vk6O6F3Iu11dBjasuxVvfRr0J5Z23yDGTrTiYpn/VEx+WnxY/vGXGN7ftw1mErzRxtVWq1bfKiLov7WyWddi9TvonqSTD5rld+OFRiaJ/3U9r4UmGb1CqKtor2Oau0iOpZE4eIpRbr5pZarF4aumYi7T1x2r+bCV9us8S0dhutQqtVF2KGXxe18J7m1XO6mepZ0Y/C2p1uXaY/3R2vR2Hk/wCZ95f/ANnYMvaI7i6WldEz/wD6aIVqMJiat1EsZitpMisTrdxdHsqiflqynhbkG5nYlVi3me32CnXilTPzr9PcxaovjVC/oynE1+VpCG43uj5FhYmMPwrs+qNI650+SQeW/IHwNhOSGqxBPU4srWaLzc/4GmRfe2rqvjcqd4y9nKbNvjufWn4NY5t3S81xsTbwcRZp9XHV1zu9kJI2q1UdjoIaK3UkNFSQpsx09PGjGMTqRE3IZqmmKY0pjSGp7167iLk3b1U1VTvmZ1l9A9KQAAAUqj8Xl9yvkPk7nqnyoaVLt+Vq73+T6ymsqvKl+gVj7Kjoj5LQ8q4AA9dlhmpf8oMRvveG5oIa98DqZXVEKSt2HKiruXp7VC5sYivDV8O3vYLOMlwme4eMLjYmaYnXinTjj/7ZY/t4ZtfvC2fNzC/8bYrnjqQr9G2z/mVe9L1OWvKiz4zaxNHY8Oy2yqrHNWR730DGxQsTi57uhOjwqXFjH43EV8C3pr0MLm+x2yeSYacVjYqind5U6zPNEcr5OKOWLndgy+1VmvbqG33GlfsSwTW5iKnfTrRehU3KU7mZYy1VNFfFMepeYPYPZfMLFOJwvCqoq3TFc/8AfY+Z/bwza/eFs+bmFPxtiueOpffo22f8yr3pSn5G+dmJ86MPYkrMUT0081DVxRQrTwJEiNcxVXVE470M/luKuYqmqbnI0xt7s9gdn8RYt4GJiK6ZmdZ13SyByiscXTLfJ7EOI7JJFFc6JkboXzRpI1FdKxq6tXjuVS9xl2qxYquUb4RjZXLsPm2cWMHiomaKtddJ03RM70GP7eGbX7wtnzcwifjbFc8dTo79G2z/AJlXvS9xllyhOUNm7FdnYYba61ttiSWVXUUbEcqruY1VXRXrvXTvF3YxmPxOve9J09SN5xsvsdkU2ox3Cp75OkfWmfbPq9byV45bGdFguM9vuclHb66B2xLT1Nrax7F76KW9WaYuieDVxT0M7Y7n2zOKtxesRNVM7piuZiVp/bwza/eFs+bmHjxtiueOpX/Rts/5lXvSwpjTGFyx9im44hvD45LlXyc7O6JiMartETc1OG5EMZduVXq5uV75bBy/AWMswtGDw0aUURpGvH8XxCkyIBnfkRfrHYd95qvsXGWyv71T7fk1t3Q/3dv9NP8AdDaGvAnTj1pbxb+dl8/np/tHGs7nl1dLv3A/dLP4aflD5JTXza5yS/1dMD/ybvtXk/wH3WjocV7bfvDi/wAUfKGEPVJPzcwP/N1P1GGLznyKOmWxO5P95xf4afnKCRFHSAAAAAK0FJLUNV7dlkae3evHwHuKdVtXeiJ0h6TLfLK/Zq4ugw9YKZKqqe78JOifgoY+mR69CJ9PBCtZw9d+uKKIYrM86wmT4SrGYurSmN0cszzR62z3IzKGxZLYSpLPb9J62bSSqq3N0fNLpvcvVpwROhPGTrC4ajC2+BT7Z53HG0Gf4naHGTir/FEcVNPJTHN0888r4/KNz4o8jcCVMkT2S4hq1fDbaVd67Spqsjk/Zbr410TpKeOxcYW3r/FO5k9kdm7m0WOiiqNLNHHXPq5o9c/LjaxX1dVfJLlV1dQ+euq5XSzTyLq57naKqqvWqqpBdZq1md7r7vVFiItWo0ppjSIjkiFtDS0lTtRxSSc4iao5eC9/ThoNIniVOHXHHKhRvWGsj2ty7Sxu8nl0PMcU6Ktz69EVJJckjPxcr8cLhm6ztpsNXp7dqZf/AMeoXc2TqRrtzXeJegzWXYzvFzvdc/Vn4S1PtzszOc4OcZhqdb1qPep5Y6Y3x7YbGXUsM1I6FzWywParXNcm0jkVN+vXqTPe5YiaqZiY4phre5WnJ1lyqrn3qy00kmF6mdNlGMVUopNrcxy/sqnsV8XhhmY4KbE98oj6s/B1TsRtZGc26cJiatL9Ee/Ecsevn60cWucxyOY5WOTpapg4nRt6qiK96o6rqHt0dO7TvIieQ9cKVKLNKgqIjHadR4V4iIjSG5nL38wcM/BlL9k02TZ+yp6IcEZr9/xH46v7pQi5fN7r8N534TutsqpKK4UdrZLBPEujmOSaRUVCMZvXVRiKKqZ0mI/N0L3MsPaxeSYmxfp4VFVcxMTyxwYZBovVAbBS5VU1wqaJ9TjbRYJLVG1WxLIif85X8EjXjom/XVO+XsZvRFmKpj6/Mi9zuYYurNarNFemG3xVy6ebpzxz7uX1IW5j5mYgzWxNPe8RVrqqrf2scabooGdDI2+1RPp6SMX79zEV8O5PG6BynKMHkmGjC4OjSmN/PM88zyy8sW7NAACTGRPLIrspcs7rhyupZLvU0zdbG569pErl7Zki8dhvsk076bujOYTMpw9mbdUa8zUO0mwVrO8zt421VwKavtOedN0x653T1sb5bYsu2OuUVhK93ytkr7nV32lfLNIv/wC1uiInQicEROBZWLlV3FUV1zrMzCWZtgcPluzuJwuFo4NFNurSPZPx55bazYLiZqW5Uf6wmOvhF31Wmvsf95r6XbOx37v4P8H5yxaWCZAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kvyRNGgAAAAAWy1Tno5Y4u1RVRXyORqbl0XrUC2krmquytSiu/Yp2bS/HvA7o1EjjqNiRjmvTXnVVV0Xd/XXxAX4FCq7Z0DV4LImviRV8qIBbPavrmR0kkUe0ujFemqqmicOreBcRcXU8rWcNU2U0RydO4BIiRVEDkTRqoseifGnkX4wOaXtFlj/AGHrp4F3/wBfoAoyI2Fr4pHKyJXbTJOhq666L4wOu0krJY45Enkl3OexO1ammnkAuZoXOWN0bka5i8XJqmmn/QDmCFYUdq7bVztpV00A7LGi8URfEH3V2RETgmgfHIAAAAAAAAClUfi8vuV8h8nc9U+VDSpdvytXe/yfWU1lV5Uv0CsfZUdEfJaHlXAAAD32T2SeJc6sQNt9ipVbTMcnrq4zIqQUzety9K9TU3qXmGwtzFVcGiPajGfbQ4HZ7D9+xVX1p8mmN9XR6ued0NmuTGSeH8kcLstNnh52ok0fWV8qJztS/Tiq9CJ0NTcn0k3w2FowtHBo9s87kHaDaHGbRYqcRiZ0iPJpjdTHbzzyo/8AqgV3wMzDtDQVtKyqxy5UdRy07kbJTw69ssq9LF3ojV6d6aaKYnOKrPBimY+vyNn9zCxms4iu7bq0wv8AFE7pq5OD645Z5uKUDCJOlk8/U3fzQxl/PwfZqSzJfIudMOau6x98wv4avmy9yx/1ccYe9Q/bxmQzH7rX/wB5UH2D/eLC9M/2y1XEDdmtofJFnwLT5UW+24MukNfNE1JblqmxULUORNpz2LvROhOjRE0UneXTZizEWZ15+fVxxt1Rm1Wa138ytzTE8VHLTwY3aTu9c8ur1WceQWE867SsF7okiuEbVSnulOiNqIV6N/tm/wAK7vAV8Rg7WJp0rjj5+Vhsh2mzDZ67w8LXrRO+mfJnsn1w1xZ48nvE2Rt35u5xevbPO5UpbtTtXmpf4XfsP/hXxakMxWDuYWr63HHO6u2d2pwO0dnhWJ4NyPKonfHRzx6+ti8sEyX9isFyxRdYLZaKGe5XGdVSKlpmK+R+iKq6InHciqe6KKrlXBojWVricVYwdqb+IriiiN8zOkQ9l/Z7zO7gr/8AIX+YufA8R/LnqYH6UZH6Zb96GZOSLlBjfCOe9jud7wpd7VbooqhJKqqpHMjaqxORNVVOldxksuw163iaaq6JiONAduc9yvHZFesYbE0V1zNOkRVEz5UNiq8CZOWmpjE2QWZFViW7zw4Gv0sMlZM9j20L1RzVeqoqbuo19cweImuZiid/M7Xwe02SUYa1TVjLcTFMfxRzQ+b/AGe8zu4K/wDyF/mPHgeI/lz1Lz6UZH6Zb96GyXkz2W4YbyKwjbLrRzW+4U1K5s1LUMVkka849dFReG5UJtgaaqMPRTVGkuStrsRZxee4m/h64qoqq4pjjieKGIuXtgPEePLDhGHDtjrr3LT1U75mUMDpVjRWNRFXThroY3N7Vy7TRFumZ3pz3NMzwWW38TVjL1NuKop04U6a8cobN5PmZz5FY3Ad+2kRFXao3Jonxd4jcYLEfy56m+atqsjp/wD27fvQ7LyfsxIl/DYRvLF/ZjonuXyf0PXgV/8Alz1KM7V5NO7F2/ehcQcnnMGoZI1MBYi9juklonp8Saf0PXgd/wDlz1KM7T5PO/GW/eh8usyOzDt1umr6vBV7pqSCN0s08tE9rI2NTVXKum5EQpThL9MTM0Tp0MnZ2lya/VTbt4uiapnSIiqNZmeR4eRdGOVOKIpawkVXFTMsr5V5B4lzqu0FJaY0o7LT6JV3WoaqQw8NyftO6mp49EMlhsHcxVWlO7nQPPNpcFs7a75fnWufJojfPZHrlsZydybw9kjh2K12OBkqTqi1Fye1OeqJP2nr1dSJuQmWGw9vDUcGjr53Kue5/jNoMTN/F1cUeTTG6mPV+c75XOceathyawbU328SozZdrTUkaoktVNx2GJ5V4Im8+4jEUYajh1//AGp5JkmLz7FRhcLHTPJTHPP5RytX+cOY13zUxrPiK8S7UtQmxFC1fwcEbfYsYnUmvjXVSC4m9XiK5uVuxcgyrD5LhYweGjijfPLM8sz/AN4nj6GqSkmVXa829NHadHUpbUzpxM7eomfrQrQpS0UqytqElREVGRs3qh74o41vrVXEUrJyuernLue5yu8C66lPXj1XkUfU4LvPPJUyI+RW6omiI1NBM6lu3wOPVPnkXcpuPFNBTYDxRVol6pWbNtrJnfjcSJujVV9u1OHWnfTfLMsx3fIixcnjjd63NXdA2QnBXKs2wFP6ury4j+Gefonl5p9SVl8slBiO01VsudLHXW+qYsU1PK3aZI1eKKhn66aa6ZpqjWJaWw+Iu4S7TiLFU010zrExviWuLlMckm6ZR1dRfcPxzXXCD3K7VE2paHX2snW3qf8AH34Zjsuqw88O3x0/J1fsjtvYzyinC4yYoxEdVfrj188dSOhhW1XV3sF8AG5nL38wcM/BlL9k02TZ+yp6IcD5r9/xH46v7pQW9UW/Szh/4Hb9tIRXOPtqeh0d3Kv2Vf8A6n+MIomAbqAAABroA1QD3uQcMk+duBWRMWR/3ZpnbLU1XRJEVV+JFUu8HGuIt9MIztNVFOSYyap/8dXybfjYrhpqW5Uf6wmOvhF31Wmvsf8Aea+l2zsd+7+D/B+csWlgmQAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/sSr+pV8qUazBtvgE/PU4PzBxZ8Js+yQl2S/Z19Lmbur/f8N+Cf7kvyRNGuNpNrTVNeOgFvPVbEzIY9l0jteK8N2oFFLg9WJtNZEu9u093FUXRdETeBw2ma2BkjNt8iJsuftKxXd9dd/QB2t8qc7NHtN112kRr1cnBEXeBQqadq1r0bTLUKrUdortGtVVXVQOyJMnac7DTf/rgZtOARu24pIo0lnWRm1tyu0TTvdQF9TSrNTxvVNFcm/UDipY58WrE1e1Uc1OtU6P6AUJGrUo6SFGvbIzm3I5dNnj5+AFRi87Ut2V2kiYrXO61XTd9AFSoiWWPRqojkVHIq9aLqBxDC9sr5HvRznIiaNbom7XzgVgAAAAAAAAAAAAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAMmcnfBOFcw8z7dYsXXOe20NTuhSHRvriXVNmJXr7Da379N67t2pfYK1avXoouzpCIbVZjmGV5ZcxWXW4rqp368kctWnLp/y2o4TwhZ8D2Oms9it8Frt8CaMggbonfVV4qq9KrvUn1u3Rap4FEaQ4wxuOxOY36sTi65rrnln/ALxR6mHeUlyqLPkrb5bZbnxXXGEzPwVGi6spdeD5tOHebxXvJvMbjcfRhY4NPHV8ulPNk9jMTtBci/eiaMPG+eWr1U/nO6OlrWxNiW6YwvlbeLxWSV1yrJFkmnlXVXL/AEROCIm5EITcrqu1TXXOsy62weDsYCxRhsNTwaKY0iIS/wAvuQphfMjL+wYkosWXOjW50UdQ+J0McrWPVO3anDcjtU8RIrOVWr9qm5FcxrDRWZ90jH5TmF7BXcNTVwKpjXWY1jk5+RJLIHIW2ZB4errbQXCouk1bOk89TUNRmqo3ZaiNTgiJr0rxM3hMHThKJppnXVqXabaa/tNiKL96iKIojSIjj9c8b4XLTuMNDydcTtmejXVC08EaKvsnLMxdE8SKviKWZ1RGFq19XzZTuf2qrm0WHmmPJ4Uz0cGWrkgbsd9jCeL7zga+U94sNxntlxgXVk8DtF8CpwVF6UXcpUt3K7VXDonSVhjcDhsxsVYbF0RXRPJP/eKfW2HcmjldWzN1kFgxAsVpxa1ujW67MNdp0x68HdbPi16JlgcxpxH1LnFV83LG12wt/I5nF4PWvD/Gnp549fWzzinDlqxbYay1XyjhrrZURq2eGdEVqp197Tjr0GWuUU3KZprjWGtsHi8Rgb9OIwtU010zxTG//vqahcy7dYLTj2+UWFqqatsEFU+Oknn0Vz2ounFOKa66L0poprq/Fum7VFqdaXc+UXcZfwFm7j6YpuzETVEc/bzxySyHyOP1jsIe7n+wkLzLfvVHt+SMbefu7iein+6G1MnrjMA4VyN01VE13JqBRq6ptJEr10VehqrpqBRdWyxPex8bNW6Lt7WjURd2/wAYHWOJlVzj3OWR+qOarEVEb3mqu7o+kCnFKkVZHtK1u0itVFlV7t+mmvUBUucLXLC5Y3SqrtnYaum0miroBSayWFE2WU9Ei9fbOA5jk5qZHLJPUSa7GipstRV7wHlM3HO7EGPI3N2VbaaxdEXVN8Ll4+MtMV9jX0T8mf2f/a+E/qUf3Q1C0sjIZ4ZJIW1EbHtc6F6qjZERd7VVN+i8NxruJ0nV3TcpmumaYnSZ5eb1tsmQeL8N46ytslbhSlp7fSU7UjfbYURvreREVHsVE6d+uvTqi9JsTCXbd2zFVqNI5uZw7tLgMdl+aXbOYVTXXrrwp/ijkn/jk3LDPHP/AA7kfh5XXOZtVeqhyvpbRTPRZX79UV37LN29y+LU8YrGW8LTrVv5lzs7sxjtor/AsRwbceVXO6Ojnn1dbWzmvm1iHOPFEt6xBVc4/e2npY9Uhpo9dzGJ5V4r0kGxGIuYmvh1y68yXI8HkOFjC4SnTnnlqnnn/vE8hJPLNFFG/Z2Y9NFRN67tCjNWvEy9Frgzrq6HhcgAABVpaqahqoammlfT1EL0kjljcrXMci6oqKnBUU+xMxOsKddFN2maK41ieKYnlbAuS/yx6PHEFJhfGtSyhxG1EjprhIqNiruhEcvBsn0O6N+4l+AzKLsRbvTpVz8//LmDbHYO5l1VWPyynhWd808tPRz0/GOhKitSnWll9dc2tNsLznO6bGzpv2td2mnWSCdNONpmjh8OOBv5NN+vqaluUDdcHXfNG7y4FtzLfY2v5tFicvNzyIq7cjG+1aq8ETq13a6GvMZVaqvTNmNIdu7L2cysZXapzWvhXd/HviOSJnlmOWWN3ewXwFkljczl7+YOGfgyl+yabJs/ZU9EOB81+/4j8dX90oLeqLfpZw/8Dt+2kIrnH21PQ6O7lX7Kv/1P8YRRMA3UAAAGf+ROlhuGcC2PENpoLtS3WikjiZXQNlRkzNHordpF0VUa5DL5XwKr/AuRExMcrWHdD8LtZR4Xg7lVFVuqJngzMcU8XJ65hPibk+ZaVGu3gWwrr1ULG+RCWTg8PP8A446nNVO1Gd0bsZc96V1hnJTAmC7s26WPCdrttxaio2pp6dEe1F3LovR4j3bwtm1VwqKIiVDGbQZtmFrvGKxNVdHNM8T2FVUw0NNLUzyNhhiar5HvXRGtRNVVV6kQupmIjWWApoqrqiiiNZnihp8zexXFjjNHFV+p11pq+4zTQr1x7So1fiRDXGJuRdvVVxyy7tyLBVZdleHwle+iiInp04/i8iWzOgAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f8AsSr+pV8qUazBtvm9VRETVVXRE759iNXiqqKY1lPr1OyKenwHilrnRRbVzZptLqv/ACk6NxLsmjS3X0uZO6pXw8fhvwT/AHJZSL26scs9Q5OLWJstTx7vKSFpIi2GrDKyJIu3WN6Jx6t/jRAOahrmVbUjj29vt1TXTRUVN/xLoBRrkSGpjes2yjVVWsjRNvfxXf3wKj380zm5FjYjt+kzlkcviA7xtVKiner3Oa5HNRFbs6Lx4adSKB2rKfbkZLpttai7TEdptIBQpUZAj540VIEbpGipoq69X0IAcyJqPbtuo1emjmu02V8C+ZQK8Ej1nRiSskjazVdhumnV0+EC7ApPpYZHK50bVcvFdOIFRrUY1GtRGtTgiJuA5AAAAAAAAAAAAAAAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAO0cj4ZGSRvdHIxUc17V0VqpwVF6xueZiKommqNYlJq4cvHGUuWNBYKOBlNiFkawVV/c7ae9ibmuY3TRHqnFy6796IZ2c2u95iiPK52oLXc1y2nM68ZdnWzM6xb5InliZ5Y5o60aa2tqLlVzVVXPJU1Uz1fLNM5XPe5eKqq71UwczNU6y27bt0WqIt24iKY4oiN0KJ8VEssgOWpbco8s7fhe62Gvuc1FJLzc9NKxrebc5XI3R2/cqqSHB5nTh7MW6qZnRpHafufX88zOvH4e9TRFURrExO+I05GQqj1SHD7YVWDBt0fN0NkqY2p8aIvkLyc6t8lEovT3J8ZM8eKp06JRpz85SuIs+KmnhrIIrVZKR6yU9up3K5NvTTbe5fZO03JuRE1XcYTF465i5iJ4ojkba2Z2QwezVNVVuZru1cU1Tzc0RyQxCY1PACpT1EtJURzwSPhmicj2SRuVrmuTeioqcFPsTMTrDxXRTcpmiuNYnfCR165a+Jb/AJIz4SqmSffJOqUs16Y5EWWl07bVOiRfYqqcUVV4maqzS5Xh+9T5XP6mqMP3PcFhs7jMbc/qY+tFHNXyf7Y3xHP6kbTCNtL6y3244aukFytNdPbrhAqrFU00iskZqmi6OTem5VQ90V1UTwqZ0la4nDWcXamziKIqonfExrE+x7SLOzM2WNH/AH8X2ONU12n3KTh4lLvwnEefPWjc5DknJgrfux2Krs68w4kasmPMRzK7ejYq6Xf8S/1PvhOI8+etSnZ/J5//AFLfux2OFzrx/LHM1uLb9FM1qOa59werl6t+q9KH3wrEefPW8fR3J/RLfux2LNmfOYqyRv8Av1v0qr2uytwk3ovRxPEYvEa+XPWvLmzeS8HWMHb92Oxe1udeYbqJNvG96g7VGu1r5FXdvREXU9+FYjz561n9Hcn9Et+7HY5iz2zDSNJvv2vuw5NEfUXJ6J/lRdB4ViPPnrPo7k/olv3Y7FObO3MJ9FI6PHF9RrNF0ZVyMbuXXr/qJxWI8+et9jZ3JtePCW/djsWcueuY0rURcc3/AHLqn/aEnnKcYvEefPWvqtmcmmNIwdv3Y7F1T5149qZ43w4yv8eyusiLXyabuG/XiVPCsRP8c9aynZzKKeKcJb92Ox37PeOZp1f9+t+he1dGyJXSaOT4z54Xf8+es+jWUaa+B2/djsWV1zgx1V26oppsd3ispqpropYH1r3MlY5NHNVFdvRUPlWJvVRx1zp0q9jIsqtXKarWFoiqJ1iYpjWJjleHLFLWQsqc88T5OR3dmH5oebuUPNvZUs22RPT2MrW8NtE1Tfu370UvcPi7uF173O9E882Zy/aGbU42mdaJ14uKZjlpmeaXi73fLhiS7VNyulZNX3Cpdty1E7lc9y+FfIWtddVyqaq51lIcNhLGBs02MPRFNFO6I4oWJ4XYAAAAAAAi6KipuVOCoBlV/KczAnyzqsD1F4dU2udGx+uJdVqWwpxiSTXVWru46rpu10Mh4dfmzNmZ4vihUbIZRTmdOaUWtK449I8nXztOePV072KjHpq4VNUVAJz4Z9UJw3YsN2q2vwndZZKOkip3PbPEiOVjEaqp8RKqM4t0URTwJ4nOWL7l2NxOJuX4xNERVVM7p5Z1R65TmeNBnxjG23m32yptcVJQpSOiqntc5y7bnaps9HbGHx2KpxdyK6Y00htDY/Zy9szg7mGvXIrmqrhaxrzRHL0MPGNT0AAAPu4GxdW4BxfZ8R25GOrLZUtqI2Sa7L1Ti1dOhU1RfCVbVybNyLlO+GMzLA2s0wd3BXvJriYnt9iTH941jPuWsf8Amm9Iznjm75sNSfopy30iv/17D+8axn3LWP8AzTekPHN3zYP0U5b6RX/69jHOa/K/x9mxaZrRUT01ltE6bM1JbGKxZk/Ze9yq5U7yaIpZYjMr+Ip4M8UepKsk2FyjJLsYiiJuXI3TVx6dERERr62EDFtiAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv8A2JV/Uq+VKNZg233DtUTVvsk3p4T7DxVHCpmE9PU+aiOTDOKVbG6WRKuGRrGpu7aNdFVfES7J5/V1x63MndSomMXhq+emqOqf+UvXPSKZVdLKr3JuYjVcjfiTykhaSW8DW8zUQRue96dvq9unbf8AVE+MCvWJHU0jHKmu3ojV6trRAOtdsTMaiQtmVzlj1VdFau/pA6TT7NNDI5z2qqbLkjRNVVOO9eHBQOyq5sLEc1WSJI1WNe/acu/f9GoFarp3Sq1ydujeMTl7V3+oHZkLpHtfLomz7GNODe/31ArKmoHDWNZrstRuvUgHYAAAAAAAAAAAAAAAAAAAAAC0uEraehqJnLo1kbnKveRFU+TxQ92qZquU0xyzDStXypPXVMicHyvd8aqaxnjmZfoHajg26Y5ohQPiqAAAAAAAAAAAAAAAAAF5GxlVbWJIjnJDJoqMTVVTq+JUK0ccMbXHBqmF25+rY5JFlgRF3RN36/Emp9U1Jr42XFr1ker5U2Ua5itRE49P+94fXzpokilljXg1y/FxT6NClPFK+tzFVGkvow7DLa1qsbK5sfO7C79ddV85VWM71Okna6jm0RYWxu2kRE2la1d/T4z5E6vtVMxPGq00iSMe96P5hzVRZJpE3+JNyH18fJRFdG3fv8pR3SyGk1URG5dS1rpIUijjSCPTRUb0/wCh7mrmUabM6/WUOBTXbjRNddE1D5pDkPoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv8ATXSfBEP15CF5x94jodWdy/8AYlX9Sr5Uo1mDbfAJdep8YhSK+4nszpXMdNSx1DEbxXYfov8A6ZfoJJk9X16qeeGgu6nhZnC4fExHk1TE/wC6NfyTxifzjURqVT2puRV0Yn9CWOcXZsMdNVNlWRI9Wqise/VVXxr3gO9KjJqaSLVHsRzm6ou7TinlApsopYkWNrmq1XNk23Lv2t2u7v6fSBW9ZNV6q57nM2lcjN2iKvHyqBVip4od7GNavXpv+MCoAAAAAAAAAAAAAAAAAAAAAAAAAAHh86cRtwnlNi67OfsLT2ydWL/GrFa3/wBSoWuKr73Yrq9Us/s/hJx2bYbDx/FXT1ROs/Bp7Tghrl3Y5AAAAAAAAAAAAAAAAAAF3bV2nzwquiSM1TvLw/qhUp5llfjSdXajkdzSNV1VJJxcjUTTXwr5z2tlaela5GSOcsL2ORUfK/XxcdA+rS4uY6r2mPa7aairsrrvT/aHipc2J3wo08zqWVXonOIrVbsuXRNOJ8ip6rs6zrS6Rq+NjmterUc3ZcidKHzV7m1FWmrhGNTTdrp1nzWVSKKY49HY+PYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADX96oLQugzXstUqdrPaWtRfcyya+VCHZzGl+mfU6j7llyKspvW+a5PxphF0wDdABk/kz5g9jXOjD1ze5G0c06UdS5y6NbHImwqr4FVF8RkMDf7zfpqndu60J2vyurNcoxFmiNaojhR008fx3NsbKZZGossr5N29EXZT6P6mwHFSo2mhY3RImIi8e14gVOAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACK3qgWPG2DKuiw3DJpV3yrbttRd/MRaOcvjdsIYHN73AsxbjfV+Tcfcxy2cVmteNqj6tqn/wBquKPhq12kNdUAAAAAAAAAAAAAAAAAAA7wyrTzMkRNrZXemumqaHqJ0UblE1xxKktfUTOXt1jb0NZ5z7NXMp02Y/iW6tRV1Xtl63Lqp51lXiimN0CIiJoiaIfHqI03OQ+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXlmpnVt4oadiaumnjjRE6VVyIeqY1qiFviK4t2a655Imfg3JU0XMU8Uf7DEb8SGzY4ofn9XVwqpq51U+vIAAAAAACHHqiOGnS2vCN/Y1VSGWaikcnRtIj2/UcRnOrf1aLnsb+7lGMim7isHM74iqPZxT84QjIq6NAGqouqLoqcFQDapyVc2Y82cpLZUzSpJebc1KC4NVe222J2r1903RfDr1E9y/EeEWImd8cUuLttMknJM2uUUx+rr+tT0Tvj2TxdTM5k0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRzkjarnKjURN6rwQERrxQ1Vcq3NhM2c3rjV0svOWa2/8AAUOi9q5jFXaenunar4NCA5hiPCL8zG6OKHZ2xWSeJMoot3I0uV/Wq6Z3R7I+OrDhjU9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQuT5hp2Lc6cIW5GK9i3COeRNPaRrzjvoaXuCt98xFFPrRTarGRgckxV7Xj4MxHTVxR822E2G4fAAAAAAAAMWcprALsxcl8Q26GPnK2ni9e0rU4rJF22ieFNpPGY/H2e/wCHqpjfv6k02OzSMpzqxfqnSmZ4NXRVxfCdJ9jVea/drgADL/JgzwlyRzEhqql73YfuGzTXKFu/RmvayonWxV18CqnSZLAYqcLd1nyZ3oHtjs7TtDl026I/W0cdE+vljon56Np1DcKa6UUFZSTMqKWdjZYponate1U1RUXpRUJ9ExVGsbnGVy3XZrm3cjSqJ0mJ5JXweQAAAAAAAAAAAAAAAAAAAAAAAAAAAACL/LVz+bl1hCTCdoqUTEd5iVr1jd21LTLuc5epzt7U8a9Rg8zxneKO9UT9afhDbnc+2ZnNcZGYYmn9Tani/wBVXJHRG+fZDXIQt1eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtvU+8AuuGLL3i6eP8AAW+D1nTuVNyyyb3aeBqaf4yR5NZ1rquzycTRXdTzSLWEs5bRPHXPCnojd1z8k7SWuaQAAAAAAADhURyKipqi8UUDV9ypspX5UZqV8UEKsstzc6toHInao1y9tH/hdqngVCBZhhvB70xG6eOHZuxWexnmVUVVz+st/Vq9m6fbHx1YeMYnwAAllyPuVS3A0kGCcW1Sph+V2zQV8q/iTlX2Dl/8NV6far3uEgy7MO9fqbs/V5J5v+Gktu9i5zKJzPLqf1seVTH8Uc8f6o+PS2BRTMqImSRva+NyI5rmrqiovBUUmG9zDMTTMxMcauAAAAAAAAAAAAAAAAAAAAAAAAAAADD/ACg+UFZ8i8Munncysv8AVMVKC2I7tpHftv6mJ0r08EMfjMZRhKNZ46p3Qm2y+y+J2kxPBp+rap8qrm9Uc8z8N8tXeLcWXTHGI6++3qqfW3KtkWWWV/X0IidCIm5E6EQgdy5VdrmuudZl2PgcFYy7DUYXDU8GimNIj/vLPK+QU18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK9DQz3Otp6OlidPUzyNiiiYmrnucuiInfVVPsRNU6QpXblFmiq5cnSmI1meaIbW8iMsYspMsbRYERq1jWc/WyN9vO/e/xJuaneahsPCWIw1mLfLy9LiLabOas9zS7jP4d1Pqpjd17+mWQS8RYAAAAAAAAAYu5Q+TFNnVgCotiIyK8UutRbql3tJUT2Kr+y5Ny+JegsMbhYxVrg8sbkz2U2hubO5hTf326uKuOeOfpjfHVytXN5s9bh+61dtuNPJSV1LI6GaCVNHMci6KikAqpmiqaao44doYfEWsVapv2auFTVGsTHLErM8rgAAST5OHLGu2U7aewYk569YVRUbGqLtVFEn8Cr7Jn8K8OhegzeCzKrD/AFLnHT8Yal2r2Dw+dcLF4LS3f5fNq6eafX1tgeC8e2HMOyRXbDtzgulC9PZwu3tXqc3i1e8qEwtXaL1PCtzrDmDMMsxeVX5w+MtzRVHP84ndMdD0pVY0AAAAAAAAAAAAAAAAAAAAAAAdVVGoqquiJvVVAjLn/wAtHD+WsVTaMLvhxFiVEViujdtUtI7re5PZOT9lPGqGDxmZ27GtFrjq+ENt7Mdz/GZtNOJx8Tas/wDtV0RyR659kNfGLcXXjHN/q7zfK+W43KqdtSTyrr4EROCInQibkIfcuV3aprrnWZdQ4HA4bLcPThcJRFNFO6I/7xz63xymvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmLyIMgH1lbHmHfaZW00Kqlphlb/zH8Fn06k3o3v6r0ISbKsHrPhFcdHa0D3R9qIt0TkuEq+tP2kxyR5vt5fVxcqbxKnOQAAAAAAAAAAAI48qnkvxZrUT8R4dijgxXTR6Pj3NbXMTg1V6Hp0L08F6NMJmGAjER3y35UfFtrYnbOrI64wWNnXD1Tv8yefo549sNeVwt1Vaa6eiraeSlq4HrHLBM1WvY5OKKi8FIZVTNM6VRxuq7V23ft03bVUVUzxxMbphbnlWAAHocE5gYiy5u7bnhu71NprE9k6B/ayJ1Pau5yd5UK1q9cs1cK3OksXmOV4PNbPeMbaiun18nRO+PYlnlr6olNBHFSY6sS1C7kW4WnRHL33ROXT4lTwEhsZzMcV6n2x2NI5v3LKapm5lV7T/AE1/lVH5x7UjsH8qLLHGzI/WWLaGmnf/APj3B/raRF6tH6IviVTM28fhrscVce3iaox2x2e5fM99w1Uxz0/Wj4ask0V4obpGklHW01UxU1R0ErXovjRS+iqmrdKJ3MPdszpcomJ9cTC/1TrQ9KJqnWgDVOtAGqdaANU60Aap1oA1TrQBqnWgDVOtAGqdaANU60Aap1oA1TrQBqnWgDVOtAKckrIWq57kY1Oly6INxETVxRDy2Is1sG4SY594xRabcjeLZ6tiP/y66/QW9eItW/LqiPazGFyXMsdOmGw9dXRTOnXuYOx7y+8AYbZJFYIqzFNYm5qwsWCDXvvemvxNUxd7N7FHFR9aWxcs7meb4uYqxcxZp9fHV1RxdcomZtcrbH2bEctHJXJYrK/VFt1sVWI9vU9/sneDVE7xHsRmN/EcWukc0N25JsPlGSTFymjvlyP4quPqjdHz9bCxjGwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASJ5L/ACW63NW4wX/EEElJhGB+0iO1a+ucntWfwdbvEnezWAy+rET3y5xU/NqfbPbS1klurB4OeFiJ6qPXPr5o9stidFRU9to4KSlhZT00DEjiijbstY1E0REToREJrERTGkOULlyu9XNy5OtU8czPLKufVMAAAAAAAAAAAADC+fPJgw7nVTPrW7NnxKxukdyhZqkmnBsrfbJ3+KfQYvGYC3io13Vc/a2DsxtljdnaoteXZnfTPJ66Z5J+Etf2aGSuLMork6mxBbHxU6u0hr4UV9PMn8L+vvLoveIdiMLdw06XI9vI6lyXaLLs+tcPB3NZ5aZ4qo6Y/OOJ4UtElAAAAqagVqatqaNdaeomgXrikVvkU+xMxulTrt0XPLpiemF+mLb61ERL1cUROj13J5z33yvzpW3gOF/lU+7HY5++6+/vu5fK5POO+V+dL54DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92OxQqMQXWsTSe51s6dUlQ93lU+TXVO+VSnC4ejyLdMdEQsF3rqu9etTwugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL2zWS4YhuMNvtdFPcK2Z2zHT00ave5e8iHumiqueDTGsrbEYizhLc3r9cU0xvmZ0hMfITkNrDLTXzMRGuVqo+KxRu1Tvc85Pqp416CTYPKdNK8R1drQO0/dJ4UVYTJeibk/4x+c+yOVMqlpIaGmip6aFkFPE1GRxRtRrWNTgiInBCTRERGkOfq66rlU11zrM75lVPrwAAAAAAAAAAAAAAAWtztdHeqGWiuFJDW0kqbMkFRGj2OTqVF3KeaqYqjSqNYVrN67h7kXbNU01RumJ0lHTMXkJ4JxU+Wqw/PUYWrHarzcP4WmVfcOXVPEqJ3jC38ps3OO39Wfg2xlPdLzXAxFvGRF6n18VXXG/2wj7ivkJ5jWJ73WxLfiCBOC00/NSL4Wv0+hVMNcyjEUeTpLaeB7peSYmIi/wrU+uNY641+TG1z5POZVncqVOCrxu9tFTLKnxs1QsasFiad9EpfZ2ryO/H1MXR7Z0+ej5D8o8cRu0dg++ovwdN6JS8GvR/BPVK+jPcpndirfv09rjsT417kL782zeiPB73mT1S++PMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379Pau6TJDMGuejIcF3x7l66CRPKh7jCYid1E9ShXtHk1uNasXb96O17TDvI6zUxC9u1h5LXGvGS41DI0TxIqu+guaMsxVf8OnSj2L2/wBn8LHFf4c81MTPx4o+LNuBPU9YYnxz4vxGsyIqK6jtTNlF7yyP3/E0ytnJo33auprnM+6rXVE0Zbh9P9Vc/wCMdqT2AMp8J5YUXrbDdlp7fqmj50btTSe6kXVy/GZ6zh7WHjS3To03mmeZjnNfDx16auaN0R0RHE9cXLBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 -// @iconbak https://pic.616pic.com/ys_bnew_img/00/35/79/Gv93yQh7v6.jpg -// @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js -// @require https://update.greasyfork.org/scripts/498124/1396763/video.js -// @require https://update.greasyfork.org/scripts/498149/1395619/%E4%BF%A1%E6%81%AF%E6%9F%A5%E7%9C%8B%E5%99%A8.js -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// ==/UserScript== - -(function () { - 'use strict' - - var controlButton = createButton('备份', '10px', '10px') - var buttonA = createButton('备份当前', '70px', '10px') - var buttonB = createButton('备份片单', '130px', '10px') - var buttonC = createButton('设置选项', '190px', '10px') - var webdavbutton = createButton('WebDav', '250px', '10px') - // 设置按钮的背景颜色和样式 - controlButton.style.backgroundColor = 'blue' // 控制按钮改为蓝色背景 - buttonA.style.backgroundColor = 'green' - buttonB.style.backgroundColor = 'blue' - buttonC.style.backgroundColor = 'red' - webdavbutton.style.backgroundColor = 'blue' - // 隐藏初始的三个按钮 - buttonA.style.display = 'none' - buttonB.style.display = 'none' - buttonC.style.display = 'none' - webdavbutton.style.display = 'none' - // 添加按钮到页面 - document.body.appendChild(controlButton) - document.body.appendChild(buttonA) - document.body.appendChild(buttonB) - document.body.appendChild(buttonC) - document.body.appendChild(webdavbutton) - // 控制按钮的点击事件 - controlButton.addEventListener('click', function () { - if (buttonA.style.display === 'none') { - // 显示三个按钮 - buttonA.style.display = 'block' - buttonB.style.display = 'block' - buttonC.style.display = 'block' - webdavbutton.style.display = 'block' - controlButton.innerHTML = '隐藏' - } else { - // 隐藏三个按钮 - buttonA.style.display = 'none' - buttonB.style.display = 'none' - buttonC.style.display = 'none' - webdavbutton.style.display = 'none' - controlButton.innerHTML = '备份' - } - }) - webdavbutton.addEventListener('click', function () { - // 点击按钮时执行的操作 - WebDAVManager.listFilesAndFolders(webdavfold) - - - }) - - // 按钮A的点击事件 - buttonA.addEventListener('click', function () { - resetGlobalVariables() - singleFileDownload = true - window.showLogContainer() - var currentDate = new Date() - var currentTime = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate() + '_' + currentDate.getHours() + '-' + currentDate.getMinutes() + '-' + currentDate.getSeconds() - if (useDefaultTitle) { - name = document.querySelector('meta[name="twitter:title"]').content - } else { - const twitterTitleContent = document.querySelector('meta[name="twitter:title"]').content - name = prompt("请输入自定义名称:", twitterTitleContent) - if (name === null) { - name = twitterTitleContent - } - } - inurl = window.location.href - const defaultPages = getTotalPagesd() - - const totalPages = setTotalPage(defaultPages) - allpages = totalPages - //const delay = settime(); - if (totalPages) { - start(totalPages) - } - - }) - - // 按钮B的点击事件 - buttonB.addEventListener('click', function () { - // 点击按钮时执行的操作 - resetGlobalVariables() - fetchJsonData() - - - }) - - // 按钮C的点击事件 - buttonC.addEventListener('click', function () { - createSettingsUI() - - // 这里可以添加按钮C点击后的具体操作,比如打开链接或执行其他动作 - }) - - // 创建按钮的辅助函数 - function createButton(text, top, left) { - var button = document.createElement('button') - button.innerHTML = text - button.style.position = 'fixed' - button.style.bottom = top - button.style.right = left - button.style.zIndex = '1000' - button.style.padding = '10px' - button.style.border = 'none' - button.style.cursor = 'pointer' - button.style.color = '#fff' - button.style.fontSize = '14px' - button.style.fontWeight = 'bold' - button.style.textAlign = 'center' - button.style.width = '100px' // 调整按钮宽度 - return button - } - // 全局变量 - var allResults = [] // 存储所有的结果数据 - var zip = new JSZip() // 创建一个压缩文件实例 - var allzip = new JSZip() // 另一个可能的压缩文件实例 - var imgFolder = zip.folder("img") // 在 zip 中创建一个名为 "img" 的文件夹,用于存储图片文件 - var allimgFolder = allzip.folder("img") // 在 allzip 中创建一个名为 "img" 的文件夹,可能用于另一个压缩文件的图片存储 - var ALLfiledown = false // 标识是否所有文件已下载完毕的布尔变量 - var videos = [] // 存储视频文件或相关信息的数组 - var finalData = [] // 存储最终处理数据的数组 - var inurl = "" // 当前下载地址的变量 - var pendingRequests = 0 // 当前待处理的请求数量 - var delayTime // 延迟时间,以毫秒为单位,用于控制异步操作的时间间隔 - var currentPage = 1 // 当前处理的页数,可能用于分页处理或其他进度跟踪 - var currentUrlIndex = 0 // 当前处理的 urls 数组中的索引位置 - var name = "" // 当前下载的名称 - var urls = [] // 存储需要处理的网址数组 - var a = -1 // 循环中的计数或索引,初始值为 -1 - var allZipContents = [] // 存储所有压缩文件内容的数组 - var singleFileDownload = false // 标识是否为单个文件下载模式的布尔变量 - var names = [] // 存储下载名称列表的数组 - var allpages = 0 // 存储总页数或其他页面处理相关信息的变量 - var modalContainer = null // 存储模态窗口容器的全局变量,用于显示下载进度或其他信息 - var shouldReplace = false // 控制是否在下载大图时进行替换操作的布尔变量 - var temporaryData = [] - var saveJson = false - var useDefaultTitle = true - var pageCount = true - var saveVideoInfo = false - var saveImage = false - var downloadLog = {} - var errorLogs = {} - var downloadLogFileA = false // 这里设置为 true 时载日志 - var webdavfold = "missavsave" - //var webdavfold="1111"; - var savetowebdav = false - var webdavUrl = '' - var webdavUsername = '' - var webdavPassword = '' - var deleteSelected = false - ini()//读取配置 - function resetGlobalVariables() { - zip = new JSZip() // 重置为一个新的 JSZip 实例,用于创建新的压缩文件 - allzip = new JSZip() // 可能是另一个新的 JSZip 实例,用于其他用途的压缩文件 - if (saveImage) { - imgFolder = zip.folder("img") // 在 zip 中创建一个名为 "img" 的文件夹,用于存储图片文件 - allimgFolder = allzip.folder("img") // 在 allzip 中创建一个名为 "img" 的文件夹,可能用于另一个压缩文件的图片存储 - } - downloadLog = {} - errorLogs = {} - ALLfiledown = false // 重置为 false,表示所有文件未下载完毕 - videos = [] // 清空存储视频文件或相关信息的数组 - finalData = [] // 清空存储最终处理数据的数组 - inurl = "" // 重置当前下载地址为空字符串 - pendingRequests = 0 // 重置待处理的请求数量为 0 - - currentPage = 1 // 重置当前处理的页数为 1 - currentUrlIndex = 0 // 重置当前处理的 urls 数组索引为 0 - name = "" // 重置当前下载的名称为空字符串 - urls = [] // 清空存储需要处理的网址数组 - a = -1 // 重置循环中的计数或索引为 -1 - allZipContents = [] // 清空存储所有压缩文件内容的数组 - singleFileDownload = false // 重置为 false,表示不是单个文件下载模式 - names = [] // 清空存储下载名称列表的数组 - allpages = 0 // 重置存储总页数或其他页面处理相关信息的变量为 0 - temporaryData = [] - } - - - async function processUrls() { - //delayTime = 20; - let completedTasks = 0 // 计数已完成的任务数量 - - for (const url of urls) { - a = a + 1 // 每次循环递增 a - inurl = url - console.log("正在处理网址:", url, names[a]) - window.addToLog("处理:" + url + names[a], 'info') - name = names[a] - - try { - const totalPages = await getTotalPages(url) // 等待 getTotalPages 返回结果 - console.log("Total pages for", url, ":", totalPages) // 显示总页数 - window.addToLog(name + " 总页数:" + url + totalPages, 'info') - allpages = totalPages - start(totalPages) // 启动处理流程 - - // 等待当前页面的请求完成 - while (pendingRequests > 0) { - await new Promise(resolve => setTimeout(resolve, 100)) // 每隔 100 毫秒检查一次是否所有请求都已完成 - } - - completedTasks++ // 标记当前任务已完成 - } catch (error) { - console.error("Error processing URL:", url, error) // 处理错误信息 - allpages = 1 - start(1) // 启动处理流程 - while (pendingRequests > 0) { - await new Promise(resolve => setTimeout(resolve, 100)) // 每隔 100 毫秒检查一次是否所有请求都已完成 - } - completedTasks++ // 标记当前任务已完成 - } - } - - // 如果所有任务都已完成且 urls 数组不为空,则调用下载函数 - if (completedTasks === urls.length && urls.length !== 0) { - downloadAllZips() - } - } - - - - - function getAllCookies() { - return document.cookie - } - - // 获取指定 JSON 数据的函数 - - - - - function fetchJsonData() { - const cookies = getAllCookies() - //alert(cookies); - console.log('Current page cookies:', cookies) - - // 构建 API URL - const apiUrl = 'https://missav.com/api/playlists/dfe-057' - - // 发送带有 cookies 的请求 - GM_xmlhttpRequest({ - method: 'GET', - url: apiUrl, - headers: { - 'Cookie': cookies - }, - onload: function (response) { - if (response.status === 200) { - try { - const jsonResponse = JSON.parse(response.responseText) - if (jsonResponse && Array.isArray(jsonResponse.data)) { - createReportUI(jsonResponse.data, 500) // 假设每页显示 10 个项目 - - // 调用 processUrls 函数处理 URLs - } else { - console.error('JSON 格式无效') - showModal("JSON 格式无效", 2000) - } - } catch (error) { - console.error('Error parsing JSON:', error) - showModal("解析错误" + error, 2000) - } - } else { - console.error('Request failed with status:', response.status) - showModal("解析错误", 2000) - } - }, - onerror: function (error) { - showModal("解析错误" + error, 2000) - } - }) - } - - function processUrl(url) { - // 检查是否包含 `page=` 参数 - var pageIndex = url.indexOf('page=') - - if (pageIndex !== -1) { - // 找到 `page=` 参数并删除它及其后的所有内容 - var baseUrl = url.substring(0, pageIndex + 5) // +5 to include `page=` - return baseUrl - } else { - // 检查是否已有其他参数 - if (url.includes('?')) { - // 有其他参数,添加 `&page=` - return url + '&page=' - } else { - // 没有其他参数,添加 `?page=` - return url + '?page=' - } - } - } - function settime() { - // 让用户输入延时时间 - delayTime = prompt("请输入每页请求的延时时间(毫秒):", "1000") - - // 检查用户是否取消输入 - if (delayTime === null) { - alert("输入取消") - return - } - - delayTime = parseInt(delayTime) - - // 检查输入的延时时间是否有效 - if (isNaN(delayTime) || delayTime <= 0) { - alert("请输入有效的延时时间(正整数)!") - return - } - - // 返回有效的延时时间 - return delayTime - } - - - function getTotalPagesd() { // 获取总页数 - var totalPagesElement = document.querySelector('#price-currency') - var totalPagesText = totalPagesElement ? totalPagesElement.innerText : '' - var totalPages = parseInt(totalPagesText.replace('/', '').trim(), 10) - - // 如果获取总页数失败,则返回 1 - if (isNaN(totalPages) || totalPages <= 0) { - totalPages = 1 - } - - return totalPages - } - function getTotalPages(url) { - return new Promise((resolve, reject) => { - // 如果没有提供 URL,则使用当前页面的 URL - if (!url) { - url = window.location.href - } - - // 发起 GM_xmlhttpRequest 请求获取页面内容 - GM_xmlhttpRequest({ - method: "GET", - url: url, - headers: { "Cookie": document.cookie }, - onload: function (response) { - // 处理响应 - if (response.status === 200) { - const parser = new DOMParser() - const doc = parser.parseFromString(response.responseText, 'text/html') - const totalPagesElement = doc.querySelector('#price-currency') // 替换为实际选择器 - if (totalPagesElement) { - const totalPagesText = totalPagesElement.innerText - const totalPages = parseInt(totalPagesText.replace('/', '').trim(), 10) - resolve(totalPages) // 成功时返回总页数 - } else { - window.addToLog('页面中没有找到总页数,默认为1页', 'warning') - reject('Total pages element not found') // 页面中没有找到总页数元素 - } - } else { - window.addToLog('请求失败', 'warning') - reject(`Request failed with status ${response.status}`) // 请求失败 - } - }, - onerror: function () { - window.addToLog('请求出错', 'warning') - reject('Request failed') // 请求出错 - - } - }) - }) - } - - - // 设置总页数 - function setTotalPage(defaultPages) { - if (!pageCount) { - return defaultPages - } - - const inputPages = parseInt(prompt(`当前 ${name} 总页数为 ${defaultPages}。请输入你想要抓取的页数(不输入抓取全部):`, defaultPages), 10) - if (isNaN(inputPages) || inputPages <= 0) { - return defaultPages - } - return inputPages - } - // 开始处理页面抓取 - function start(totalPages, callback) { - const pages = Array.from({ length: totalPages }, (_, i) => i + 1) - pendingRequests = pages.length - fetchPage(pages.shift(), pages, callback) - } - - // 点击按钮时执行操作 - - - - // 异步获取页面内容 - function fetchPage(pageNum, pages, callback) { - const pageUrl = `${processUrl(inurl)}${pageNum}` - console.log(`正在获取第 ${pageNum} 页的内容...`) - //showModal(`正在获取${name} 第 ${pageNum} / ${allpages}页 `); - if (a !== -1) { - showModal(`${a + 1}/${names.length} 正在获取 ${name} 第 ${pageNum} / ${allpages} 页`) - } else { - showModal(`正在获取 ${name} 第 ${pageNum} / ${allpages} 页`) - } - GM_xmlhttpRequest({ - method: "GET", - url: pageUrl, - headers: { "Cookie": document.cookie }, - onload: function (response) { - if (response.status === 200) { - processPageContent(response.responseText, pageNum, pages, callback) - } else { - pendingRequests-- - checkIfComplete(callback) - if (pages.length > 0) { - setTimeout(() => fetchPage(pages.shift(), pages, callback), delayTime) - } - } - } - }) - } - - - //获取视频信息 - function extractInformation(htmlContent) { - let data = {} // 创建一个对象来存储提取的数据 - let xhr = new XMLHttpRequest() - xhr.open('GET', htmlContent, false) // 同步方式打开请求 - xhr.send() - - // 创建一个虚拟的
          元素来加载 HTML 内容 - let tempDiv = document.createElement('div') - tempDiv.innerHTML = xhr.responseText - - // 获取所有包含信息的父元素列表 - let parentElements = tempDiv.querySelectorAll('div.space-y-2 > div') - - if (parentElements.length > 0) { - let allInfo = {} // 初始化一个空对象来存储所有信息 - - // 遍历每个包含信息的
          元素 - parentElements.forEach(div => { - let span = div.querySelector('span') // 获取第一个 元素 - - if (span) { - let category = span.textContent.trim() // 获取主分类名称 - - if (!allInfo[category]) { - allInfo[category] = [] // 初始化一个空数组来存储该分类下的所有信息 - } - - // 查找所有的 元素和 元素 - if (element.tagName === 'A') { - info['name'] = element.textContent.trim() // 获取名称 - info['link'] = element.href.trim() // 获取链接 - } else if (element.tagName === 'TIME') { - info = element.textContent.trim() // 如果是 元素,则尝试获取 标签内的文本内容 - if (div.querySelectorAll('a').length === 0) { - let spanText = div.querySelector('span.font-medium') - if (spanText) { - let info = spanText.textContent.trim() - allInfo[category].push(info) - } - } - } - }) - - // 提取 class="mb-1 text-secondary break-all line-clamp-2" 的内容 - let descriptionElement = tempDiv.querySelector('.mb-1.text-secondary.break-all.line-clamp-2') - let descriptionContent = descriptionElement ? descriptionElement.textContent.trim() : '' - allInfo['简介'] = descriptionContent - - // 将所有信息存储到 data 对象中 - data['videosinfo'] = allInfo - - // 查找包含 x-cloak 和 x-show="currentTab === 'magnets'" 的第二个元素 - let secondElement = tempDiv.querySelector('div[x-cloak][x-show="currentTab === \'magnets\'"]') - - if (secondElement) { - let linksAndInfo = [] - - // 遍历第二个元素内的 元素 - secondElement.querySelectorAll('a[rel="nofollow"]').forEach(a => { - let linkInfo = { - name: a.textContent.trim(), - link: a.href.trim() - } - - // 查找相邻的 元素,获取大小和日期信息 - let sizeTd = a.closest('td').nextElementSibling - if (sizeTd && sizeTd.classList.contains('font-mono')) { - linkInfo['size'] = sizeTd.textContent.trim() // 获取大小信息 - } - - let dateTd = sizeTd ? sizeTd.nextElementSibling : null - if (dateTd && dateTd.classList.contains('hidden')) { - linkInfo['date'] = dateTd.textContent.trim() // 获取日期信息 - } - let nextSibling = a.nextElementSibling - - // 循环处理所有紧邻的元素 - while (nextSibling && nextSibling.tagName === 'SPAN') { - let spanText = nextSibling.textContent.trim() - linkInfo['name'] += ' ' + spanText // 将元素的文本内容追加到name中 - - nextSibling = nextSibling.nextElementSibling // 继续查找下一个兄弟元素 - } - linksAndInfo.push(linkInfo) - }) - - // 将第二个元素的链接和信息添加到 data 中 - data['secondElementLinksInfo'] = linksAndInfo - } else { - console.error('未找到包含 x-cloak 和 x-show="currentTab === \'magnets\'" 的第二个元素。') - } - - return data // 返回结构化的数据 - - } else { - console.error('未找到匹配的父元素 div.space-y-2') - return null // 如果未找到匹配的父元素,返回 null - } - } ///大 - - - - - // 使用XMLHttpRequest获取页面内容 - function fetchPageforinfo(url) { - let xhr = new XMLHttpRequest() - - xhr.onreadystatechange = function () { - if (xhr.readyState === XMLHttpRequest.DONE) { - if (xhr.status === 200) { - extractInformation(xhr.responseText) // 将获取的页面内容传递给提取信息的函数 - } else { - console.error('请求失败:' + xhr.status) - } - } - } - - xhr.open('GET', url, true) - xhr.send() - } - - - // 处理获取到的页面内容 - function processPageContent(htmlContent, pageNum, pages, callback) { - const parser = new DOMParser() - const doc = parser.parseFromString(htmlContent, 'text/html') - const divElements = doc.querySelectorAll('div.relative.aspect-w-16.aspect-h-9.rounded.overflow-hidden.shadow-lg') - const logEntry = { - url: `${processUrl(inurl)}${pageNum}`, - elementsFetched: divElements.length - } - - // 如果当前名称的日志组不存在,则创建一个新数组 - if (!downloadLog[name]) { - downloadLog[name] = [] - } - - // 将日志条目添加到日志数组中 - downloadLog[name].push(logEntry) - if (divElements.length === 0) { - const logEntry = { - url: `${processUrl(inurl)}${pageNum}`, - elementsFetched: 0, // 这里可以根据实际需求设置其他信息 - errorMessage: `获取第 ${pageNum} 页失败。` - } - if (!errorLogs[name]) { - errorLogs[name] = [] - } - errorLogs[name].push(logEntry) - console.log(`获取第 ${pageNum} 页失败。`) - window.addToLog(`${name}${processUrl(inurl)}${pageNum}+获取失败 数量:` + divElements.length, 'error') - } - - - - - divElements.forEach(div => { - var imgUrl = div.querySelector('img').getAttribute('data-src') - - - if (shouldReplace) { - imgUrl = imgUrl.replace('cover-t.jpg', 'cover-n.jpg') - } - const video = { - fileName: div.querySelector('a').getAttribute('alt'), - imgUrl: imgUrl, - videoUrl: div.querySelector('video').getAttribute('data-src'), - markContent: Array.from(div.querySelectorAll('span')).map(mark => mark.textContent).join(' '), - altText: div.querySelector('img').getAttribute('alt'), - jumpUrl: div.querySelector('a').getAttribute('href'), - - } - - if (saveVideoInfo) { - video.info = extractInformation(video.jumpUrl) - //showBanner(`正在获取 ${video.fileName} 信息`); - window.addToLog(`正在获取 ${video.fileName} 信息`, 'info') - console.log() - }; - - - - if (video.imgUrl && video.altText) { - videos.push(video) - if (saveImage) { - window.addToLog(`保存` + video.imgUrl, 'info') - pendingRequests++ - GM_xmlhttpRequest({ - method: 'GET', - url: video.imgUrl, - responseType: 'blob', - onload: function (response) { - if (response.status === 200) { - if (saveImage) { - if (singleFileDownload) { - console.log("这是单个文件下载") - imgFolder.file(`${video.fileName}.jpg`, response.response, { binary: true }) - } else { - console.log("这是批量文件下载") - allimgFolder.file(`${video.fileName}.jpg`, response.response, { binary: true }) - } - } - - pendingRequests-- - checkIfComplete(callback) - } else { - pendingRequests-- - checkIfComplete(callback) - } - } - }) - } - } else { - pendingRequests-- - checkIfComplete(callback) - } - }) - - showModal(`获取第 ${pageNum} 页的内容完成,等待 ${delayTime} 毫秒加载第 ${pageNum + 1} 页。`) - pendingRequests-- - checkIfComplete(callback) - if (pages.length > 0) { - setTimeout(() => fetchPage(pages.shift(), pages, callback), delayTime) - } else { - - } - } - - closeModal() - - function downloadLogFile() { - - - if (!downloadLogFileA) { - console.log('日志下载已被跳过') - return - } - if (Object.keys(errorLogs).length === 0) { - // 如果错误日志为空,直接下载正常日志文件 - const logBlob = new Blob([JSON.stringify(downloadLog, null, 4)], { type: 'application/json' }) - const logUrl = URL.createObjectURL(logBlob) - const logLink = document.createElement('a') - logLink.href = logUrl - logLink.download = 'download_log.json' - logLink.click() - URL.revokeObjectURL(logUrl) - } else { - // 创建一个JSZip实例 - const zip = new JSZip() - - // 添加正常日志文件到压缩包 - const logBlob = new Blob([JSON.stringify(downloadLog, null, 4)], { type: 'application/json' }) - zip.file('download_log.json', logBlob) - - // 添加错误日志文件到压缩包 - const errorLogBlob = new Blob([JSON.stringify(errorLogs, null, 4)], { type: 'application/json' }) - zip.file('error_log.json', errorLogBlob) - - // 生成压缩包并触发下载 - zip.generateAsync({ type: 'blob' }).then(function (content) { - const zipUrl = URL.createObjectURL(content) - const link = document.createElement('a') - link.href = zipUrl - link.download = 'logs.zip' - link.click() - URL.revokeObjectURL(zipUrl) - }) - } - } - - - - function sanitizeFileName(name) { - return name.replace(/[\\\/:*?"<>|]/g, '_') - } - - function checkIfComplete(callback) { - if (pendingRequests === 0) { - - const additionalInfo = { - timestamp: new Date().toISOString(), - inurl: inurl - - } - if (singleFileDownload) { - showModal("获取完毕,正在生成单个文件...") - - finalData = { - info: additionalInfo, - video: videos - } - if (saveJson) { - zip.file("data.json", JSON.stringify(finalData, null, 4)) - } - if (savetowebdav) { - - WebDAVManager.uploadFile(webdavfold, `${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) - } - - - - const jsonIndexContent = generateJsonIndexContent(finalData) - const numFiles = Object.keys(zip.files).length // 获取压缩包中文件的数量 - - if (numFiles === 0) { - const htmlContent = jsonIndexContent // 替换为实际的HTML内容 - const htmlBlob = new Blob([htmlContent], { type: 'text/html' }) - const htmlUrl = URL.createObjectURL(htmlBlob) - - const a = document.createElement('a') - a.href = htmlUrl - a.download = `${sanitizeFileName(name)}.html` - a.click() - closeModal() - downloadLogFile() - - if (callback) callback() - } else { - zip.file(`${sanitizeFileName(name)}.html`, jsonIndexContent) - - // 生成并下载单个文件 - zip.generateAsync({ type: "blob" }, function updateCallback(metadata) { - const progress = metadata.percent.toFixed(2) - showModal(`压缩进度: ${progress}%`) - }).then(content => { - const zipUrl = URL.createObjectURL(content) - const a = document.createElement('a') - a.href = zipUrl - a.download = `${name}.zip` - a.click() - URL.revokeObjectURL(zipUrl) - closeModal() - downloadLogFile() - if (callback) callback() - }) - } - - - } else { - finalData = { - info: additionalInfo, - video: videos - } - if (saveJson) { - allzip.file(`${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) - } - if (savetowebdav) { - WebDAVManager.uploadFile(webdavfold, `${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) - } - - const jsonIndexContent = generateJsonIndexContent(finalData);; - allzip.file(`${sanitizeFileName(name)}.html`, jsonIndexContent) - finalData = [] - - videos = [] - if (callback) callback() - } - - } - } - function downloadAllZips() { - if (singleFileDownload === false) { - showModal("获取完毕,正在生成压缩文件...") - - const numFiles = Object.keys(allzip.files).length // 获取压缩包中文件的数量 - - if (numFiles === 1) { - // 如果压缩包中只有一个文件,直接处理该文件 - const fileName = Object.keys(allzip.files)[0] // 获取唯一的文件名 - const file = allzip.files[fileName] - - // 根据文件类型获取文件内容 - file.async('blob').then(content => { - // 创建一个Blob对象,并下载 - const blob = new Blob([content]) - const url = URL.createObjectURL(blob) - const a = document.createElement('a') - a.href = url - a.download = fileName - document.body.appendChild(a) // 添加到文档中以确保点击有效 - a.click() - document.body.removeChild(a) // 下载完成后移除元素 - URL.revokeObjectURL(url) - closeModal() - }).catch(error => { - console.error('Error fetching file content:', error) - closeModal() - }) - downloadLogFile() - return // 结束函数执行,不生成压缩包 - } - - - - allzip.generateAsync({ type: "blob" }, function updateCallback(metadata) { - const progress = metadata.percent.toFixed(2) - showModal(`压缩进度: ${progress}%`) - }).then(content => { - const zipUrl = URL.createObjectURL(content) - const a = document.createElement('a') - a.href = zipUrl - a.download = `批量备份${urls.length}个片单.zip` - a.click() - URL.revokeObjectURL(zipUrl) - closeModal() - downloadLogFile() - if (callback) callback() - }) - // 如果 singleFileDownload 等于假,则执行这里的代码 - } - - - } - - function showBanner(text) { - // 查找现有的横幅元素 - var existingBanner = document.querySelector('.banner') - - if (existingBanner) { - // 如果横幅已经存在,直接更新文本内容 - existingBanner.textContent = text - } else { - // 如果横幅不存在,创建一个新的横幅 - var banner = document.createElement('div') - banner.className = 'banner' // 添加一个类名以便识别 - banner.style.position = 'fixed' - banner.style.bottom = '20px' // 距离底部的距离 - banner.style.left = '20px' // 距离左侧的距离 - banner.style.width = 'auto' // 根据文本自动调整宽度 - banner.style.backgroundColor = 'rgba(255, 255, 255, 0.9)' - banner.style.color = '#000' // 黑色文本 - banner.style.textAlign = 'center' - banner.style.padding = '20px' - banner.style.borderRadius = '8px' - banner.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)' - banner.style.zIndex = '9999' - banner.textContent = text // 将传入的文本设置为横幅内容 - - document.body.appendChild(banner) // 将横幅添加到文档的末尾 - - // 3秒后移除横幅提示 - setTimeout(function () { - banner.remove() - }, 3000) - } - } - - - - // 创建或更新模态窗口 - function showModal(message, autoCloseDelay = 0) { - // 如果模态窗口不存在,则创建新的模态窗口 - if (!modalContainer) { - modalContainer = document.createElement('div') - modalContainer.className = 'modal-container' - modalContainer.style.cssText = ` - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: rgba(255, 255, 255, 0.9); - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - z-index: 9999; - padding: 20px; - ` - document.body.appendChild(modalContainer) - } - - // 更新模态窗口的内容 - modalContainer.textContent = message - - // 自动关闭模态窗口 - if (autoCloseDelay > 0) { - setTimeout(closeModal, autoCloseDelay) - } - } - - // 关闭模态窗口 - function closeModal() { - // 如果模态窗口存在,则从 DOM 中移除 - if (modalContainer) { - document.body.removeChild(modalContainer) - modalContainer = null // 将变量重置为 null,以便下次创建新的模态窗口 - } - } - - // 创建JSONindex - - function createReportUI(data, itemsPerPage) { - temporaryData = data - // 创建全屏遮罩层 - const overlay = document.createElement('div') - overlay.className = 'overlay' - overlay.style.cssText = ` - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 1); /* 全黑不透明背景 */ - z-index: 9999; /* 确保遮罩层位于所有内容之上 */ - ` - // document.body.appendChild(overlay); - - const modalContainer = document.createElement('div') - modalContainer.className = 'modal-container' - modalContainer.style.cssText = ` - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: rgba(255, 255, 255, 1); - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); - z-index: 10000; /* 确保弹出框位于遮罩层之上 */ - padding: 20px; - width: 80%; - max-width: 800px; - ` - const title = document.createElement('h2') - title.textContent = `当前共有片单数量: ${temporaryData.length}` - - title.style.textAlign = 'center' - modalContainer.appendChild(title) - - const closeButton = document.createElement('button') - closeButton.textContent = '×' - closeButton.style.position = 'absolute' - closeButton.style.top = '10px' - closeButton.style.right = '10px' - closeButton.style.backgroundColor = 'transparent' - closeButton.style.border = 'none' - closeButton.style.fontSize = '24px' - closeButton.style.cursor = 'pointer' - modalContainer.appendChild(closeButton) - - closeButton.addEventListener('click', () => { - - // document.body.removeChild(overlay); // 移除遮罩层 - document.body.removeChild(modalContainer) // 移除模态框 - }) - - const tableContainer = document.createElement('div') - tableContainer.style.cssText = ` - max-height: 60vh; - overflow-y: auto; - ` - modalContainer.appendChild(tableContainer) - - const table = document.createElement('table') - table.style.width = '100%' - table.style.borderCollapse = 'collapse' - table.style.fontSize = '16px' - tableContainer.appendChild(table) - - const thead = document.createElement('thead') - table.appendChild(thead) - - const headerRow = document.createElement('tr') - thead.appendChild(headerRow) - - const checkboxHeader = document.createElement('th') - checkboxHeader.textContent = '选择' - checkboxHeader.style.textAlign = 'center' - checkboxHeader.style.padding = '10px' - headerRow.appendChild(checkboxHeader) - - const nameHeader = document.createElement('th') - nameHeader.textContent = '片单' - nameHeader.style.padding = '10px' - nameHeader.style.width = '40%' - headerRow.appendChild(nameHeader) - - const urlHeader = document.createElement('th') - urlHeader.textContent = '地址' - urlHeader.style.padding = '10px' - urlHeader.style.width = '40%' - headerRow.appendChild(urlHeader) - - const tbody = document.createElement('tbody') - table.appendChild(tbody) - - let currentPage = 1 - const totalItems = data.length - const totalPages = Math.ceil(totalItems / itemsPerPage) - - function generateTableData(page) { - tbody.innerHTML = '' - - const startIndex = (page - 1) * itemsPerPage - const endIndex = startIndex + itemsPerPage - - for (let i = startIndex; i < endIndex && i < data.length; i++) { - const row = document.createElement('tr') - tbody.appendChild(row) - // 序号列 - const indexCell = document.createElement('td') - indexCell.textContent = i + 1 // 显示序号,从1开始 - indexCell.style.textAlign = 'center' - indexCell.style.padding = '5px' - row.appendChild(indexCell) - const checkboxCell = document.createElement('td') - checkboxCell.style.textAlign = 'center' - checkboxCell.style.padding = '5px' - const checkbox = document.createElement('input') - checkbox.type = 'checkbox' - checkbox.id = `checkbox_${i}` - checkbox.value = i - checkboxCell.appendChild(checkbox) - row.appendChild(checkboxCell) - - const nameCell = document.createElement('td') - nameCell.textContent = data[i].name - nameCell.style.padding = '10px' - nameCell.style.borderBottom = '1px solid #ddd' - row.appendChild(nameCell) - - const urlCell = document.createElement('td') - const fullUrl = "https://missav.com/playlists/" + data[i].key - const link = document.createElement('a') - link.textContent = fullUrl - link.href = fullUrl - link.target = '_blank' // 在新标签页中打开链接 - urlCell.appendChild(link) - urlCell.style.padding = '10px' - urlCell.style.borderBottom = '1px solid #ddd' - row.appendChild(urlCell) - } - } - - generateTableData(currentPage) - - const paginationContainer = document.createElement('div') - paginationContainer.style.marginTop = '20px' - paginationContainer.style.textAlign = 'center' - modalContainer.appendChild(paginationContainer) - - const prevButton = document.createElement('button') - prevButton.textContent = '上一页' - prevButton.style.marginRight = '10px' - prevButton.disabled = true - - const pageIndicator = document.createElement('span') - pageIndicator.style.marginRight = '10px' - updatePageIndicator() - paginationContainer.appendChild(pageIndicator) - - const nextButton = document.createElement('button') - nextButton.textContent = '下一页' - nextButton.style.marginLeft = '10px' - if (totalPages <= 1) { - nextButton.disabled = true - } - - prevButton.addEventListener('click', () => { - currentPage-- - generateTableData(currentPage) - updatePaginationButtons() - updatePageIndicator() - }) - - nextButton.addEventListener('click', () => { - currentPage++ - generateTableData(currentPage) - updatePaginationButtons() - updatePageIndicator() - }) - - function updatePaginationButtons() { - prevButton.disabled = currentPage === 1 - nextButton.disabled = currentPage === totalPages - } - - function updatePageIndicator() { - pageIndicator.textContent = `第 ${currentPage}/${totalPages} 页` - } - const selectAllButton = document.createElement('button') - selectAllButton.textContent = '全部选择' - selectAllButton.style.marginRight = '10px' - selectAllButton.style.marginTop = '20px' - selectAllButton.style.padding = '10px 20px' - selectAllButton.style.fontSize = '16px' - selectAllButton.style.backgroundColor = '#007bff' - selectAllButton.style.color = '#fff' - selectAllButton.style.border = 'none' - selectAllButton.style.borderRadius = '5px' - selectAllButton.style.cursor = 'pointer' - selectAllButton.style.float = 'left' - modalContainer.appendChild(selectAllButton) - - let selectAll = true - - selectAllButton.addEventListener('click', () => { - const checkboxes = document.querySelectorAll('input[type="checkbox"]') - checkboxes.forEach(checkbox => { - checkbox.checked = selectAll - }) - - if (selectAll) { - selectAllButton.textContent = '取消选择' - } else { - selectAllButton.textContent = '全部选择' - } - - selectAll = !selectAll - }) - // - - const confirmButton = document.createElement('button') - confirmButton.textContent = '确认选择' - confirmButton.style.marginTop = '20px' - confirmButton.style.padding = '10px 20px' - confirmButton.style.fontSize = '16px' - confirmButton.style.backgroundColor = '#007bff' - confirmButton.style.color = '#fff' - confirmButton.style.border = 'none' - confirmButton.style.borderRadius = '5px' - confirmButton.style.cursor = 'pointer' - confirmButton.style.float = 'right' - modalContainer.appendChild(confirmButton) - - document.body.appendChild(modalContainer) - - confirmButton.addEventListener('click', () => { - const checkboxes = document.querySelectorAll('input[type="checkbox"]') - let anyCheckboxChecked = false - checkboxes.forEach(checkbox => { - if (checkbox.checked) { - - const index = parseInt(checkbox.value, 10) - if (index >= 0 && index < temporaryData.length) { - // 检查 temporaryData[index] 是否为 undefined 或 null - if (temporaryData[index]) { - // 将选中的名称和URL推送到全局变量 - names.push(temporaryData[index].name) - urls.push("https://missav.com/playlists/" + temporaryData[index].key) - anyCheckboxChecked = true - } else { - console.error(`temporaryData[${index}] is undefined or null.`) - } - } else { - console.error(`Index ${index} is out of bounds for temporaryData.`) - } - } - - }) - - document.body.removeChild(modalContainer) - // document.body.removeChild(overlay); - if (anyCheckboxChecked) { - - processUrls() - window.showLogContainer() - } - - }) - } - function ini() { - delayTime = GM_getValue('delayTime', 1000) // 从GM存储中读取延迟时间 - shouldReplace = GM_getValue('shouldReplace', false) // 从GM存储中读取状态 - saveJson = GM_getValue('saveJson', false) // 从GM存储中读取状态 - useDefaultTitle = GM_getValue('useDefaultTitle', true) - pageCount = GM_getValue('pageCount', true) - saveVideoInfo = GM_getValue('saveVideoInfo', false) - saveImage = GM_getValue('saveImage', true) - downloadLogFileA = GM_getValue('downloadLogFileA', false) - savetowebdav = GM_getValue('savetowebdav', false) - webdavUrl = GM_getValue('webdavUrl', '') - webdavUsername = GM_getValue('webdavUsername', '') - webdavPassword = GM_getValue('webdavPassword', '') - - } - // 创建设置界面 - function createControl(tagName, attributes = {}, styles = {}, parent = document.body) { - const element = document.createElement(tagName) - - // 设置属性 - for (const key in attributes) { - element[key] = attributes[key] - } - - // 设置样式 - Object.assign(element.style, styles) - - // 添加到父元素 - if (parent) { - parent.appendChild(element) - } - - return element - } - - function createSettingsUI() { - const modalContainer = createControl('div', { - className: 'settings-modal' - }, { - position: 'fixed', - top: '50%', - left: '50%', - transform: 'translate(-50%, -50%)', - backgroundColor: 'rgba(255, 255, 255, 1)', - borderRadius: '8px', - boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)', - zIndex: '9999', - padding: '20px', - width: '400px', - maxWidth: '80%' - }) - - const title = createControl('h2', { - textContent: '设置' - }, { - textAlign: 'center' - }) - modalContainer.appendChild(title) - - // 创建控件并添加到模态框 - const controls = [ - { - type: 'checkbox', - id: 'saveImageCheckbox', - label: '下载图片', - checked: GM_getValue('saveImage', true), - onchange: function () { GM_setValue('saveImage', this.checked) } - }, - { - type: 'checkbox', - id: 'saveJsonCheckbox', - label: '下载JSON', - checked: GM_getValue('saveJson', false), - onchange: function () { GM_setValue('saveJson', this.checked) } - }, - { - type: 'checkbox', - id: 'hdImageCheckbox', - label: '下载高清大图', - checked: GM_getValue('shouldReplace', false), - onchange: function () { GM_setValue('shouldReplace', this.checked) } - }, - { - type: 'checkbox', - id: 'defaultTitleCheckbox', - label: '使用网页标题名保存', - checked: GM_getValue('useDefaultTitle', true), - onchange: function () { GM_setValue('useDefaultTitle', this.checked) } - }, - { - type: 'checkbox', - id: 'saveVideoInfoCheckbox', - label: '下载视频信息', - checked: GM_getValue('saveVideoInfo', false), - onchange: function () { GM_setValue('saveVideoInfo', this.checked) } - }, - { - type: 'checkbox', - id: 'pageCountCheckbox', - label: '自定义抓取页数', - checked: GM_getValue('pageCount', true), - onchange: function () { GM_setValue('pageCount', this.checked) } - }, - { - type: 'checkbox', - id: 'downloadLogFileA', - label: '保存下载日志', - checked: GM_getValue('downloadLogFileA', false), - onchange: function () { GM_setValue('downloadLogFileA', this.checked) } - }, - { - type: 'checkbox', - id: 'savetowebdav', - label: '上传JSON到WebDav', - checked: GM_getValue('savetowebdav', false), - onchange: function () { GM_setValue('savetowebdav', this.checked) } - }, - { - type: 'number', - id: 'delayInput', - label: '设置延迟(毫秒)', - value: GM_getValue('delayTime', 1000), - placeholder: '设置延迟(毫秒)', - onchange: function () { GM_setValue('delayTime', this.value) }, - style: { - width: '1px' // 设置输入框宽度为100% - } - }, - { - type: 'text', - id: 'webdavUrlInput', - label: 'WebDAV 网址', - value: GM_getValue('webdavUrl', ''), - placeholder: '输入WebDAV网址', - onchange: function () { GM_setValue('webdavUrl', this.value) } - }, - { - type: 'text', - id: 'webdavUsernameInput', - label: 'WebDAV 账号', - value: GM_getValue('webdavUsername', ''), - placeholder: '输入WebDAV账号', - onchange: function () { GM_setValue('webdavUsername', this.value) } - }, - { - type: 'text', - id: 'webdavPasswordInput', - label: 'WebDAV 密码', - value: GM_getValue('webdavPassword', ''), - placeholder: '输入WebDAV密码', - onchange: function () { GM_setValue('webdavPassword', this.value) } - } - ] - - controls.forEach(control => { - const input = createControl('input', { - type: control.type, - id: control.id, - checked: control.checked, - value: control.value, - placeholder: control.placeholder, - onchange: control.onchange - }, { - marginRight: '10px' - }) - - const label = createControl('label', { - textContent: control.label, - htmlFor: control.id - }, { - fontSize: '14px', - marginLeft: '5px' - }) - - modalContainer.appendChild(input) - modalContainer.appendChild(label) - modalContainer.appendChild(createControl('br')) - }) - - // 关闭按钮 - const closeButton = createControl('button', { - textContent: '关闭', - onclick: () => { - ini() - WebDAVManager.updateConfig(webdavUrl, webdavUsername, webdavPassword) - document.body.removeChild(modalContainer) - } - }, { - marginTop: '10px', - padding: '10px 20px', - fontSize: '16px', - backgroundColor: '#007bff', - color: '#fff', - border: 'none', - borderRadius: '5px', - cursor: 'pointer', - float: 'right' - }) - - modalContainer.appendChild(closeButton) - - // 将模态框添加到页面 - document.body.appendChild(modalContainer) - - // 添加移动端样式 - const mediaQuery = window.matchMedia('(max-width: 600px)') - if (mediaQuery.matches) { - modalContainer.style.width = '90%' - modalContainer.style.maxWidth = '90%' - modalContainer.style.padding = '10px' - } - } - - // 在页面加载时调用设置界面创建函数 - - - // 调用示例 - - - const WebDAVManager = (function () { - // WebDAV 配置 - let url = webdavUrl - let username = webdavUsername - let password = webdavPassword - - - // 通用 GM_xmlhttpRequest 封装函数 - function GM_xhr({ path = '/', method, success, fail, headers = {}, data, ...config }) { - - return new Promise(resolve => { - GM_xmlhttpRequest({ - url: url + path, - method, - ...config, - headers: { - 'Connection': 'Keep-Alive', // 保持连接 - 'User-Agent': 'Mozilla/5.0', // 用户代理 - 'Authorization': 'Basic ' + btoa(username + ':' + password), // 基本认证 - ...headers - }, - data, - onload: xhr => { - if (xhr.status >= 200 && xhr.status < 300) { - if (success) success(xhr) - } else { - if (fail) fail(xhr) - } - resolve(xhr) - }, - onerror: xhr => { - if (fail) fail(xhr) - resolve(xhr) - } - }) - }) - } - //登录 - async function login() { - let retryCount = 2 // 设置重试次数为2次 - - while (retryCount > 0) { - // 构建登录请求 - const LOGIN = { - method: 'PROPFIND', // 使用 PROPFIND 方法检查根目录 - path: retryCount === 2 ? '/' : '', // 根据重试次数设置 path - headers: { - 'Depth': '1', - 'Authorization': 'Basic ' + btoa(username + ':' + password), - 'Connection': 'Keep-Alive', // 保持连接 - 'User-Agent': 'Mozilla/5.0' // 用户代理 - } - } - - // 发起登录请求 - const loginResponse = await GM_xhr(LOGIN) - - // 判断登录结果 - if (loginResponse.status === 207) { - console.log('登录成功') - // 登录成功后,可以执行其他操作 - showModal("Webdav登录成功!", 1000) - return true // 返回登录成功标志 - } else { - console.error('登录失败:', loginResponse.status) - if (retryCount === 1) { - showModal("Webdav登录失败!" + loginResponse.status, 1000) - return false // 返回登录失败标志 - } else { - retryCount-- // 减少重试次数 - } - } - } - - // 如果重试次数用尽仍未登录成功,执行其他操作(可根据实际情况添加代码) - console.error('重试次数用尽,登录失败') - showModal("Webdav登录失败!重试次数用尽", 1000) - return false - } - - //刷新 - function updateConfig(newUrl, newUsername, newPassword) { - if (newUrl && newUsername && newPassword) { - url = newUrl - username = newUsername - password = newPassword - // 在这里调用登录函数 - login() - } else { - console.error('WebDAV 配置信息不完整') - } - } - // 获取 WebDAV 中指定路径下的所有文件和文件夹 - async function listFilesAndFolders(folderName) { - const path = folderName.endsWith('/') ? folderName : folderName + '/' - const PROPFIND = { - method: 'PROPFIND', - headers: { - 'Depth': '1' - }, - success: (xhr) => { - const parser = new DOMParser() - const xmlDoc = parser.parseFromString(xhr.responseText, 'text/xml') - const responses = xmlDoc.getElementsByTagNameNS('DAV:', 'response') - - let fileCount = 0 - //let fileList = `
          `; - let fileList = "" - - for (let i = 0; i < responses.length; i++) { - const href = decodeURIComponent(responses[i].getElementsByTagNameNS('DAV:', 'href')[0].textContent.trim()) - const displayName = href.substring(href.lastIndexOf('/') + 1) - const isCollection = responses[i].getElementsByTagNameNS('DAV:', 'collection').length > 0 - - if (!isCollection) { - fileList += ` -
        2. - - ${fileCount + 1}. - ${displayName} -
          - 更名 - 删除 - 下载 -
          -
          -
        3. - ` - fileCount++ - } - } - /*fileList += ` -
          -

          文件数量: ${fileCount}

          - - `;*/ - fileList += '' - - showDialog(` - 文件夹 ${folderName}
          - 文件数量: ${fileCount} -
          - `, fileList) - - }, - fail: (xhr) => { - alert('获取文件列表失败:' + xhr.status) - } - } - - await GM_xhr({ ...PROPFIND, path }) - } - - // 下载文件函数 - - // 在 WebDAV 中创建新文件夹 - async function createFolder(folderName) { - const MKCOL = { - method: 'MKCOL', - path: folderName.endsWith('/') ? folderName : folderName + '/', - success: () => { - alert('文件夹创建成功') - }, - fail: (xhr) => { - if (xhr.status === 409) { - // alert('冲突:文件夹可能已经存在或路径不正确'); - } else { - //alert('创建文件夹失败:' + xhr.status); - } - } - } - - await GM_xhr({ ...MKCOL }) - } - - // 上传文件到 WebDAV - - async function uploadFile(folderName, fileName, fileContent) { - // 检查文件是否已存在 - const HEAD = { - method: 'HEAD', - path: folderName + '/' + fileName, - success: () => { - //alert('文件已存在,无需重复上传'); - window.addToLog(fileName + '文件存在', 'info') - // 可以在这里执行文件已存在时的逻辑,比如显示提示信息或执行其他操作 - }, - fail: async (xhr) => { - if (xhr.status === 404) { - // 文件不存在,执行上传操作 - const PUT = { - method: 'PUT', - path: folderName + '/' + fileName, - data: fileContent, - success: () => { - - window.addToLog(fileName + '文件上传成功', 'info') - }, - fail: (xhr) => { - window.addToLog(fileName + '文件上传失败', 'error') - } - } - - await GM_xhr({ ...PUT }) - } else { - window.addToLog(fileName + '文件检查上传失败', 'error') - } - } - } - - await GM_xhr({ ...HEAD }) - } - - // 重命名文件 - async function renameFile(folderName, oldFileName) { - // 弹出对话框让用户输入新文件名 - const newFileName = prompt(`请输入 ${oldFileName} 的新文件名:`) - if (!newFileName) { - alert('未输入新文件名,操作已取消。') - return - } - const encodedOldFileName = encodeURIComponent(oldFileName) // 对旧文件名进行编码 - - const encodedNewFileName = encodeURIComponent(newFileName + '.json') // 对新文件名进行编码 - const sourcePath = folderName + '/' + encodedOldFileName - const destinationPath = folderName + '/' + encodedNewFileName - - const MOVE = { - method: 'MOVE', - path: sourcePath, - headers: { - 'Destination': url + destinationPath, - 'Overwrite': 'T' // 允许覆盖目标文件 - }, - success: () => { - alert(`文件 ${oldFileName} 已成功重命名为 ${newFileName}`) - listFilesAndFolders(folderName) // 刷新文件列表 - }, - fail: (xhr) => { - if (xhr.status === 409) { - alert('冲突:文件名可能已存在或路径不正确') - } else { - alert('重命名文件失败:' + xhr.status) - } - } - } - - await GM_xhr({ ...MOVE }) - } - - - // 删除文件 - async function deleteFile(folderName, fileName) { - let confirmdelete = false - if (deleteSelected) { - confirmdelete = true - } else { - confirmdelete = confirm(`确定要删除文件 ${fileName} 吗?`) - } - - if (confirmdelete) { - try { - await deleteFileFromServer(folderName, fileName) - const fileItem = document.querySelector(`a[onclick*="${fileName}"]`).closest('li') - const checkbox = fileItem.querySelector('input[type="checkbox"]') - if (checkbox && checkbox.checked) { - checkbox.checked = false // 清除选中状态 - checkbox.disabled = true // 禁止操作 - } - markItemDeleted(fileItem) - } catch (error) { - alert('删除文件失败:' + error.message) - } - } - } - function markItemDeleted(fileItem) { - // 将文件名链接标记为已删除 - const fileNameLink = fileItem.querySelector('a') - fileNameLink.style.textDecoration = 'line-through' - fileNameLink.removeAttribute('onclick') - fileNameLink.style.pointerEvents = 'none' // 不可点击 - fileNameLink.style.color = 'gray' // 设置为灰色 - - // 将后续按钮标记为已删除 - const actionButtons = fileItem.querySelectorAll('div > a') - actionButtons.forEach(button => { - button.style.textDecoration = 'line-through' - button.removeAttribute('onclick') - button.style.pointerEvents = 'none' // 不可点击 - button.style.color = 'gray' // 设置为灰色 - }) - } - // 实际删除文件的函数 - async function deleteFileFromServer(folderName, fileName) { - const DELETE = { - method: 'DELETE', - path: folderName + '/' + fileName, - } - - return new Promise((resolve, reject) => { - GM_xhr({ ...DELETE, success: resolve, fail: reject }) - }) - } - - // 检查文件夹是否存在 - async function checkFolderExists(folderName) { - const HEAD = { - method: 'HEAD', - path: folderName.endsWith('/') ? folderName : folderName + '/', - success: (xhr) => { - if (xhr.status === 200) { - // alert('文件夹存在'); - } else if (xhr.status === 404) { - alert('文件夹不存在') - } else { - alert('检查文件夹状态失败:' + xhr.status) - } - }, - fail: (xhr) => { - alert('检查文件夹失败:' + xhr.status) - } - } - - await GM_xhr({ ...HEAD }) - } - - // 下载并展示文件 - async function downloadFile(folderName, fileName, zip = null) { - return new Promise((resolve, reject) => { - // 发起 GET 请求下载文件内容 - const GET = { - method: 'GET', - path: folderName + '/' + fileName, - success: (xhr) => { - const fileContent = xhr.responseText - const jsonData = JSON.parse(fileContent) - const content = generateJsonIndexContent(jsonData) - - if (zip) { - // 如果传入了压缩包实例,则将文件内容添加到压缩包中 - const sanitizedFileName = sanitizeFileName(fileName.replace('.json', '')) + '.html' - zip.file(sanitizedFileName, content) - resolve() - } else { - // 否则直接下载文件 - const blob = new Blob([content], { type: 'text/html' }) - const htmlUrl = URL.createObjectURL(blob) - const a = document.createElement('a') - a.href = htmlUrl - a.download = sanitizeFileName(fileName.replace('.json', '')) + '.html' - a.click() - resolve() - } - }, - fail: (xhr) => { - reject(new Error('下载文件失败:' + xhr.status)) - } - } - - GM_xhr({ ...GET }) - }) - } - - - - async function downloadAndDisplayFile(folderName, fileName) { - const GET = { - method: 'GET', - path: folderName + '/' + fileName, - success: (xhr) => { - try { - const fileContent = xhr.responseText - const jsonData = JSON.parse(fileContent) - const content = generateJsonIndexContent(jsonData) - - // 打开一个新的浏览器标签页显示内容 - const dataUrl = 'data:text/html;charset=utf-8,' + encodeURIComponent(content) - GM_openInTab(dataUrl) - } catch (e) { - alert('解析 JSON 文件失败:' + e.message) - } - }, - fail: (xhr) => { - alert('下载文件失败:' + xhr.status) - } - } - - await GM_xhr({ ...GET }) - } - //我是你爹啊 - // 显示对话框 - function showDialog(title, fileList, folderName) { - // 添加CSS样式 - const style = document.createElement('style') - style.textContent = ` -.overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - z-index: 9998; -} - -.dialog { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #fff; - padding: 20px; - border-radius: 10px; - width: 80%; - max-height: 80%; - overflow-y: auto; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); - z-index: 9999; -} - -.dialog-title { - margin-bottom: 20px; -} - -.dialog-button { - padding: 10px 20px; - border: none; - border-radius: 5px; - cursor: pointer; - margin-bottom: 20px; -} - -.select-button { - background-color: #007BFF; - color: #fff; -} - -.delete-button { - background-color: #dc3545; - color: #fff; - margin-left: 10px; -} - -.select-all-button { - background-color: #28a745; - color: #fff; - margin-left: 10px; -} - -.download-button { - background-color: #007BFF; - color: #fff; - margin-left: 10px; -} - -.search-button { - background-color: #6c757d; - color: #fff; - margin-left: 10px; - border: none; - border-radius: 5px; - cursor: pointer; -} - .close-x-button { - background-color: #6c757d; - color: red; - margin-left: 10px; - border: none; - border-radius: 5px; - cursor: pointer; - } - -.search-button:hover { - background-color: #495057; -} - -.close-button { - background-color: #007BFF; - color: #fff; - margin-top: 20px; -} - -.file-list { - list-style-type: none; - padding: 0; -} - -.file-action { - margin-right: 10px; - float: left; - color: blue; - cursor: pointer; -} - -.file-actions-container { - float: right; -} - -.clear-float { - clear: both; -} - -.file-item { - border-bottom: 1px solid #ddd; - padding: 10px 0; - display: flex; - align-items: center; -} - -.file-checkbox { - margin-right: 10px; -} - -.file-link { - margin-right: 10px; - color: blue; - flex-grow: 1; -} - -.file-actions { - display: flex; - gap: 10px; -} - -.file-action { - color: #007BFF; - cursor: pointer; -} - -.custom-hr { - height: 1px; - background-color: #007BFF; - margin: 20px 0; -} - -.file-action:hover { - text-decoration: underline; -} - -@media (max-width: 600px) { - .dialog-button { - padding: 5px 10px; - font-size: 12px; - margin-bottom: 10px; - } - - .delete-button, - .download-button, - .select-all-button, - .close-x-button, - .search-button { - margin-left: 0; - } - - .button-container { - right: 5px; - } -} - - ` - document.head.appendChild(style) - - // 创建对话框 - const dialog = document.createElement('div') - dialog.className = 'dialog' - // 创建遮罩 - - - function close() { - document.body.removeChild(dialog) - - } - - // 标题 - const titleElement = document.createElement('h1') - titleElement.innerHTML = title - titleElement.className = 'dialog-title' - dialog.appendChild(titleElement) - - - const buttonContainer = document.createElement('div') - const buttonConfigs = [ - { text: '选择列表', className: 'dialog-button select-button', onclick: toggleSelection }, - { text: '搜索列表', className: 'dialog-button search-button', onclick: toggleSearch }, - { text: '关闭窗口', className: 'dialog-button close-x-button', onclick: close }, - { text: '全部选中', className: 'dialog-button select-all-button', onclick: toggleSelectAll }, - { text: '删除选中', className: 'dialog-button delete-button', onclick: deleteSelectedFiles }, - { text: '下载选中', className: 'dialog-button download-button', onclick: downloadSelectedFiles } - - // 可以添加更多按钮配置 - ] - let count = 0 // 计数器,用于控制显示状态 - buttonConfigs.forEach(config => { - const button = document.createElement('button') - button.textContent = config.text - button.className = config.className - button.onclick = config.onclick - - if (count < 3) { - button.style.display = 'inline-block' // 前两个按钮初始可见 - } else { - button.style.display = 'none' // 后面的按钮初始隐藏 - } - - buttonContainer.appendChild(button) - count++ // 每创建一个按钮,计数器加一 - }) - // 将按钮容器添加到对话框中 - dialog.appendChild(buttonContainer) - - // 文件列表 - const fileListContainer = document.createElement('ul') - fileListContainer.className = 'file-list' - fileListContainer.innerHTML = fileList - dialog.appendChild(fileListContainer) - - // 添加到body - - document.body.appendChild(dialog) - let selectButtonInitialTop = 0 - let selectAllButton = document.querySelector('.select-all-button') - let searchButton = document.querySelector('.search-button') - let downloadSelectedButton = document.querySelector('.download-button') - let deleteSelectedButton = document.querySelector('.delete-button') - let selectButton = document.querySelector('.select-button') - let closeXButton = document.querySelector('.close-x-button') - let scrollTimeout = 0 // 定义全局变量存储定时器 - // 记录选择按钮的初始位置 - if (selectButton) { - selectButtonInitialTop = selectButton.offsetTop - } - - // 监听对话框的滚动事件 - dialog.addEventListener('scroll', function () { - clearTimeout(scrollTimeout) - const buttons = [ - { button: selectButton, offsetHeight: true }, - { button: selectAllButton, offsetHeight: true }, - - { button: deleteSelectedButton, offsetHeight: true }, - { button: downloadSelectedButton, offsetHeight: true }, - { button: searchButton, offsetHeight: true }, - { button: closeXButton, offsetHeight: true }, - - - // 添加更多按钮对象,如果有的话 - ] - scrollTimeout = setTimeout(() => { - if (buttons.every(buttonObj => buttonObj.button)) { - const dialogRect = dialog.getBoundingClientRect() - const fileListRect = fileListContainer.getBoundingClientRect() - const newButtonTopBase = Math.max(fileListRect.top, dialog.scrollTop) - let newButtonTop = newButtonTopBase - - for (const { button, offsetHeight } of buttons) { - if (button) { - button.style.position = dialog.scrollTop === 0 ? 'static' : 'absolute' - button.style.top = `${newButtonTop}px` - button.style.right = '10px' - if (offsetHeight) { - newButtonTop += button.offsetHeight - } - } - } - } - }, 300) // 设置 300 毫秒的超时 - }) - - - // 获取所有复选框 - const checkboxes = fileListContainer.querySelectorAll('input[type="checkbox"]') - - // 初始隐藏复选框 - checkboxes.forEach(checkbox => { - checkbox.style.display = 'none' - }) - //选中全部 - function toggleSelectAll() { - const checkboxes = document.querySelectorAll('input[name="fileCheckbox"]') - const allChecked = Array.from(checkboxes).every(checkbox => checkbox.checked) - - checkboxes.forEach(checkbox => { - checkbox.checked = !allChecked - }) - - // 切换按钮文本和背景颜色 - if (allChecked) { - selectAllButton.textContent = '全部选中' - selectAllButton.style.backgroundColor = '' // 恢复默认背景颜色 - } else { - selectAllButton.textContent = '全部取消选中' - selectAllButton.style.backgroundColor = 'red' // 改为红色背景 - } - } - //搜索 - //--------------- - function toggleSearch() { - if (searchButton.textContent === '搜索列表') { - // 如果当前是搜索状态,则进行搜索 - const searchTerm = prompt('请输入搜索内容:') // 弹出输入框等待用户输入搜索内容 - if (searchTerm !== null) { // 用户点击了确定按钮 - filterFiles(searchTerm) // 调用过滤文件函数,传入搜索关键词 - searchButton.textContent = '回到列表' // 将搜索按钮文本改为"Back" - } - } else { - // 如果当前是Back状态,则恢复初始文件列表 - resetFileList() - } - } - - function filterFiles(searchTerm) { - const files = Array.from(fileListContainer.children) // 获取文件列表的所有子元素(文件项) - let matchCount = 0 // 初始化匹配数量为 0 - - // 遍历文件列表,根据搜索关键词过滤显示符合条件的文件项 - files.forEach(file => { - const fileName = file.querySelector('.file-link').textContent.toLowerCase() // 获取文件名并转换为小写 - if (fileName.includes(searchTerm.toLowerCase())) { - file.style.display = '' // 匹配到的文件项显示 - matchCount++ // 匹配数量加一 - } else { - file.style.display = 'none' // 不匹配的文件项隐藏 - } - }) - - // 更新文件数量标签内容 - const fileCountLabel = document.getElementById('fileCountLabel') - if (fileCountLabel) { - fileCountLabel.textContent = `搜索数量: ` - } - - // 更新包裹文件数量的元素内容 - const fileCountElement = document.querySelector('.file-count') - if (fileCountElement) { - fileCountElement.textContent = matchCount - } - } - - - // 恢复初始文件列表函数 - function resetFileList() { - const files = Array.from(fileListContainer.children) // 获取文件列表的所有子元素(文件项) - files.forEach(file => { - file.style.display = '' // 显示所有文件项 - }) - searchButton.textContent = '搜索列表' // 恢复搜索按钮文本为"搜索" - - // 更新文件数量标签内容为 "文件数量:" - const fileCountLabel = document.getElementById('fileCountLabel') - if (fileCountLabel) { - fileCountLabel.textContent = '文件数量:' - } - - // 更新包裹文件数量的元素内容为当前文件数量 - const fileCountElement = document.querySelector('.file-count') - if (fileCountElement) { - const currentFileCount = files.length // 获取当前文件数量 - fileCountElement.textContent = currentFileCount - } - } - //搜索结束 - //--------------- - - // 选择列表 - function toggleSelection() { - - checkboxes.forEach(checkbox => { - checkbox.style.display = checkbox.style.display === 'none' ? 'inline-block' : 'none' - checkbox.checked = false // 取消复选框的选中状态 - }) - - // 切换显示“删除选中”和“下载选中”按钮 - deleteSelectedButton.style.display = deleteSelectedButton.style.display === 'none' ? 'inline-block' : 'none' - downloadSelectedButton.style.display = downloadSelectedButton.style.display === 'none' ? 'inline-block' : 'none' - selectAllButton.style.display = selectAllButton.style.display === 'none' ? 'inline-block' : 'none' - selectButton.textContent = downloadSelectedButton.style.display === 'none' ? '选择列表' : '取消选择' - } - - } - //选中下载 - async function downloadSelectedFiles() { - // 获取所有选中的复选框 - const checkboxes = document.querySelectorAll('input[name="fileCheckbox"]:checked') - if (checkboxes.length === 0) { - showModal('没有选中的文件', 2000) - return - } - // 创建一个 JSZip 实例 - const zip = new JSZip() - - try { - // 遍历所有选中的复选框 - for (const checkbox of checkboxes) { - // 获取文件项信息 - const fileItem = checkbox.closest('li') - const fileName = fileItem.querySelector('a[data-display-name]').dataset.displayName - - // 调用 downloadFile 函数,将文件添加到压缩包中 - await downloadFile(webdavfold, fileName, zip) - } - - // 生成 ZIP 文件 - const zipBlob = await zip.generateAsync({ type: 'blob' }) - - // 创建下载链接并触发下载 - const zipUrl = URL.createObjectURL(zipBlob) - const a = document.createElement('a') - a.href = zipUrl - a.download = 'selected_files.zip' - a.click() - - console.log('压缩包下载完成') - showModal('下载选中完成:', 2000) - } catch (error) { - console.error('下载选中文件失败:', error) - showModal('下载选中文件失败: ' + error.message, 2000) - - } - } - - - //选中删除 - function deleteSelectedFiles() { - // 获取所有选中的复选框 - const selectedCheckboxes = document.querySelectorAll('input[name="fileCheckbox"]:checked') - - if (selectedCheckboxes.length === 0) { - alert('没有选中文件') - return - } - - // 弹出确认删除的提示框 - const confirmDelete = confirm('确定要删除选中的文件吗?') - - if (confirmDelete) { - deleteSelected = true - selectedCheckboxes.forEach(checkbox => { - const fileItem = checkbox.closest('li') - const deleteButton = fileItem.querySelector('a[onclick*="deleteFile"]') - - // 调试日志 - console.log('fileItem:', fileItem) - console.log('deleteButton:', deleteButton) - - // 获取文件名 - const fileName = fileItem.querySelector('a[data-display-name]').dataset.displayName - - // 添加调试日志 - console.log('Deleting file:', fileName) - - // 触发删除按钮的点击事件 - deleteButton.click() - //deleteFile(webdavfold,fileName); - - // 将文件项标记为已删除 - // markItemDeleted(fileItem); - }) - deleteSelected = false - console.log('删除选中文件') - } - } - - - // 将 API 方法公开 - return { - listFilesAndFolders, - updateConfig, - createFolder, - uploadFile, - renameFile, - deleteFile, - downloadFile, - downloadAndDisplayFile, - checkFolderExists - } - })() - - // 将库暴露到全局作用域 - unsafeWindow.WebDAVManager = WebDAVManager - - // 示例用法:列出文件和文件夹,创建新文件夹,上传文件,删除文件 - if (!url || !username || !password) { - console.error('WebDAV 配置更新失败:缺少 URL、用户名或密码') - return - } - WebDAVManager.updateConfig(webdavUrl, webdavUsername, webdavPassword) - WebDAVManager.createFolder(webdavfold) - WebDAVManager.checkFolderExists(webdavfold) - - //WebDAVManager.uploadFile(webdavfold, 'nidie.txt', '这是 example.txt 的内容'); - // WebDAVManager.deleteFile('Missav保存', 'example.txt'); - -})(); - - diff --git a/missav-explorer/README.md b/missav-explorer/README.md new file mode 100644 index 000000000..b77191ad8 --- /dev/null +++ b/missav-explorer/README.md @@ -0,0 +1,251 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          MissAv批量备份收藏视频

          +

          「 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + + +# Missav 批量提取器 + + + +## 简介 + +Missav 批量提取器是一个用于备份收藏夹和提取视频内容的工具。它可以抓取除了主页下的所有视频,并提供了自定义提取速度和文件命名的功能。下载完成后,生成一个包含图片的 `img` 文件夹和一个 `保存文件名.html` 命名网页文件,用于查看获得的视频信息。 + + + +## 功能 + +- **抓取视频**:可以抓取除主页外的所有视频,视频播放页面未测试过。 +- **生成按钮**:在页面右上角生成一个按钮,用于启动提取操作。 +- **自定义提取速度**:可以按自己想要的速度进行视频抓取。 +- **下载完成后生成文件**: + - **img 图片文件夹**:存储视频缩略图。 + - **jsonindex 网页文件**:包含视频信息,包括图片预览,点击图片可查看预览视频,点击标题可跳转到 Missav 自定义翻页和显示的页面。 +- **批量下载**:支持合并所有片单进行批量下载。 +- **批量操作**:支持从多个片单中批量提取视频。 +- **自定义文件名称**:支持自定义保存文件的名称。 +- **自定义提取速度**:可以设置提取视频的速度。 +- **HTML 生成界面**:支持从网络获取图片并生成 HTML 界面。 +- **高清大图下载**:支持下载高清大图。 +- **支持WebDAV备份**:在下载同时保存到webdav。 + + + +## 更新记录 + + + +### 2024/6/14 更新 + +- **批量下载合并所有片单**:支持将所有片单合并进行批量下载。 +- **除视频播放界面的所有视频提取**:提取除了视频播放界面外的所有视频。 +- **批量选取片单进行批量操作**:支持批量选取片单进行操作。 +- **去除弹出输入框**:去掉了不必要的输入框。 +- **自定义下载保存文件名称**:支持自定义下载文件的名称。 +- **自定义提取速度**:可以设置提取速度。 +- **HTML 生成的界面支持从网络获取图片**:生成的 HTML 界面可以从网络获取图片。 +- **下载高清大图**:支持下载高清大图。 + + + +## 已知问题 + +- **最后一页获取完成后提示获取超出最大页的信息**:实际不会去获取。 + + + +## 使用说明 + +1. **在视频分类下的首页使用**:打开视频分类页面的首页。 +2. **点击右上角的按钮**:启动提取操作。 +3. **设置提取速度**:根据需要调整提取速度。 +4. **下载视频和图片**:提取完成后会生成文件和图片。 +5. **查看 `jsonindex` 网页文件**:查看视频信息,点击图片查看预览,点击标题跳转到 Missav 页面。 + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/Script details/missav-auto-login-helper/missav-auto-login-helper.user.js b/missav-explorer/missav-explorer.user.js similarity index 53% rename from Script details/missav-auto-login-helper/missav-auto-login-helper.user.js rename to missav-explorer/missav-explorer.user.js index 4c3a5a4fd..d5cbe9e50 100644 --- a/Script details/missav-auto-login-helper/missav-auto-login-helper.user.js +++ b/missav-explorer/missav-explorer.user.js @@ -1,249 +1,2330 @@ // ==UserScript== -// @name MissAV Automatic login -// @name:zh-CN MissAV 自动登录 -// @description:zh-CN 检测 MissAV 状态,并且在未登录时自动登录 -// @name:ar MissAV تسجيل الدخول التلقائي -// @description:ar كشف MissAV ولاية,وتسجيل الدخول تلقائيًا في حالة عدم تسجيل الدخول -// @name:bg MissAV Автоматично влизане -// @description:bg Откриване MissAV състояние,и автоматично влизане, когато не сте влезли -// @name:cs MissAV Automatické přihlášení -// @description:cs Detekce MissAV stát,a automaticky se přihlásit, když nejste přihlášeni -// @name:da MissAV Automatisk login -// @description:da Opdagelse MissAV tilstand,og logger automatisk på, når du ikke er logget ind -// @name:de MissAV Automatische Anmeldung -// @description:de Erkennung MissAV Zustand,und melden Sie sich automatisch an, wenn Sie nicht angemeldet sind -// @name:el MissAV Αυτόματη σύνδεση -// @description:el Ανίχνευση MissAV κατάσταση,και αυτόματα συνδέεστε όταν δεν είστε συνδεδεμένοι -// @name:en MissAV Automatic login -// @description:en Detection MissAV state,and automatically log in when not logged in -// @name:eo MissAV Aŭtomata ensaluto -// @description:eo Detekto MissAV stato,kaj aŭtomate ensalutu kiam ne ensalutinta -// @name:es MissAV Inicio de sesión automático -// @description:es Detección MissAV estado,e iniciar sesión automáticamente cuando no haya iniciado sesión -// @name:fi MissAV Automaattinen sisäänkirjautuminen -// @description:fi Havaitseminen MissAV osavaltio,ja kirjaudu sisään automaattisesti, kun et ole kirjautunut sisään -// @name:fr MissAV Connexion automatique -// @description:fr Détection MissAV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté -// @name:he MissAV כניסה אוטומטית -// @description:he איתור MissAV מְדִינָה,והתחבר אוטומטית כאשר לא מחובר -// @name:hr MissAV Automatska prijava -// @description:hr Otkrivanje MissAV stanje,i automatski se prijavite kada niste prijavljeni -// @name:hu MissAV Automatikus bejelentkezés -// @description:hu Érzékelés MissAV állami,és automatikusan bejelentkezik, ha nincs bejelentkezve -// @name:id MissAV Masuk otomatis -// @description:id Deteksi MissAV negara,dan secara otomatis login ketika tidak login -// @name:it MissAV Accesso automatico -// @description:it Rilevamento MissAV stato,e accedi automaticamente quando non sei loggato -// @name:ja MissAV 自動ログイン -// @description:ja 検出 MissAV 州,ログインしていない場合は自動的にログインします -// @name:ka MissAV ავტომატური შესვლა -// @description:ka გამოვლენა MissAV სახელმწიფო,და ავტომატურად შედით სისტემაში, როდესაც არ ხართ შესული -// @name:ko MissAV 자동 로그인 -// @description:ko 발각 MissAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -// @name:nl MissAV Automatisch inloggen -// @description:nl Detectie MissAV staat,en automatisch inloggen als je niet ingelogd bent -// @name:nb MissAV Automatisk pålogging -// @description:nb Oppdagelse MissAV tilstand,og logger automatisk på når du ikke er pålogget -// @name:pl MissAV Automatyczne logowanie -// @description:pl Wykrywanie MissAV państwo,i automatycznie loguj się, gdy nie jesteś zalogowany -// @name:pt-BR MissAV Login automático -// @description:pt-BR Detecção MissAV estado,e faça login automaticamente quando não estiver conectado -// @name:ro MissAV Conectare automată -// @description:ro Detectare MissAV stat,și conectați-vă automat când nu sunteți autentificat -// @name:ru MissAV Автоматический вход -// @description:ru Обнаружение MissAV состояние,и автоматически входить в систему, когда вы не вошли в систему -// @name:sk MissAV Automatické prihlásenie -// @description:sk Detekcia MissAV štátu,a automaticky sa prihlásiť, keď nie ste prihlásení -// @name:sr MissAV Аутоматско пријављивање -// @description:sr Детецтион MissAV држава,и аутоматски се пријављује када нисте пријављени -// @name:sv MissAV Automatisk inloggning -// @description:sv Upptäckt MissAV ange,och logga in automatiskt när du inte är inloggad -// @name:th MissAV เข้าสู่ระบบอัตโนมัติ -// @description:th การตรวจจับ MissAV สถานะ,และเข้าสู่ระบบอัตโนมัติเมื่อไม่ได้เข้าสู่ระบบ -// @name:tr MissAV Otomatik giriş -// @description:tr Algılama MissAV durum,ve oturum açmadığınızda otomatik olarak oturum açın -// @name:ug MissAV ئاپتوماتىك كىرىش -// @description:ug بايقاش MissAV ئىشتات,ھەمدە كىرمىگەندە ئاپتوماتىك كىرىدۇ -// @name:uk MissAV Автоматичний вхід -// @description:uk виявлення MissAV стан,і автоматично ввійти, якщо ви не ввійшли -// @name:vi MissAV Đăng nhập tự động -// @description:vi Phát hiện MissAV tình trạng,và tự động đăng nhập khi chưa đăng nhập -// @name:zh-TW MissAV 自動登入 -// @description:zh-TW 偵測 MissAV 狀態,並且在未登入時自動登入 -// @name:zh-HK MissAV 自動登入 -// @description:zh-HK 偵測 MissAV 狀態,並且在未登入時自動登入 -// @name:fr-CA MissAV Connexion automatique -// @description:fr-CA Détection MissAV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté -// @description Detection MissAV state,and automatically log in when not logged in +// @name MissAv批量备份收藏视频 +// @name:zh-CN MissAv批量备份收藏视频 // @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 +// @version 1.2.3.73 +// @description 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +// @description:zh-CN 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +// @license MIT +// @author 人民的勤务员 & ChatGPT // @match https://missav.com/* -// @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_getValue -// @version 1.0.1.7 -// @require https://update.greasyfork.org/scripts/498897/1404834/Toastnew.js +// @grant GM_xmlhttpRequest +// @grant GM_download +// @grant GM_openInTab // @icon data:image/png;base64,/9j/4AAQSkZJRgABAQIAdgB2AAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAMgAyADAREAAhEBAxEB/8QAHQABAAEEAwEAAAAAAAAAAAAAAAgDBAcJAQIGBf/EAF4QAAEDAgMDBAkNDQYDCAICAwABAgMEBQYHERIhMQgTQVEXIlZhcYGx0dIJFDJCcnN1kZSVobKzFRYjNDU2NzhSVWJ0wRgZgpLh8CQz8SVDU5OiwsPTRGNUg0Zko//EAB0BAQABBQEBAQAAAAAAAAAAAAAGAwQFBwgCAQn/xABMEQEAAQIDAgcMBgkEAgICAwEAAQIDBAURBjESIUFRcZHRBxMUFTJSVGGBkqGxFiIzNHLBFyM1NkJTc7LCYoLh8EOi4vEkRCVjk9L/2gAMAwEAAhEDEQA/ANnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUpKmKJ2y56I79lN6/EB3jkbKxHtXVq9aaAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0kmZCmr3tYn8S6AcRTsm2thVXZ46oqeUCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKck8cOm29rFXgiqBzHNHNrsPa/TjovACk98r51jY5rERqO1VuqrxA5ie6OXm5Hbe1vY9UTf1oB1hejHSOX28uzr4tP6AdqftHzR9TtpPAu/wAuoFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHV8jYm7T3I1vW5dAOjKqGR2y2RrndSLvA4qJHs5tGbKbbtnVya6bgOjnSU7ke+TnI13O3Imz1L4AEi6Ve1prsRKvxr/oBztIlVG9PYys018G9PoVQLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpLK2FurtV1XRETeqr1IBT2qh+9GMjTqcuq/QB1dUOdSse1ESSTRqIvQq+bf8QHDWrFIscLWq/RFfI/ivnAK1Z3ORyJHUR70enV0eLvAOd23U02mm1qxydWv+qaAU2qskktM9dlWu2on/AE/R5AKUzJPWsSKmkvOufonWm0qeRALvaT1zFInsZWbOv0p9GoFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcOcjGq5yoiJvVVAoJNLLvjjRreh0i6a+IDmKZdJUk0R0a71bw0011/31AUm6okcrmI+ok9ijl3MTj4tAO7tXubFUMY5r/Yub1/08IHR6vWnmjVdqSJUc1eldN6eYBNOkdQxVTagmb23Unf+kCm+N8DKva3tbFoxelU7YDsn4Ojbrxp36a95F0+qoF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALfn3zKvMtRWpu5x67vF1gcRTPSdI3vjejmqqKxNNFTo4r1gXIFui7VVI5d/NtRGp4d6/wBAOsNNHPEySVqSveiOVXJqia9CdQHM8bYIY1Y1GsjejtE6E6fKoB70p53Pdujeidt0Iqdf++gAyRstQsjV1jaxUV3Qq6/00+kDojFfQOVE7ZVdI1P8SuT+gHVVZVz6xqqo5mu2ibmuRd2/xqBVa2aWSN0jGsRmvB2uq6aAcx0aM2NZHuaxe1buREAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZJ1R/Nxt238V36I3wqBTfNLCrVe+JU2kRWIi66KunHX+gF0BQqE25IY19irtVTr0Tz6AdUjbVSyrJ2zWO2UYvDgi6qnTxA7rSRtjkbGxse23RdlNAKW2roYJkRVVns2pxTdovxL5AOZJmVKxsicj1R6OVW+1RN+/yAd4u3qpnJwRGs8aaqvlQC12283HD7J8UmzsImva8N/iUCs6GZYnQIjVZwR7nb9nq06wO8lJzj5F5xzWP9kxum/doBXRNlEROCbgOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt21SyoixROe1eDndqn07/oAOmmiTakjbsJxVjlVU7+miAdHwsmqlbIm2xzEVqKuqbl37vGgHG277n6a6OT8Gq+PZVQO742yTMhVPwTWa7HQvR8QFVsEbHI5sbWuTgqNTcB2c9rE1c5Gp1qugFGRyQT86q/gnojXO6EXoXwb/IBwyOWFuzErHR+12lVFanV3wOkSr67VFk57Vqo9ETtWr0J5QKiQywppE9qs6GvTh4FALA+bdM9FZ+wxNEXw9YFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi+pRHuYxj5HN4o1NETxqBxt1HHmmadXOb/ACAU5ntnZC/tkZt7L266cd2i+PQDvTNSGWWJqI1u57UToRd3lRfjApMVfWkaoqtdM9Fc5OO9f9oBXSkhRunNM09ygFVV0TVeAFCddtrJY1R6xu10auuqcFT6QOG6vcs1O5rkf7JruCr195QKcyyNfGr5E5xHJpFH0prv1692oFd0DmvV8T0Yq+yaqatXv+EDhWTv3OkaxP4E3/GoFWONsTEa1NEQDsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvJVtYrtGOejV0c5NNGgXAFi9yTMSSRFe166Rxa6IvfX4tQO1EiJLJsNiaxUTtYna6L8Sf7QDhWKtNURN1VzHKqInSnskT6dAO0SpA2V6sWOFUTZY7iq9O7v7twHCMdDDSOd7Jmyx3jTTy6Adlj231MKroj0R6L1a7vKn0gEdz6t7ZIqmPii7/AA7ulFA6VCOcxWzztaipojI00V39V8QHZWSP5mV0aPcjNHMcumirpvAq00SxQo12nFV0Tgmq66AcesoP/DRE6k4fEBVYxsbUa1qNanQiaIB2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFKWdI3I1Gq9670a3jp1gdoZUmja9E016F6AKEz9t8iOcrIY01erdyqvHT4vKBRja1KiJWRRRKi702021TTpTTwdIFz7Cs70jPpRf9foAoU0LmSM0Y5qsVyPe5dzk36eHoUDs1nPwVKt4PcqsXwIm/40A7c4jpKaZOEibK+NNU8n0gcbLWI6nkXZaq6xu4dOvxooHZ/PMb+EnjYzpfs6L9K6AUo4nSUz2NRXMSTVvOe3Tj5dQK1PE5sskisSNHIibCLrw13r8f0Ad30sUjlcrE2l4qm5VA7Rwxw67DGt146JxA7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFXRNV3IBTbVQvkRjZGucu7dvAqgU5peZjV2m0vBE616ALZ+u0rXySvk01VsKaI3/ffUDu90j6BHKjmybKK5E499PKBxEqSI+BYuajVnaovFU4KBWpXrJTsV3stNHeFNy/SBaoxi0MCuYj1j0YjV4bWuzv8YHaTfFK9WtZNBvRW9Kaa/EvACqi7NWi9EjPpT/r9AHWmiRyuc9VfIx6pq5ddOrROjdoBWqI+egexNyqm5epegCmxkr5mSPRjNGq3RF1VddPMBVkhjmREexr0ThtJqBxHBHDrsRtZr+ymgFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoyVcMSqjpGoqcU11VAKwHCqiIqruRALR0rpGte972Mf7CONO2cnWoFSkV2kjXI9ER3aq/jpp59QKNPI6LYR0TtXO2ZJXdK7+H++kCvT9pJNH1O2k8C/wCuoHRI2yvqoncHqjt3UqIn9FApw7ErI2OhY2KRu0xG8U8Pf3gc7TuYie5dXRSbKu601Vuv9QO740lq3MkVXMVqOa3Xdx37unoAuUTRNE4AWnMTbHNIjGsa/aa9V36a6pu+gC7c1r2q1yI5F4oqagU2UsMbtpsTGqnSjUAqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHACglbAq6c4nDXaXcnx8AKkUzJkVWORyIumqAWL67t3NfNzbkcqc3EzV3HxgddHy720rnfx1T9yeICqsirS7Svje+FyOXmuCJ0p8WoF8BQqfZ06rwSTf8S6fToBbysjjmlV6SS69u5GrojU4a8d/D6AK8WsMyR7Sujc3abquumnFNfGgHM/aSwyfxbC+Bf9UQBB2k00ffR6eBf9UUDrJE6NX7LOdik3uZrvRe9qB0bC57FjSNYY3Lq9Xu1c7vcV8oFxNA2ZG7WqbK6orV0XqA5jiZCioxuiKuq99QO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRfVxRv2XPTa1RF0TXTXr6gOWVMUr9hkjXO010RdQKFXV8xLsOlbCzZRUcrdVXvJ/vpAoc4s3sYZ6jvyrsN+L/QCtT6qr4ZOYYjk0SKLj3wK9I9X07Nr2SJsu8Kbl8gCrRVpZkTirHafEBRqGNc6GTV6oqbLWMXRXa7+PgQA1WxNZLHtNYrth8bl1036eLRQK1UxX070b7JE2m+FN6AdNtFqIZE9jK1W/1T+oHeaN222WPTbRNFReDk6gKLWOR6ujpljeuvbSOTZTr0RFUCu2nalOsSqrkVFRV6V14qAjp2RO2kRVdpptOVVX6QKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0kmjhTt3tZ4VA6R1TJJEYiO1VFVFVqoi/H4QKM8z31DY27bI0dsvcmnFU3f9QKHOSsWOOSR71crmta1UbrsrxVV38AK6I1aVuxsose7tE5xW95O/wA4pXOjqXtej/wAIm0iyKmq6d5AOlU5zKx2zO2nRzE37O0rt68EApRww1LkRedqVVNpFlcqN+L/QDtC5ZI5GokdNE1mr0a3e1epdfMBfUu362j29ztlNQOZ4ueiVuui8UXqVOCgWsrmv/wCYskEmzsuRrdUcne3AVomrJKkmyrGNbssReK9a/QgFWWJJo1Y7VEXpTiBxFTsiVXJqrl3K5zlVV+MCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXPaxNXORqdaroBR9exbtlVciqibTWqqb1048AOK2d8bNmJqrI5FVFTTo48ekC3mfJTpI/nnrCiNfroiuXVdNEVdyAVadqLzsao1Hu7ZUe/bcvfVPiApbb45Y5XJI5je1VXojERF3bk4gVrgqsSFzXtjVH/8AMdwbuUC0VI5XaSTz1K6oio3tG7+HUB3YnMVCQxQxQvVdNdFVVbpvXXcBc0SORZkV22zbXR2mmq9P0/1AugLJWpCxIpNprWLrHK1NdOpP6AcsbzrWxs2lZtbb5HpptLrru8YF4BQjo441avbO2fY7TlVE8CcAK4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUamR0UW0zRF2kRVcmuiKumoFB6tSdsUkssj3e1YmyifF4F6QOebdHMrIGQRL+07e5fF/qB1ZMskUcquRzopVa5yJoioq6f1RQFavNzxvWTmmK1dpyN2tdFRUTygUrkjIpElWJZFTftPRVY1PB1gVpGPZo38JImmvaqkbE8fEDiNsbJIJWNYm0qscrF2k39/p4fSBUrNhrmP29mVuuwmmuviAptR0W1KrGsqJk2WsTo76+VQO0kTnf86BJ+jbj3L8S+cDmni/4jbRkjGtbpo9VXVV8fe+kC7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwuui6cejUCxdOqU7JppnNa9PYRN06NdOlQO0kTYthzI49t3t53b08qgNZJXT00j2uese0mymmi/70A5qHrLRRytXZcitdrprs79/lUCnUMjlomKqSVCJq1NhFTVe+ne0A4p9p1M17UVEcqpzdO1G/SvgAOYx8UjthnPR6PRNvbdu37+rgBd1CRS06847ZjXRdrXQC2aiyObNMjUji3teqaK7q3dAFTSaRm1JEyVqrqjF3Ob1eP4gKfMNc6NjIZYu2RV1cuiIm/r073jAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0mj52J7P2kVALOSRVZDOjo4nObsukk9r06J9IHd6tjcqtji0e3tpHP2Nr6AKNM+OZ1RTMbGxqt3bDtd/DXXxp8QFeWRZaFr1Tc7ZV/eTXtv6gdJZ1qI0WKTYTnVicqJru4eYClO5UpYfwbJZGqsfbprw16PEBUYrpYkjRzpV22u20j2GtRFRd3xAXU0CSqjkXYkb7F6dHnQBFAkaq5VV8i8Xu/wB7gKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZObsxTN0aqxSbbdvgiLv1+lfiAI5HRtk/A1ErVVOc1RqN8e8Cj64jjrY9GxI569s5km0u/dpw69PiAu6fVnPRpxY5VRO8u/+oFvDOroHQxu0mbFt6/xarr9IHCLpTz7apNq1Jk2tyLqnD6AFJK5muu/inMwxaInf1/3xAuo6dFpY4pE10aiL3l8IBlN2yLJIsqt9jruRO/4e+BXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJoFmhnhRqOc16Pa1enXf50A4a1YNFkSlpk6kTVf6AVOcYsrZUjlkc1NnaRqomi97dqBVpWuRj0cxWtV6q1Haa6Lv8ALqB19YMRdGuc2Pd2jeGqcO/1AVUgjbIr0jbtrxdpvAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3tRKpEX2MrFavhT/RVAtIKaSnjRHRU0SN3c4/eq9/8A2oFZz45o0au1UaKipzTdE1Tv/wCoFSFzpKlZEjexjmIi7eib0Xdu8agdn0jXSbbXLE9V1VzdNV3adPgQDlKSFGsRWI/YTRquTXQCtwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGSnV8m22R0erdldlE3/H4VA5hpo4ETYYiL0u03r4VAqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClPEsqN0dsOau0jkTUDrHSRscr3JzsirrtvRFX/QCuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUK6uprZSS1VZURUtNE3afNM9GMYnWqruQ+TMUxrKpbtV3q4t26Zmqd0Rxyj7mLy4MBYOklpbQs+Ka5mqf8ABdpAi9+V3H/CimGv5rYtcVH1p+DaWU9zjOMwiLmJ0s0z53HV7sfnMI+4r5e+Prw97bPSW2wwL7FWxLPKn+J+7/0mGuZxfq8iIhtTA9zDJ8PETia6rk9PBjqjj+LG1z5TmaV1e502NLlHr7Wnc2FPiYiFjVj8TVvrlLrOxuQWI0pwlM9Os/OZfJdnpmI5VVca3zVf/wDek85T8LxHnz1r6Nmslj/9S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdh2dMxO7W+/L5POPC8R589Z9Gsl9Et+7HYdnTMTu1vvy+TzjwvEefPWfRrJfRLfux2HZ0zE7tb78vk848LxHnz1n0ayX0S37sdi5pOULmXQuRYsb3pNOh9U56fE7U9RjcTG6uVG5spkVzysHR7sR8ntMO8tXNKwvZz92prxEnGOvpWLr/iZsr9JdUZpiaN869KPYvud5BiYngWptz/pqn5TrDNuBPVCLZWSRwYtw9LblXctXbX86xO+rHaORPAqmVs5zTPFdp06Gusz7leItxNeXX4q9VXFPXHF8ISawPmVhjMi3+vMOXmlukSJq9sT9JI+85i9s3xoZ21ft341t1atO5lk+Pyi53rHWpon17p6J3S9MV2HAAAAAAAAAAAAAAAAGIc9OUphvJOjWCdyXTEMjNqC1wPTaTqdIvtG/SvQhjcXjreFjSeOrmTvZrZDHbR18Oj6lmN9c/KI5Z+EcrX7mtnxi/OGvdJfLi5tCjtYrbTKrKeJOjtfbL33aqQ7EYu7iZ+vPFzcjqXI9mctyC3FOEt/X5ap46p9vJ0RpDHhZJWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0cP4jumFbpDcbPcKi210S6snppFY5PGnFO8e6K6rdXConSVpisJh8damxiaIrpnkmNYTPyF5ccVylprFmFzdLUO0ZFe4m7Mbl6OeansV/iTd1onElGDzaKtKMR19rnvafub1WYqxeTa1Rvmid/+2eXonj6Uv4J46mFk0MjZYpGo5j2Lq1yLwVF6UJJE68cNC1U1UVTTVGkwqH15AAAAAAAAAAAAAj1ypOU7T5QW91isb46nFtVHqmujm0TF4PenS5fat8a7uOGzDHxho4FHlT8G1Ni9ja8+ueF4uJjD0z7ap5o9XPPsj1a7Ltdq2+3KouFxqpa2tqHrJLPM5XPe5eKqqkKqqmuZqqnWXWFixaw1qmzZpimmniiI3QtDyrgAAAAAfUt2Fb3d9FoLNcK1F4LT0r3+RCpTbrq8mJlZXcbhbH2t2mnpmI/N9hmUuOJW6swdfnJ1pbZvRKng97zJ6pWM55lccU4q379Pa7diHHfcZf8A5sm9EeD3vMnql88e5V6Vb9+ntOxDjvuMv/zZN6I8HveZPVJ49yr0q379PadiHHfcZf8A5sm9EeD3vMnqk8e5V6Vb9+ntOxDjvuMv/wA2TeiPB73mT1SePcq9Kt+/T2nYhx33GX/5sm9EeD3vMnqk8e5V6Vb9+ntOxDjvuMv/AM2TeiPB73mT1SePcq9Kt+/T2nYhx33GX/5sm9EeD3vMnqk8e5V6Vb9+ntOxDjvuMv8A82TeiPB73mT1SePcq9Kt+/T2nYhx33GX/wCbJvRHg97zJ6pPHuVelW/fp7TsQ477jL/82TeiPB73mT1SePcq9Kt+/T2nYhx33GX/AObJvRHg97zJ6pPHuVelW/fp7TsQ477jL/8ANk3ojwe95k9Unj3KvSrfv09p2Icd9xl/+bJvRHg97zJ6pPHuVelW/fp7TsQ477jL/wDNk3ojwe95k9Unj3KvSrfv09qzq8t8W0DFfU4XvMDU4ukt8qJ9U8zYuxvpnqVqM2y+5OlGIon/AHU9r4NRTy0kisnifC9OLZGq1fiUpTExvZOmumuNaZ1hTPj2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAknyXOVTV5aVtNhrE1Q+qwpM5GRTPVXPoFXpTrj629HFOpc5l+YTYmLdyfq/L/hqHbTYm3nFFWOwFPBvxvjkr/+XNPLulsLpamGtpoqinlZNBK1HxyRrq1zVTVFRelFQmcTExrDlWuiq3VNFcaTHFMKp9eAAAAAAAAAAAxpn/nHSZK4Aqbu/Yluk+sFvpXL/wA2ZU4r/C3ivxdJY4zExhbU18vIl+y+z9zaLMKcNHFRHHXPNHbO6Gra/X2vxNeay63OpfWV9XK6aaeRdVe5V3kArrquVTXVOsy7SwuGs4OzRh7FPBopjSIjmWB4XQAAAety7ypxVmtdfWGGLPPcXoqJJMibMMKdb5F3N8pcWcPdxE8G3GrB5rneAyW133HXYpjkjlnojfKXmWvqeFupo4qnHN8lrZtyuoLV+DjTvOkVNp3iRCRWMmpjjvVa+qGi837qd6uZt5XZimPOq456o4o9sykfg/IXL3AkTUs2ErZBI3/v5YEmlXv7b9V+kzdGEsWvIohqnH7TZxmUz4TiapjmidI6o0h72GFkEaMjYjGJwa1NEQutNEbqqmqdap1Vj6+AAAAAAAAAAAAAAAAAB8S+YPsWJadYbtZqG6ROTRW1dMyTyoUq7dFyNKqYle4fH4vB1cLD3aqJ9UzHyYQx7yG8tcYRySW6jnwvWu3pLbZPwevfjdqmng0MZeyrD3PJjgz6mw8s7o2d4CYpvVRep5qo4+uNJ69UTM2+RfjvLSOeuoIm4ps0erlqbexeejb1vi4+NuqEexGWXrH1qfrR6uxu3I+6BlWbzFq7Pebk8lW6eird16MBORWuVqoqORdFRdyopiGzYnXjhwH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzuRBygHpNHl3fqnaY5FW0Tyu3ovFYNerirfGnUSfKsZ/+vXPR2Oe+6PstHBnOsHTx/8AkiPhV+U9fOmqSlzwAAAAAAAAAOFXRNV4AaxOVdm4/NTNOt9bzK+yWlXUVE1F7V2i9vJ/icnxIhA8xxPhF6dN0cUOydiMijJMqo4cfrbn1qvbuj2R8dWGDFthAAABKfk3ci6uzDipcR40Sa14dfpJBQt7SorG9Cr+wxevivRpxM/gssqvaXL3FTzc7TO1ndAtZXNWCyzSu9umrfTT2z8I5eZPjC+FLRguzw2qx26ntdBCmjIKZmy1O+vWvfXepLaLdFqng0RpDmXGYzE5henEYqua655ZfcKi0AAAAAAAAAAAAAAAAAAAAAAAACO+fvJBw1m5BPdLUyKwYp0VyVULNIah3VKxOv8AaTf4TEYvLreIiaqeKr/u9s3ZnbrHZHVTYxEzcsc076fwz+U8XQ12Y7wHfctcSVNixDQSUFwgXe129sjeh7HcHNXoVCGXbNdiuaLkaS6qy3M8Lm2GpxWDr4VE/D1THJPqefKLKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABc2241NouFNXUczqerppGzRSsXRzHtXVFTxoeqappmKo3wo3rNGIt1Wrsa01RMTHPEtr2R+ZcObWWlnxCxWpVSx81Vxt/7udu56eBV3p3lQ2HhL8YmzTc5eXpcQbR5PVkeZ3cFPkxOtM89M7uzph7wu0ZAAAAAAAAMYcpTHzsuMmsQ3SGTm62WH1nSqnFJZe1RU8CKrvEWGOvd4w9VUb93WmWyGVxm+dWMPVGtMTwquinj+PFHtaq1VVXVd6mvnbIAAATF5HPJUjxC2kx3jGk27ajkktdtmbunVF3TSIvFmvsU6ePDjJMty/h6X7scXJH5tDbe7aTheFlOW1fX3V1Ryf6Y9fPPJu3p5tajURqIiInBE6CWObN/HLuH0AAAAAAAAAAAAAAAAAAAAAAAAAADFueuRVkzywpJQV7G010harqC5Nbq+nf1L1sXpb/AFLHF4SjFUcGrfySluze0mK2bxcXrM60T5VPJMdscktWmOsE3fLrFVww9fKZaW40T9h7favToe1elqpvRSBXbVVmubdcccOy8uzHD5rhaMZhataKo/7E+uOV8EpMmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEu/U+sfuosS33CE8i8xXQpXUzVXckrNEeieFqov8AgJJk17SuqzPLxtD91PK4uYazmVEcdE8GeieOOqfmnQSxzYAAAAAAAAQ79URxM6GzYSsDH6JPNNWyNReKMRGN+u4jWdXNKaLftb87lGDiq/isZMboimPbxz8oQgIo6PAAGa+SlkY7OnMNiV0TvvctWzUXB/BJN/aQovW5U395FMpl+E8Ku/W8mN/Y17trtHGz+Xz3qf11zip9XPV7Pno2jU1JDRU8UEEbYYImoxjGJo1rUTREROhEQnkRERpDjeqqquqa651md66D4AAAAAAAAAAAAAAAAAAAAAAAAAAAAARu5ZWQkeaWCJL/AGunR2J7LE6SPYTtqmBN74l61Te5vf1TpMLmWE7/AG+HR5UfGG1NgNppybGxhMRV+puzp+Grkn8p6+RrVIS63AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIvJ4xM7CWdeELgj1ZH6/ZTyLrxZJ+Dd9Di9wVzveIoq9fzRLavBxjskxVnTj4MzHTTxx8m142G4hAAAAAAAANf8A6oNXunzVslKq9rBaWuRO+6WTXyIQ7OZ1vUx6nUfcstRTlN65z3J+FMIuGAboAOWtV7ka1Fc5V0RE4qofJnTjltd5MmU8eUeUtqt0kSR3asalbcHab1meiLsr7lNG+JSf4HD+D2Yp5Z45cU7X51OeZtcvRP6un6tPRHL7Z42XTIoWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFTVNF3oBqy5XmU7cq8365tHDzVmvCLcKNGpo1m0v4Rie5dru6lQgWYYfvF+dN08cOyNhs7nOcoom5Oty39Wr2bp9sfHVhIxjYYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvbJVOob1QVLF0dDURyIqdCo5F/oeqJ0qiVtiaIuWK6J5YmPg3JU8vP08Un7bUd8aGzYnWNX5/1U8GqaeZUPryAAAAAAA14cvv9NdJ8EQ/XkIXnH3iOh1Z3L/2JV/Uq+VKNZg23wDK3JcwI3MLPHDNumj5yjp5vX1S1eCxxJt6L4XI1PGZDAWu/Yimmd2/qQrbLMpyvJMRepnSqY4MdNXF8I1ltlNgOKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARd5fuBG4iyip7/ABR7VXYatsquRN/MyaMenx7C+IwWb2uHY4cb6W3u5lmU4XN5wlU/Vu0zH+6njj4atcxDHVoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJh+pxYdbU4uxde3sRVpKOKljcqcFkerl+iNCRZNT9euvmhojurYqaMJhsLE+VVNXVGn5p8Euc1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8VnFh5mK8q8WWl7UclVbJ2NT+JGKrf8A1IhbYmjvlmujniWcyHFTgs1w2Ij+Gunq14/g08JwQ1w7vcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv8ATXSfBEP15CF5x94jodWdy/8AYlX9Sr5Uo1mDbfAJ6epvUrW4OxlUaJq+4Qx695sar/7iW5LH6uufW5p7rFczjMLb5qZnrn/hMckbRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALWthbU0c7HJq18bmqneVD5PHD3bmaa6ZjklpWuESQ3CqjTgyV7U8TlNYzxTL9A7U8K3TPqhbnxVAAAAAAAAJ6clnk3ZdZg5KWK+Ygw3HcLrUPnSWodUTMVyNme1u5r0TciJ0EtwGCw97D01106zx/NzRtltZnOV53ewuEv8Ging6RpTO+mJnfDx3LYyLwRlXgqwV2FrGy1VVRcFhle2aR+0zm3Lpo5y9KFtmmFs4e3TVbp0mZSDue7R5pnWNvWsfe4dNNOscURx6xzRCHhG29wAAAAERVVERNVXoQCYnJ/5DLcWYTqLzjx1VbJK+DS3UMDtiWDXek0mvT1MXo4kjweV98omu/xa7u1obafujTgsXThsp0r4E/Xqnjif9MfnPUwDndkViLI7Ei2+7xeuKCZVWiucTV5qob/AO1ydLV+lN5icVhLmFr4NW7kls3Z7aTB7RYbv2HnSuPKpnfE/nHNLHJZJY43daAZj5JmBbFmRnRb7HiGhbcrXLS1Ej6dz3MRXNZq1dWqi7l75ksutUXsRFFyNY40C23zLFZTk1eKwdfBriqmNdInfPHv1TiuvI/yiprZWSx4QiSSOF7mr67n3KjVVPbkpqy7CxEzwPm52s7dbRV3aaZxM6TMfw08/Q1eSaNkciKmiKqEEdixxxDNvI+y/sGZmb6WfEtvbc7b9z55uYdI5ibbVZourVRd2qmUy2zRfv8AAuRrGkte7d5pjMoyjwnBV8CvhUxrpE8U688SmPjLkkZT2zCF8rKbCUMVRT0M80T/AF1Ouy9sblRd7+tEJLdy7C00VTFHJPO0JgNuNoL2Ls2q8TMxVVTE/Vp3TMeprJRyaJvIM6+NpOsDkAAAAAAAAAAAAAAAB6fBGWWKsyX1bMMWOqvTqRGrOlKiLzaO12ddVTjovxFe1Yu39e9066MPmOcYDKYpnHXot8LXTXl03vtYg5P2YuFbNV3a74RuNBbaRnOT1MzWoyNuumq7++Va8HiLdM1VUTEQx2F2oybG3qcPh8TTVXVxREa6z8GPizSkAkJyJsvsPZj5nXS3YltMF4oorY+ZkM+uy16SMRHblToVfjMzldm3evTTcjWNGre6HmmMynLLd7A3JoqmuI1jm0lLXM3kzZX2XLrFNfRYMt9PWUtrqZoZmberHticrXJ23FFRCQX8DhqbVVUURrES0jlG1+e4jMcPZu4qqaaq6YmOLjiZjXkaxU4IQZ2A5A+thjCl3xre4LRYrfNc7nOjljpoERXuRqKq6a9SIqlS3bru1cCiNZWOMxuHy+zOIxVcUURvmd3HxPdu5L2a7Gq5cC3VERNVXYb6Rd+AYnzJRyNscgni8Mo+PYxe9jo3uY5NlzVVFRehULBMImJjWHAfQAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/3JfkiaNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSqPxeX3K+Q+TueqfKhpUu35Wrvf5PrKayq8qX6BWPsqOiPktDyrgAABkPDHJ6zExpYqa82TCtXcLXVIqw1MTmbL0RVaumrkXiip4i8t4PEXaYroo1iUVxm1WTZffqw2KxEU1074nXi5eZ9b+yjm13D3D/PH6RU8X4rzJWX022e9Lp+PYf2Uc2u4e4f54/SHi/FeZJ9NtnvS6fj2H9lHNruHuH+eP0h4vxXmSfTbZ70un49if/JSwhd8DZHWGzX6gktt0gfULLTSqiuajpnuTgqpvRUUl+X267WHporjSeP5uY9tcdhsyzu9icJXw6JinSY9VMQ8Xy4st8S5lYGw/RYZtE13qqe4rNLHArUVjObcmq6qnSpbZrYuX7dMW41nVIO51m2ByjHX7uPuxRTNGkTOu/WOZDT+yjm13D3D/ADx+kRnxfivMlvz6bbPel0/HsP7KObXcPcP88fpDxfivMk+m2z3pdPx7D+yjm13D3D/PH6Q8X4rzJPpts96XT8ex8TGGQ2P8AWSS8YhwxV2u2RvbG6omcxWo5y6NTc5V3qUrmEv2aeHcp0hkcBtLlGZ34w2DxEV1zx6Rryex4EtEmX1ivVVhu9UN1oVjbWUUzZ4VljSRqOauqatVFRU7ynuiqaKoqjfC2xOHt4uzXh7vk1RMTpOnFPrhsy5NvKjs+d9ubbqzmrVi2CPWah2tGVCJxkh14p1t4p303k4wWPoxUcGeKr/u5yHtbsbidnbk3rWtdiZ4quWPVV+U7pZTx/gGy5m4Xq7Df6NtZQVLdFbwex3Q9i+1cnQpf3rNF+iaLkawhmWZnisoxVOLwlXBrp6p9U88S1iZ1ZDXfI3HtLb6xFrLNVTtdQXFG9rOzaTtXdT06U8ablILicJXhbsUzxxO6XYGz20uH2kwFV619W5TH1qeWJ03x6p5JbO6bL3CzqaJVwzZ1XYT/wDAi6vck5izb08mOpyFXmmP4U//AJFfvVdq7t2D7DZ6ltTQWS30VSiKiTU1LHG9EXimqIinqm3RTOtNMQtruOxd+ngXrtVUc01TMfGX2nMSRqtciK1U0VF4KhVWUTpxw8/2PMKr/wD4zZ/kEXolHvNrzY6mT8aY/wBIr96rtXFswjY7LUeuKCzUFDUbKt52mpWRv0XimqIi6H2m3RTOtNMQoXsdisRTwL12qqOaapmPjL6k0DKiJ8cjGvieio5jk1RUXiioVd6ziZpmKqZ0mHwux3hXuZtHyCL0Sh3m15sdTKeNcf6RX71Xaw7yt8GYftfJ8xXVUVjttJUxxw7E0FJGx7fwzE3KiaoY7MLVFOGrmKY6vWnOw+YYy9tBhrd29VVTMzxTVMx5M+trKIO6+AO8EMlTPHDDG+aaRyMZHG1XOc5eCIicVPsRM8UPNVVNFM1VTpEJT4E9T8xTifDVJcrze4MOVdQm2lumpXSyRt6NtUciI5eroM/aye5coiqurSeZpfMu6hgMHiarGGszdpp/iidImfVxTxevlY75RHJuqeT99xPXF9hvX3U51G81TrFzexs8dXLrrtfQWWMwU4Pg61a6pXsrtbRtP37gWZt9703zrrrr6o5mGTGJ+AZZyd5MWN86EbVWuiZb7LtaLda/VkS9ewmmr/EmnfMjhsDexPHTGkc8oRn22GV5B+rv1cK55tPHPt5I9qT2HPU5MO08LFvmKblXT6ds2hiZAzXvbW0pnKMltx5dcy0/i+6tja6p8Ew9NMf6pmZ+Gj0E3qeuW8kOzHcL/E/9v11Gv0LGVpyfD88sXT3Us6idaqLcx0T/AP8ATHOOPU5qmCnknwliltXI1NW0t1h2Fd3kkZu+NpZXclmI1tVdaVZd3V6KqopzDD6Rz0Tr8J7UUMc5e4hy1vsloxJa57XXN3o2VNWyN/aY5Nzk76KR+7ZuWKuDcjSW7MtzTB5vYjEYK5FdPq3x6pjfE9LzpRZUAmn6mz+Use+9UfllJPkm+57Pzc+91n7PB9Nf+KR3Ku/V4x1/If8AvaZjH/da+hqrYv8AeHCfi/KWp4gDtcAlP6nb+mK8/Az/ALWMz+Tfb1dDTPdT/ZFr+pH9tScecP6KMafA1Z9i4lGI+xr6J+TnbIv2rhf6lH90NOicENcO73IGdeRL+sdhv3up+weZXK/vVPt+TXHdC/dy/wBNP90Nn1X+Kze4d5Cd1bnHtHlR0tKlx/KVV78/6ymsat8v0EtfZ09EfJbnlVAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/9iVf1KvlSjWYNt8An56nB+YOLPhNn2SEuyX7Ovpczd1f7/hvwT/cl+SJo0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAAG1Dkd/q3YO97m+3kJ7lv3Wj/ALyuMtvP3jxXTT/bSzWZNAQAAAAAAACO/Lx/V5uX89S/aGGzb7tPTDaHc3/eC3+Gr5NZhCHXYBd2i71tgudLcbdVS0VfSyJLDUQuVr43JwVFPVNU0TFVM6TChfsWsTaqs3qYqpqjSYndMNj/ACceVhZ8ysGVq4orKe0Ygs9Os1e+RyMjnhbxmZ/VqcFXdxJrgswov2575OlUb+1ydtXsRiMpxtPgFE12rs6U6ccxM/wz+U8yKHKe5TlZnTiGGitbVpMK2yfnaSN7e3qJE3c8/q7zehF37yP47HTiqtKfJjd2t2bHbH29n8PN2/8AWv1xpVPJEebH5yu2cvDNiNjWJW2rRqaJ/wBnt8568bYnnjqUZ7m2z8zrNFXvSyzyYOVbjvNLNyhsGIaq3utc1NPK9IaVsTtprNW9tr1mQwGYXsRfii5MacaE7YbFZTk2U14zB01cOJpjjqmd88fEmTc7jHTW6rnjmj5yOF729snFGqqElqq0iZaEs2aq7lNMxOkzDXBJy8s12yORK21aIqp+T2+chXjbE88dTq+O5ts/MeRV70swclblT43zXzT+4eJau3rbfWM0/wCBpmxO22q3Ttte+pkcBj72IvcC5MaaILtpsZleS5X4VgaauHwojjmZ4p15Er8WYhitWFrxXU1TTrU09HNNFq9qpttYqt3a796ISG5XwaKqondDSeCws38VatXKZ4NVVMT0TMRLXenL0zZVPx21fN7fOQ3xtiueOp1P+jXZ/wAyv3peex7yt8w8ycKV2Hb1U2+S2VqNSZsNG1j1Rrkcmjtd29EKN7Mb9+ibdcxpPqZTLNh8nynF0Y3C01RXTu1q1jjjTcwwYxP2a8tuSDmRmNJDKlodYLZJo5a67axJsr0tZ7N3xad8yljLsRe49NI9bXubbdZLlUTT33vlcfw0cfXO6OtNvIzkmYRyZSKvVv3dxIib7nVsTSJenmmb0Z4d698k+Fy+1hvrb6ufsc8bR7bZjn+tn7Oz5scv4p5ejd6mdTKteoQ+qT8MB+Gr/wDiIvnf/j9v5Ohe5Nvxn+z/ACQiIu6GZ65IuQUWdOOJqq7Rudhq0bMtWxN3riRfYQ69S6Kq95O+ZbLsJGKua1eTH/dGtNudpqtn8FFvDz+uuaxT6o5auz19DZpQUNNaaOGko4WU1NCxI44Ymo1rGpuREROCE6iIpjSHIVy5Xerm5cnWqeOZnfLA2avLUwHlpc5rVB65xJdIFVk0Vu2eaicnFrpFXTXvJroYjEZnYsTwY+tPqbKyXufZtm9qMRXpaondNWus+uIjj69GNqL1SK0OqkbV4Kr4qdV9nDWse5E8CtTX4yxjOqNeOj4pbc7k+JinW3i6Zn10zH5z8kiMpc9cIZz26SfDtx26mFE5+hqG83UQ99W9Kd9NUMxh8XaxUa259nK1XnezeY7P3IoxtHFO6qOOmfbz+qeNWziygsec2D6my3eFvObKupKxG/hKaXTc9q9XWnBUPWJw1GJomiv2epTyHPcVs/jKcVhp4v4qeSqOafynkancY4Ur8DYqumH7pHzdfbqh1PKicFVF3KneVNFTvKa/u26rVc0Vb4dtYDG2sxwtvF2J1priJj/vq3PjlJfpp+ps/lLHvvVH5ZST5Jvuez83PvdZ+zwfTX/ilxmrgTsmZe3vDC1i29tzg5j1zzfOc32yLrs6prw6yQ4i13+1Vb101aPyXMvFGYWcfweF3uddNdNfbxoqf3a8fd6/5rT/AO0wHiSP5nw/5bq/SzV6H/7/APxP7tePu9f81p/9o8SR/M+H/J+lmr0P/wB//iyhyeuSSzIbGNZfG4ldefXFG6k5haNIdnV7XbWu2v7PDvl9g8u8EuTXwteLTchm1O287S4OjCzh+BwauFrwteSY03Rzs3Yww/8AfThK82VZvW/3Qo5qXntna2Ntit2tN2umuuhlLlvvlFVHPGjXmBxXgWLtYrTXgVRVpz6TroiCnqa8aJ+fr/mxP/tI74kj+Z8P+W9v0s1eh/8Av/8AE/u14+71/wA1p/8AaPEkfzPh/wAn6WavQ/8A3/8Ai9vkryKGZP5i23FLMWOui0bZW+tVoUi29tit9ltrpprrwLnC5XGGuRd4eunqRvaDuhTnuXXMBOG4HC04+FrumJ3aQk5V/is3uHeQz1W5qKjyo6WlS4/lKq9+f9ZTWNW+X6CWvs6eiPktzyqgAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/w34J/uS/JE0aAAAAD5l9vtBhq01VzutXFQW+lYsk1TO7ZYxqdKqeK66aKZqqnSIV8Nhr2Lu02LFM1V1TpERvlDPE3qjKUt9rYbFhKOvtMcitp6mrqnRSStT2ytRq7OvQmvAjdzOtKpiijWG+8H3KeHYoqxeJmm5MccRETEerXXjfN/vI7v3EUXy5/oFPx1V5nxX36JsP6XV7sdr2GUHLnuOZuZNhwvLhOloIrlOsLqhlY57maMc7VEVqa+xLnDZrVfu025o019bAZ73OLOUZbex9OJmqaI104MRrxxHOmCSJo4AAAAAD5t4vNDh+3S19zrIKCjhbrJUVMiRsYnfVdx5qqpojhVTpCtYw93FXItWKJqqndERrKM2ZPL+wbheSWkwvRVGKqpmrfXCLzFKi95yptO8Sad8wWIze1RxW44U/Bt7Ke5jmWMiLmOrizTzb6uqOKOv2I74t5dmaGInvSgqaHD1O7gyhpke9E93JtL8Whhrma4m55M6dDaeC7m+RYWIm7TVdn/AFTpHVGjGl2z6zHvjldW43vkmvFrK18bfiaqIWVWLxFe+uetL7GzOS4eP1eEoj/bE/PV8CTMDFMrlc/Et4e7rWvl9Ipd+uedPWyUZXgKY0ixR7tPYuqLNLGducjqXFt7gVOGxcJU/wDcfYxF6N1c9ajcybLLsaV4aif9tPY9ph/lY5sYce1YMY1lWxv/AHde1lQ1f86Kv0l1RmGJo3V9fGwGK2J2fxcfWwsU/h1p+Usz4G9UWvdI+OHFmHKa4w8HVNresMqd/Ydq1fjQydrOa44rtOvQ19mPcrwtyJqy+/NM81XHHXGk/NKnK7lE4EzfjayxXljbhpq621iczUt8DV9l4Wqpn8PjLOJ8iePm5Wmc52WzXIp1xdr6nnRx09fJ7dGTy9RMAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAAH2qDG2IrVSR0tFf7nR0seqMgp6yRjG79dzUXRN5Vi7cpjSKp62Pu5fg71c3LtmmqqeWaYmevRcdkbFndRefnCX0j7367509al4qy/0ej3aew7I2LO6i8/OEvpDv13zp6zxVl/o9Hu09h2RsWd1F5+cJfSHfrvnT1nirL/AEej3aexsn5HFyrLxyfMO1VfVT1tS99Sjp6iRZHu0neiaqq68Cb5bVNWGpmqdd/zck7fWbdjaC/btUxTTEU8URpHkxyQ8H6oLfLnYcvsNS2y41Vulfc3Nc+kmdE5yc07cqtVNULPOK6qLVM0zpxpL3MMNYxOYYim/RFURRyxE8sc6CnZGxZ3UXn5wl9IinfrvnT1ukfFWX+j0e7T2HZGxZ3UXn5wl9Id+u+dPWeKsv8AR6Pdp7DsjYs7qLz84S+kO/XfOnrPFWX+j0e7T2LS5Yxv96pVpbhfLlX0yqjlhqauSRiqnBdFVUPNVyuqNKqpn2q1nAYTD198s2aaaueKYifhD5BTX762FMKXbG9/o7JY6KS4XKrfsRQRJqvfVV6ETiqruQqW7dV2qKKI1mVjjcbh8uw9WKxVcU0U75n/ALv5oTGu/qeLG5bUy2+8q7G8bVlnWVf+EmVU/wCU3dq3TgjunpTqklWTfqo4NX1/g0NY7qUzmVXfrX/408UaeVH+qefXljqQ4xLhq64MvdXaLzQz2240ztianmTZVPOi9CpuUjdduq1VNFcaS31hMZh8wsU4nDVxXRVxxMf93sj8lvLKy5t5sU+H7+2eS3yUk8zkppebftNRFTeXuAsUYi93uvdoie2Wb4rI8pqxmDmOHFVMccaxxpof2B8qP/493+cF8xJvFOG5p62gf0l5/wCdR7v/AC5j5BmVkL9uOG8xu/aZcXIvkHinDRz9b5PdKz6qNJmif9kdqv8A2GMs/wBq/fOj/MevFWH9fWp/pGzv/wDr9yFv/YHyo/8A493+cF8x58U4bmnrVf0l5/51Hu/8uWcgvKyJ21HBeWO623FyL5B4pw3r63ye6Vn9XFM0e5HaqryEssVRUVL2qL0Lc3eY++K8N6+t5/SPnn+j3IUf7A+VH/8AHu/zgvmPninDc09b3+kvP/Oo93/l8+/chTK23WS41UNPdudgppJWbVeqptNaqp0d48V5VhopmYietc4bukZ9dv0W6qqNJmI8nnnpa5Yv+az3SeUhkb3Vk7pbqbIqJZbeqru9bx7/APChs2nyYfn7iPtq+mfmwJnzyxsMZWU09ssk8OIsUaKxKeB+1BTO65Xp0p+ym/r0MTi8yt4eODRx1Nk7NbB47Oaqb+KibVjnnyqvwx+c8XSz1ZKt9fZ6Gol052anjlfomiaq1FXymWpnWmJlrbEURav10U7omY6pQy9Un4YD8NX/APERnO//AB+38m/u5Nvxn+z/ACQiIu6GbJOQFaYKHIj13G1EnrrnUSSuTiuzssRPEjfpJrlFMRhteeZcm902/Vcz3vc7qKKYj26z+b1XK8x1X4ByLvdda5XQV1W+OhjnYujo0kXRzkXoXZRyIvfLjMbtVnD1TTvniYPYXLbOZ55atX41pp1qmOfg7o69GrFVVVVVVVVd6qvSQJ2cAeuymxzccuMxLFfrbM+KanqmJI1q7pYlciPYvWioqoXGHu1WbtNdLB53l1nNcvvYS/GsVROnqmN0+yW4mN6SMR6cHIiobIcITxTo1r8vm0Q23PpaiJqNdXWynnl0Ti5FezX4mIQjN6YpxOscsQ6z7md+q7kXAq/grqiOjin80cDDNsJLci/O3CeTVZiuTFNbNRtuEdO2n5qnfLtKxZNrXZTd7JDOZZirWGmvvk6a6NR7f7PZhn9GGjAURVwJq11mI36ab+hKT+3PlJ++qz5BL5jOeNML53wab/R1tF/Kj3qe0/tz5Sfvqs+QS+YeNML53wP0dbRfyo96ntP7c+Un76rPkEvmHjTC+d8D9HW0X8qPep7X128rDAr7ZBcWsvz7fO3aiqm2SpWJ6a6ao5GaKm4reMLOnC49OiVhOxWaxcmzM2+HG+O+Uax7NXypeXBlRA5WS3avicntX26ZF8hS8Z4WOX4Sv6e53tBVGtNumf8AfT2uv9ufKT99VnyCXzHzxphfO+B+jraL+VHvU9p/bnyk/fVZ8gl8w8aYXzvgfo62i/lR71Paf258pP31WfIJfMPGmF874H6Otov5Ue9T2qVRy5MpZIJGNvNZq5qon/AS9XgPs5phdPK+D3T3OtoYqiZtR71Pa1oVkjZqyeRi6tfI5yL3lVSDzxy65txNNFMTzQonxUAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/9iVf1KvlSjWYNt8An56nB+YOLPhNn2SEuyX7Ovpczd1f7/hvwT/cl+SJo0AAAPD5n5tYYyisD7riS4MpWaLzNM3tp6h37MbOKr3+CdKoW9/EW8NTwrks5k+R43PMRGHwVGs8s8keuZ/7PM1v8oDlMYgz0uKwSK61YbhftU1rjfqjup8q+2d9CdHWQnGY65i503U8zrLZjZDB7OW+FH17076p+VPNHxnlYcManoBlnkofrEYH/AJ132TzIZf8AeqOlCNtv3exf4fzhtiNgOKwAAAAYpz1z/wAPZF2BKm5SevLtUNX1la4nIkky9a/ssTpcvi1UsMXi7eEp1q38kJfs5sxjNo8R3uxHBtx5VU7o7Z9TW3m7npi3Om7uq7/Xu9Ztcq09tgVW00CdGjelf4l1UhWIxd3E1a1zxc3I60yPZzL8gs97wlH1uWqfKn2/lHEx8WaUAAAAAAAKlNUzUVRHUU8r4J4nI5ksTla5ipwVFTein2JmJ1h4ropuUzRXGsTySmHycuXFV2uopcO5iVDqygcqRwX1U1lh6ESb9pv8XFOnUkeCzWaZi3f3c/a0RtX3Ord6mrGZNTwat80ck/h5p9W7m0TppKuG4UsVRTysmglaj45Y1RzXtVNUVFTiioSyJiY1hzfXRVRVNFcaTG+F2HwAAUqj8Xl9yvkPk7nqnyoaVLt+Vq73+T6ymsqvKl+gVj7Kjoj5LQ8q4AA+9hjAWJMapULYLFcLylPspMtDTul5vXXTa0TdrovxFW3ZuXfIpmWNxmZYLL+D4Xept8LdwpiNejV9zsEZjdw1/wDm+TzFbwTEeZPUxv0kyb0u370dp2CMxu4a/wDzfJ5h4JiPMnqPpJk3pdv3o7TsEZjdw1/+b5PMPBMR5k9R9JMm9Lt+9HadgjMbuGv/AM3yeYeCYjzJ6j6SZN6Xb96O1sW5IeH7nhjIXD1uu9BUWyvikqVkpqqJY5G6zPVNWrv3oqKTPLqKqMNTTVGk8fzcq7c4qxjM+vXsPXFdMxTpMTrHkxyvDcvTBt9xngHDlNYbPW3iohuSySRUULpXMbzTk1VETcmpaZtaru2qYojXjSLuaY/CYDH368XdpoiaNImqYjj1jnQi7BGY3cNf/m+TzEX8ExHmT1OiPpJk3pdv3o7TsEZjdw1/+b5PMPBMR5k9R9JMm9Lt+9HadgjMbuGv/wA3yeYeCYjzJ6j6SZN6Xb96O07BGY3cNf8A5vk8w8ExHmT1H0kyb0u370drzWI8K3nB9e2hvlrq7RWOYkqQVkKxvViqqI7RejcvxFCu3XbnSuNJZfCY3DY+333C3Irp101idY19j2+QeeVwyJxe670lDTXGlqWJDV08zESR0euvaSaasX6F6ULrCYqrCV8KI113o7tNs5Z2kwng9yuaaqeOmY3a+uN0x8eZs1yrzbw5nFhpl3w9XJM1NGz0z9Emp3/svb0eHgvQTnD4i3iaOHblyDnWR43IcTOGxlGnNPJVHPE/9mHnM+uT1YM9MPrDWMSivsDF9ZXSNvbxr+y/9pirxTxoUMXg6MXTpPFPJLK7NbU4zZvEcK3PCtT5VHJPrjmn19aBuA7tduSLndJPiexTVdTSU80CQRSpG2Zr00bKx6oqK1dP9qROzVVl2I1uU7nSmZ2MPtzkkUYG9EU1TE6zGukxviY52ff7yW3dw1X8vZ6Bl/HdPmfFrX9E170uPdntP7yW3dw1X8vZ6A8d0+Z8T9E170uPdntSry7xezH2BrHiNlO6jZc6VlSlO920rEcmuir0mfs3O/W6bmmmrSua4Ccsx17BTVwpt1TGu7XRgTN3luUWU2YV2wrLhSpuUlArEWpZWNYj9pjX+xVq6ey0MRic0pw92bU0a6etszIu55dzvL7ePpxMUxXrxcGZ00mY36+p7bk68pKm5QX3c9b2Oay/cvmtedqEl5zb2uGiJpps/SXODxsYvhaU6aI9tVsnXsx3nh3oud813Rpppp6551/yhM/IMgsP2q6VFnlvLK6pWlSKKdIlYqMV2uqouvAqYzFxhKYqmNdVrsts1XtNiLlii7FHAjXWY1149OeGCv7yW3dw1X8vZ6BivHdPmfFsn9E170uPdntWd39UVtt0tVbRpgmrjWogfEj1r2Ls7TVTX2HfPNWc01UzHA+KtY7ld6zdoueFxPBmJ8meSelCNrla5HJxRdSLOh9NY0ZSx5ynMxcwqFKCvxBLR2xGJH6xtyet43NRNNHK3tneNVL+7jsRejg1VaR6kNy3Y/Jsrr79asxVXv4VX1p9mvFHshi32yeEsEync3S4a/Nu0/ykP1ENl0eTHQ/P/GfeLn4p+aG3qk/DAfhq/wD4iOZ3/wCP2/k333Jt+M/2f5IREXdDJ9+p4Y8pa7A96wlLK1tdbqtayKNV3vhkREVU8Dmrr7pCXZNeibdVrljjcyd1PLa7eOtZjTH1a6eDM8009sT8GcOUVlpNmzlFfcP0uylwextRSK5dEWaNUc1FXo10VvjMrjbE4ixVbjfyNd7K5vTkmbWcZc8iOKroninq3tT93tFdYLnU265Uk1DX0z1jmp52K17HJxRUU19VTVRM01RpLtexftYq1TesVRVTVxxMccStDyuGVOTfk9c83MybVT09LItmo6iOouNZsrzccbXI5W68Np2miJ3+8ZDBYarEXYiI4o3oXtZn1jI8tuV11frKomKY5ZmeLXojfMtsqIiJ1IhsBxQ1X8sDHtNmBnreqiilbPQ29rLdFIi6tfzaLtqi9W2riBZlei9iapjdHE7L2Fy2vLMjtUXY0qr1rmOnd8NGFjGNgAAABkfITJi45249pbLTNfFbYlSa41iJughRd+/9p3BE6/AXuEw1WKuRRG7lRLabP7Oz2AqxNfHXPFRHPV2RvlthslkosOWejtVvhbT0NHC2CCFqbmMamiIbAppiimKad0OKMRiLuKvV37061VTMzPrlrm5b2aUOPczkslrYx1rsCOgdNExPw1Qv/MXVOKN0RqeBeshmaX4vXuBTup+bqvud5NXluWeFYifr3uPSeSnk69/UjlzT/wBh3+VTDaS2vwo5zmn/ALDv8qjSThRznNP/AGHf5VGknCjncOY5vsmqnhQ+PsTE7nAfQAAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/sSr+pV8qUazBtvgE/PU4PzBxZ8Js+yQl2S/Z19Lmbur/f8N+Cf7kvyRNGgHzL5frdhu2y191rqe3UUSavnqZUjY1PCp4qrpojhVTpC4w+FvYu5FnD0TVVO6IjWUUM5eX3ZbI2e3YBpkvVw0Vv3UqWq2mjXrY3c6T6E8JgMTm9FP1bEazz8jdWQdzLE4iab+b1d7p82PKnpndHxnoQixlje+5gXya8Yhuc90uEq75Z3ao1P2WpwaidSbiLXbtd6rh3J1l0RgMuwuV2Iw2DtxRRHJHznnn1y+GUmRAAGWeSh+sRgf8AnXfZPMhl/wB6o6UI22/d7F/h/OG2I2A4rAAADHudmblsyXwJXYhr1SaZv4KkpEXR1ROqdqxO90qvQiKWmJxFOGtzcq9iSbPZHf2gx9GDs8Ub6p5qeWez1tUuO8dXnMfFNdiC/Vbqu41b9pzl9ixvQxqdDUTciEAu3a79c11zxy7Ty3LcNlOFowmEp4NFPx9c88zyvgFFlAAiaqiJvVdyIgGQ8I8nvMfHELJrPhC5TU7/AGNRNFzEa99HPVEXxF5bweIucdFEotjtqMly6ZpxGJpiY5InWeqNXvabkL5t1EaOdaaCDX2slwj1+hVLuMqxU8kdaM190fZ6mdIu1T0Uy+ZeeRlm5Z4lkXDCVrU3r6yq4pV+La1X4jxVlmKp/h1Xljb/AGexE6eEcH8VNUfkxPiLCl6wjWrSXy01toqU/wC6rYHRKvg1Tf4jH1267c6Vxom2FxuFx1HfMLcprp54mJ+T5RTXoAAl1yKOUpNhy60uAMSVSyWerfsWypmd+KyrwiVV9o5eHUvhJFleNmiqLFyeKd3qaM7oeyVOLs1Zvgqf1lPlxH8Uc/THLzx0NgJLnM4AApVH4vL7lfIfJ3PVPlQ0qXb8rV3v8n1lNZVeVL9ArH2VHRHyWh5VwABOD1Nn8Wx57uk8kpKck3V+xzv3WvKwfRX/AIptknc+AAAAAAAAAABri9UJ/Tfb/gaH7SUhecfeI6I/N1X3L/2JX/Uq+VKMJg24HqstMzb/AJUYop75h+sdTVMa6SRLviqGdLJG9KL9HFC4sX68PXw7csLm+T4TO8LVhMZTrTO6eWJ54nklskwFyqsGYtytqcY1tdHaEtzEbcaGR2ssEqpuY1OL9pfY6cfEpNbOPs3LM3ZnTTfDkvM9i8zwOaU5bao4fD8iqN0xzzzacvMgFyhc+LlntjD7pVELaK1UaOit9GiJtRxquqq93S52iKvQnBCI4zF1Yu5wp4ojc6b2X2bs7N4PvNE8Kurjqnnn1RzRyfFn7DvqeMN+sFsuK43lhWspYqjm/uci7O2xHaa85v01MvRk0V0xVw9/qayxXdTqw2IuWPBNeDMxrwuadPNfR/u2Ye7yT5tT/wCw9+JY8/4Lb9LVXoce/wD/ABSzy5wf94GBLHhtKla1LXSMpfXGxsc5spprpqunxkhs2+826beuujSOa47xnjr2N4PB75VM6b9NUfs4uRDHmzmJdsVPxY+2rXrGvrVtCkmxssaz2W2mvsdeBh8TlcYi7N3h6a+ps7Ie6JVkeXW8BGG4fA14+FprrMzu0nne45N/JtZyfVvuzfnXv7qc17KmSHm9ja/iXXXa+gusFgvA+F9bXVHtrNrJ2o7zrZ733vXl11109Ucz6HKLyDbn9h+1Wt95dZUoapannW0/Oq/Vit002k04lTG4TwumKddNFpsptNOzOIuX4td84dOmmumnHrzSwL/dtRd3knzan/2GI8Sx5/wbM/S1V6HHv/8AxY3z+5HEWSOXr8TMxQ+7K2qip/Wy0aRa7arv2tteGnUWWMy2MLa75wtfYlezO3tW0OYRgZw/A4pnXha7vVpCM5g23gDs32aeEPk7m6TDX5t2n+Uh+ohsujyY6H5/4z7xc/FPzQ29Un4YD8NX/wDERzO//H7fyb77k2/Gf7P8kIiLuhnocBY7veW+KaK/4fq3UlypndqqJq2Rq8WOb7Zq8FQrWbtdiuK6J42LzPLcLm2FrwmMp4VFXw9cTyTDafkjmRfszMIw3K/YSrcLVatauzUKnNz6+2jRV20TvORPCpPcLfrv0cKujgy4x2iynCZRi5sYTE03qfVvj1TydU9T7OM8pMG5hoi4jw3b7tIiaNmnhTnUTqR6aO+kqXcPavfaUxKwy/O8yyriwV+qiOaJ4urc8bR8kfKOknSdmCqNzkXVGyyyvb/lV6oW8ZdhYnXgM/XtztFcp4M4ufZFMfGIZPsWHLZhi3x0Nnt9Na6KP2NPSxNjYniRC+ooptxwaI0hD8Tir+MuTdxFc11TyzMzPxRV5Y/KAxvgyhnw/ZsOV1ittWiwvxHNo5JWrxbCrVVGKqdLlR3UicTAZljL1qO90UzETy9jc+wey+V5jXGMxN+m5XTx97jk9dWumvs4vXKAaqqqqquqr0qRF02AAAHtspsoMRZy4ois1gpVeiKi1NZIipDSs6XPd5E4r0F1h8NcxNfAoj/hHc7z3B5BhZxOLq6I5ap5o7d0NoWTOTtkyVwdBY7QzblXSSrrHtRJKmXTe53kROhCd4bC0YajgUe31uOc/wA+xW0GMnFYmdI3U08lMc0fnPKyGXaOPnrZLeqqq0FKqquqqsLd/wBB54NPMr+EXo4ornrlz9xLf+76X/yG+Y+cGnmPCL3nz1yfcS3/ALvpf/Ib5hwaeY8IvefPXJ9xLf8Au+l/8hvmHBp5jwi9589coZeqNUNPRWfA6wQRQK6oqtebYjde1j6iN51ERTRp62+u5TcruXsXw6pnip39MoQEWdFAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/3JUYkvsWG8PXO7TRulgoKaSqeyPTac1jVcqJr07jP11RRTNc8jSuEsVYvEW8PROk1zER7Z0QYx56olf7nHJBhPD1NZ43bm1de/1xKnfRqaNRfDqRW9nNdXFap06XR+W9yvCWZivML01zzU/Vjr45+SNGOMy8U5kV61eJb5WXeXXVrZ5PwbPcsTtW+JDB3b9y/OtyrVt3LsowGU2+94KzFEeqOOemd8vMlBlwAAAAZZ5KH6xGB/5132TzIZf96o6UI22/d7F/h/OG2I2A4rAAADWhy4805cc5tzWGnmV1ow6i0rGIvauqF3yu8KLo3/CQnNcRN2/wI3U/Plda9zrJacuymMXXH6y9x/7f4Y/P2o5mFbWAPTZc5c3vNPFdJYLBSrU1k66ucu6OFieykevQ1P8ATiV7FmvEVxRRHGw+bZrhclwtWMxdWlMdczyRHrlshyT5JuD8oqKGplpIr9iJGor7nVxo7Yd080xdzE7/AB75NcJl9rDRrMa1c/Y5O2i22zLPa5opqm3Z5KYnf+KeX5epnNE0TROBlGvXIAD4eKMI2bGVrkt19tdNdaGRNHQ1USPTwprwXvpvKdy3Rdjg1xrC9weOxOX3YvYS5NFUcsTogjymuRjLgGjqsUYJSassUWslXbXqr5aVvS5i8XsTp13p304RPHZZ3mJu2eOObmdJbIbfxmddOAzTSm7PFTVuir1TzT8J9SJxH27ADtHI+KRskblY9qo5rmroqKnBUG58mIqjSdza/wAmTNJ2beUNnu9S9H3SBFoq5elZo9EVy+6TZd4yf4G/4RYiqd+6XFG1+TRkmb3cPRH1J+tT0TyeydY9jLRkUMAKVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAAffwtj/EuCPXCYev1wsqVGysyUNQ6LnNNdNrRd+mq/GVrd65a8iqY6GMxmWYHMeD4ZZpucHdwoidOjV97s+Zk93eIPnCTzlXwvEfzJ62O+jOSeh2/djsOz5mT3d4g+cJPOPC8R/MnrPozknodv3Y7Hp8tcc5vZpY0tuG7PjbEL6qskRHSLXyq2GNPZyO38Gpv+gr2LuKxFyLdFc8frYbN8t2dybBXMbicJb4NMebHHPJEcW+WzWibT4CwbH90blNUUtqpNqouFdKr5HoxurpHuXiq6KpOI4Nm39aeKI3y5BuTXmeMnvNuIquVcVNMaRGs8URDzGQeYE2aWXVPiWVqsbXVlWsMa+0ibO9sbfE1EKGEvTetd8nlmfmzG02V05NmM4Gn+CmjX1zNMTM9b5+dubDMpbtgWsqpUjs9xujrfXKvBrHxrsv/wALkavg1POKxHg9VEzumdJXWz2STndrGW7ca3KKOFT0xPHHtjX26PQ5rYTuWOMA3K3WK9VVju8kfOUVfRTujVsib2oqtXe13Be8uvQVsRbqu2ppoq0nkliclxtjLsfbvYq1Fy3E6VU1RrxTv38sb4axr5nBmthu8VtqueMsR0dwo5XQzwSV8qOY9F0VOJBq8TiaKppqrnWPW7Bw2RbP4uzRiLGFt1UVRrE8GOOJ9iy7PmZPd3iD5wk8548LxH8yetdfRnJPQ7fux2HZ8zJ7u8QfOEnnHheI/mT1n0ZyT0O37sdjzGJcWXrGVwbXX661l4rGxpEk9bM6V6MRVVG6r0b1+MoV3K7s8KudZZbCYHC4C33rCW4op110pjSNefifJKa+APf5YZHYvzfoL1PhejZWstiRrPE+ZI1kV2uy1uu5XaIq6KqF5Ywt3ExVNuNdEXzjaLLciuWqMfXwe+a6Tprpppv044h5bFGEL5guvkoL9aay0VbdU5qrhdGq+DXcqd9C3uW67U8GuNJZrB4/C5hbi7hLkV088Tq3BZffmDhr4MpvsmmxrP2dPRDhXNPv9/8AHV/dLD2Z/LOwdlTjW44YulrvFRXUOxzklLFGsa7TEcmiq9F4OToMdfzO1h65t1ROsJzk+wGZZ1gqMdYuURTXrpEzOvFOnJE8zNuHL1HiPD9tusMUkEVdTR1LI5URHta9qORHaaproplaauHTFUcrXmKw9WExFzD1TEzRMxrG7inTiYKzA5b2C8ucZXbDVwtV6qK22y8zLJTQxrG52iLuVXovT1GIvZpZs3Jt1ROsNkZZ3PMzzXB28bZuURTXGsRMzr8Il7bI/lBWHPmC7zWOhuFIy2ujZKtcxjdpXo5U2dly/sqXWFxlGLiZoiY050e2i2XxezVVqnFV01TXrpwdeTTfrEc6vnZnzYsibTbrhfKStq4a+d0ETKFjXORUbtKq7Tk3H3F4qjCUxVXE8fMpbPbN4vaW7cs4WqmmaI1nha8+nJErTI7lFYfz6W7pYqK4Uf3M5vnfXzGN2tva02dly/sqecJjbeL14MTGnOuNotlcZs13rwqumrh66cHXk036xHO8Ty+v1fpvhOl8ri1zf7t7YSHuaft+n8FX5NahCXW4B2b7NPCHydzdJhr827T/ACkP1ENl0eTHQ/P/ABn3i5+Kfmht6pPwwH4av/4iOZ3/AOP2/k333Jt+M/2f5IREXdDJsciDk3UdbQw5iYkpW1O09fuRSTN1YiNXRZ3IvFdUVG+BV6iU5XgomO/3I6O1zz3RNrLluucmwVWn8yY38f8AD29XOmRifFNswXYa283irjobZRx85NPKuiNT+qrwRE4qSO5cptUzXXOkQ0Lg8Hfx9+jDYanhV1TpEQhZmD6opcH18sGC8PU0VE1VRlbdVc6SROtI2qiN8aqRm9nNWulmni9boHK+5VZi3FeZ35mrzaOKI9s669UPEUvqgOZ0NQj5YbHURou+NaNzUXxo/UtIzfExPHp1JHX3Mcjqp0pmuJ5+FHYkDkVy4bJmXdqaw4koEw5ealyR08zJdulnevBuq72KvQi6ovWZjCZrRfqii5Gk/BrDaTudYrKLVWLwVffbdPHMaaVRHPzTHR1JGYkw7bcW2WqtV3o4bhbqpixzU8zdprkX+vf6DNV0U3KZprjWJapwuKv4K9TiMNXNNdPHEw1ZcpLJKbI7MOa1xufLZqxq1NtqH8ViVdFY5f2mruXr3L0kCxuFnC3eDG6dzszZLaGnaLL4vzxXKeKuPXzx6p3/AAYpMemoiK5yIiKqquiInFQ+TOnHKR+RXIrxPmW+numI2y4Zw47R34ZmlVUN/gYvsUX9p3iRTNYTLLl/Sq59Wn4tT7Sd0DA5RFVjBaXb3q8mnpnl6I64bA8v8u7Blfh6Gy4dt0dBQx712U1fK7pe93Fzl61JfZs0WKeBbjSHMWZ5rjM4xE4nG1zVVPVHqiOSGNOUhymbRkdZnUlO+O44rqGa0tAjtUj14SS6cG9ScV+kssbjqMLTpHHVzdqWbJ7IYnaK9FyvWmxTP1quf1U88/JAyblSZrzzyS/fxcmK9yu2Y3Na1NV4ImzuQic4/FT/ABy6Vp2L2fppinwSni6e10/tRZr93d2/zt9E+eH4nz5e/ods/wCh0dU9p/aizX7u7t/nb6I8PxPnyfQ7Z/0Ojqntehy9zqzmzGxpaMN2zG92fV3CdsSOR7VSNvFz17Xg1uq+IrWcVi79yLdNc6yxeabP7NZTgruNv4Sjg0Rry8c8kb+WeJs7ttK+hoKenfPJVPhjax08q6vkVE0Vzu+vEndMaREOPrtcXLlVcRpEzM6Ruj1Q15cv3MNuJs0qLDdNLt0tgp9mVGru9cSaOd8TUYnxkMze/wB8vRbj+H5upO5llU4PK6sbXH1r08X4aeKOudUXzBNxgAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv8A2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP8Ackjmz+i7F/wRV/YvMziPsa+iWpsk/amG/HR/dDTg32CeA1w7ydgAFWkpJ7hVQ01LDJU1MzkZHDE1XPe5eCIib1U+xE1TpCncuUWqJruTpEb5ndDIWaeRl9yesOGKzESsp7he2TS/c9N7qZjNjRHrw2l296Jw0LzEYWvDU0zc31ciL5LtHhc9xGIt4PjotaRwvOmdd3qjTfyscFklgBlnkofrEYH/AJ132TzIZf8AeqOlCNtv3exf4fzhtiNgOKwAB8+93Nlns9fcJE7Skp5J3eBrVcvkPNVXBpmrmV8PanEXqLMb6piOudGmC8XSa+XeuuVQ5Xz1k8lRI5eKuc5XL5TWdVU11TVPK78w9mnD2aLNG6mIiPZGizPK4F3IBs05GWUFPlvlXRXaogRL5f4m1lTK5O2ZEu+KNOpEaqOXvu7xOcsw0WLMVTvq43IPdAz2vNs1rw9E/qrM8GI55/inr4uiEhzLtZAAAAAoyxMnjcx7UexyK1zXJqiovFFQ+kTNM6xvasOVllNBlJm5W0tvi5qzXJnr+iYibo2uVUfGnea5F07yoQHMMPGHvzFO6eOHZmxOeVZ5lNFy9Otyj6tXr03T7Y+OrDJjE/AJp+pwYlclwxjh5ztY3Rw18bV6FRVY7ys+Ik+S3eOu37XPvdXwdM28LjY36zTPzj806CUudgClUfi8vuV8h8nc9U+VDSpdvytXe/yfWU1lV5Uv0CsfZUdEfJaHlXAAAABeWez1uILrS2220stbX1UiRQ08Ldp73Ku5EQ9U0zXVFNMazK3v37WFtVX71UU00xrMzuiGznkt8nSlyPwt64rmx1OK7ixFrahu9IW8UhYvUnSvSveRCdYDBRhbetXlTv7HH+2W1dzaPFcC1xWKPJjn/wBU+ueTmhifl7Z5tt1sjy6s8+tXV7M91fG7/lxcWRL33Lo5U6kTrMdm2L4MeD0b53pt3NNnJvXZznE0/Vp4qPXPLV7N0evoZW5En6uOGvfKr7d5f5Z92p9vzQ3uh/vFf6Kf7YY99Ud/Rzhb4Vd9k4s85+yo6fySfuU/tHEfg/yh6DkU56tzIwQ3DN1qEdiKxxtjRZF7appk3Mf31buaviXpK2V4vv8Ab73VP1qfkxXdC2bnKcd4dh6f1N2dfw1cse3fHtWfK/5LyZnUD8WYYp2piqjj/wCIpmpp6/iROHvjU4dabuo+ZlgO/wAd9tx9aPir7C7Y+J7kZfjqv1FU8U+ZM/4zy82/na7ZoZKaaSGaN0UsblY+N6aOa5NyoqLwUhsxpxS6ppqiuIqpnWJdD49AAAu5ANovI2y3XLzJK1PqI+buN5VblUIqaORHonNtXwMRvxqTvLbHecPGu+eNxxt7m3jTO7kUTrRa+pHs3/HVjT1RLGsFuwPY8MMbG6tuVStS9VaiuZDGnQvRq5yf5VLLObsU26bfLKWdyvL67uOvY6deDRGnTNXZEfFJ7L78wcNfBlN9k0zln7OnohqLNPv9/wDHV/dLXZym8Nz4x5XlxsVM1Xz3GsoqZqJ/FFGir4k1UhuOom5jpojlmHU2yGLowGyVGKr3UU1z1TU2VW+iitlBT0sWjYaeJsTE6mtTRPoQm8RFMREOSrlyq9cquVb6pmetFvlo8m1uPLLLjbDlKi4ioItauCJu+tganFETi9qcOtN3QhgczwXfqe/W4+tG/wBcNx7AbWTlt6MrxtX6mufqzP8ADVP5T8J4+d29Tww4+3ZUXm6yN2fulc3IxVTiyNiN+srhk1HBs1Vc8vndSxcXc1tYeP4KPjVMz8tGUOUnkfT545fS25j0gvVErqm2zuXRqS6aKx38Lk3d7cvQX+OwsYq1weWNyHbJbR17OZhF+Y1t1cVcernj1xvYF9TvtVXZLrmNb6+nfS1tLLTQzQSJo5j2rKiovjMTk1M01XKat8afm2V3U71vEWsDetVa01RVMTHLE8Fkjl9fq/TfCdL5XF5m/wB29sIp3NP2/T+Cr8mtQhLrcA7N9mnhD5O5ukw1+bdp/lIfqIbLo8mOh+f+M+8XPxT80NvVJ+GA/DV//ERzO/8Ax+38m++5Nvxn+z/JCSONZpGRpxe5Gp41IvvdCVTwYmW5vBNjp8MYQslqpWJHBRUUNOxqJwRrEQ2VaoiiimmOSHAuYYivF4y7iLk6zVVM9cokeqN4vq6a24SwzDI5lJVvmrahqLukVmy1iL3kVzl+Ij2c3JiKLcbp428O5TgbddzE46qNaqdKY9Wusz8oQZIs6MAOWPdG9r2OVj2qjmuauioqcFQPkxExpLbxkJiupxzk5hG+VjlfWVVAznnrxe9urHO8atVfGbFwlybtiiud8w4Z2lwVGXZxicLa8mmqdOieOI9mrCPqiOHoK3Kmy3dWp66oLo2Jr9N+xIx20nxtaviMVnNETZpq5pbE7lmKrt5rdw8eTXRr7aZjT5y16EPdRpxcg2wZa4gtM9R9yYp8eW521PJXOSVUjVe1khau5qdC7tUXp3oSrKaMPXTrp9eOf8nOfdLxWd4W9FHfJjC17uDxcfLFU75545Jjk4k0Z6iOlhfLK9scTEVznvXRGonFVXoQkszpxy0DTTNUxTTGsyiPyheXLbsNMqrFgCSK6XbfHLd1Tap6denm/wDxHd/2Kd8j2MzWmjWixxzz8jd+y/c4vYuacXm8TRb3xR/FPTzR8eh5nky8lesx7cW5iZmpNcEq3euKa31yq59Sq70mm19r1N6enduWhgcBN2e/4jj15Of1yy+1+2drLbfibI9KeDxTVTup/wBNPr555OlYcpnkUyWRtXijL6mfPQJrLVWNmrnwpxV0PS5v8PFOjXgnjHZXwdbliOLm7F1sh3QYxE04DOKtKt1NfJPqq5p9e6eVDpUVqqioqKm5UXoI23zv4xrXPcjWornOXRGomqqvUCZiI1lsY5GHJzfllYXYqxBTbGJbpEiRwSJ21HTrv2V6nu3KvUmidZM8swXg9PfbkfWn4Q5T2/2rjOL/AIBg6tbNueOfOq5+iOTr5mas3My6DKbL+74lr3NVKWNUghVdFmmXcxieFfo1UyuIv04e1Nyrka+yPKL2d5hbwVn+KeOeaOWfZHxai7/fKzE18r7vcJVnrq6d9RPIvtnuVVXymuq65rqmqrfLuTDYa3g7FGHsxpTRERHRCwPC6AAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kkc2f0XYv+CKv7F5mcR9jX0S1Nkn7Uw346P7oacG+wTwGuHeTsBkrKTk9Y1zkq2JZLY6G27Wkl1rGrHTMTp0d7Ze83UvsPg72Jn6kcXPyIjnm1OWZBRPhVzWvkpjjqn2cnTOjYDkVyWMK5Jwx1jI0vWJHN0kutSxNWdaRN4MTv8AFesl+EwFrDRrvq5+xzDtJtnmG0NU25nvdnkojl/FPL8vUwR6pP8AlDAfvVZ5YjEZ3vt+38myu5N5GM6aP8kKyMuggDLPJQ/WIwP/ADrvsnmQy/71R0oRtt+72L/D+cNsRsBxWAAPG5wvfHlRjF0fs0s9Wqae9OLXE/Y19Es3kUROa4WJ3d8o/uhp1b7FDXLvByBUpo0mqYY3exe9rV8CqfY45eK5mmmZhuns1LHQ2mipYkRIoYGRsROCNRqInkNm0xpTGj8/b9c3L1ddW+Zmfi+gelEAAAAACEXqktDEkeBK1ETn1dVwqvTs6Rr5SL51EfUnpdCdya5VrjLXJ9Sf7oQhIu6HAJR+p4Pe3Oa7NRV2HWaTa/8ANj0M9k3289DTfdSiJye3M/zI+VTYwTJywAUqj8Xl9yvkPk7nqnyoaVLt+Vq73+T6ymsqvKl+gVj7Kjoj5LQ8q4AAAfcwZgm95gX+nsuH7dNcrjOujYok3NTpc5eDWp0qu4q2rVd6qKKI1ljsfmGFyvD1YnGVxRRHLPyjnn1NkHJr5LVpyRoG3K4LFdcXTs0lrNnVlMi8Y4teHfdxXvJuJrgsBThY4VXHV/3c5N2t2yxG0NzvFnWjDxPFHLV66vyjdHS9LyiM9bbkbgmWvkc2e+VSOit1Frvkk09m5P2G8VXwJ0lbGYunC2+Fyzuhidltm720mNizTxWqeOurmjmj1zydbVbfr5X4nvVdd7nUvq7hWyunnnkXVXuVdVUgVddVyqaqp45dn4bDWsHZow9ing0UxpEeqGzTkSfq44a98qvt3k3yz7tT7fm5F7of7xX+in+2GPfVHf0c4W+FXfZOLPOfsqOn8kn7lP7RxH4P8oQewBjq7Za4tt+IrJOsFfRybaJ7WRvtmOTpa5NUVCL2btViuLlG+HRGZ5bh83wleDxUa01R1TyTHrhtdyezZs+cuCqS/wBoeiOcmxVUjl1fTTJ7Jjv6L0popsDDYijE24ro/wDpxVn+SYnIMbVg8RHrpnkqjkmPz5pYa5T/ACQKPM9KjEuFGQ27FaNV01PuZDX6df7Mn8XBenrMZj8ui/rctcVXzT/Y7bq5k/BwOYTNVjknfNHbT6uTk5mvW+WO4Yau1TbLrRTW+4Uz1ZNTVDFa9ip1opD66KqKppqjSYdRYfE2cXapv4euKqKuOJjdKxPC5APf5D5byZr5r2DDyMV1LLOk1Y5Pa07O2kXxomnhVC8wljwi9Tb5OXoRjaXNoyXKr2M1+tEaU/inijt9jbpT08dLCyGFqRwxtRrGImiNRE0RENhxGnFDhyqqa6pqqnWZaruVvmMmZGdl9qIJedt1tX7m0qouqbMeqOcnherl+IgWY3u/4iqY3RxOzdiMq8U5LZoqjSuv69XTVu6o0bNsvvzBw18GU32TScWfs6eiHImaff7/AOOr+6WBMIZTyYg5Y2NcbVsKpb7K2CGkVybn1L6diKqe5Yq+NyGIt4fhY6u9O6Pno2Tj87jC7H4TLLU/Xu8KavVTFc/OflLIXKjzFZlrkpiGvZIkdfVwrQUaa71llRW6p4G7TvEXmPvd4w9VXLPFHtRfY7KpzfOrFmY1ppnhVdFPH8Z0j2sIZf8AK5ZQcmqCSSRK7HVK9tko6Ny7T6mVU0hlVOKps6a9at06TGWcx4OE131xxR+TYWabDTc2lmIjg4WqO+VTyUx/FHTru9U+pJXKLBa4By4sVjlVr6uCBH1ciIibdQ9VfKu7+NzjNYe33i1TRO/82pc8zCMzzG9iqfJmfq+qmOKn4RDGuBOURDiXlLYvwE+di0NPExlvd+1PEn4dqL066r/5allaxkV4uuxycnTG9Lcy2WqwmzWFzaI+tMzw/wANXkT/AN53o8vrxhi653ZhpYYk9f08NFDdqiNU5uWoTndERP2mt0Ry9fgK9mq1OIucDfxa9PGxWaWMdYyTA+Fz9Wqa5oid8U/V+Ezxx/y8Zy+v1fpvhOl8ri1zf7t7YSDuaft+n8FX5NahCXW4B2b7NPCHydzdJhr827T/ACkP1ENl0eTHQ/P/ABn3i5+Kfmht6pPwwH4av/4iOZ3/AOP2/k333Jt+M/2f5IRtesbkc32TV1Qi7oWY1jSW5HLTE0GMcAYdvdM9HxVtDDNu6FVibSeJdU8RsmxXF21TXHLDgrNsJXgMwv4WuOOiqY+PF8EeuXrlJcMbYMtmJbRTPq6qwvk9cwRN2nrTv0VXInTsq1FXvKq9Bh82w1V23FyiOOn5NodzTPLOXY25gcRVwab2mkzu4UcntietryIc6mAPp4aw1c8Y36istnpJK65VkiRQwxpqqqvSvUicVXoQqW6KrtUUURrMrPGYyxgLFeJxNXBopjWZlt6yswW3LrLvD2G2vST7m0ccD3pwc/TV6p4XKqmxbFvvNqm3zQ4YznMJzXML+NmNOHVM+zk+COPqimKYaLL7D2Hkc1amvuHrpWIu9I4mKmv+Z6fEYXObkRapo55bX7leCquZhfxmn1aKdPbVPZCABEHTj0eXmPrtlji+3Yiss6w11G/a2VXtZWL7KNydLXJuUr2b1ViuLlG+GJzXLMPnGDrwWKjWmrrieSY9cPfZzcqXGuczpKWrq0tFiVd1qoHK2Nyf/sdxf493eLvE4+9ieKZ0jmhGcg2NyzINLlunh3fPq3+yN0fP1sPGNTxI/k3csC75UTU1ixI+a84SVUY3VdqehTrjVfZM/gXxacFzWCzKvD6UXOOn5NTbWbCYfOqasZgoii/8Kunmn19bYnhrEtsxhZaW7WethuNuqmJJDUQO1a5P6L1ou9CZ0V03KYqonWJcr4rCX8Deqw+JommunimJRX5VvI9jxYyqxfgajbFfN8lbaYURravrfGnBJOtODvDxwGYZbFzW7Zjj5Y5259idu5wU05dmtWtrdTXP8Pqn/T6+To3VeS5yNo8Fy0mK8cQx1N9bpJR2xdHx0a8Ue/odJ3uDe+vD7gMt71pdvb+SOZ42y29nMIqy/K5mLW6qrdNXqjmp+M9CV9fX09ro56uqnZT0sDFklmlcjWsaiaqqqvBEQkMzFMay0nbt13q4t241qniiI3zLWTysOUM/OvFraG1yPZhO1Pc2kau71zJwdM5O/wAGp0J4VILmGM8Kr4NPkx/3V1/sTstGz+E77fj9fc8r/THJTH5+voYHMS2UAAAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kk8zaSaty5xRTU0T6iea11MccUbVc57liciIiJxVVM3fiZtVRHNLUWUV028xw9dc6RFdMzM8kaw145f8h/MvGKxS19DBheidoqy3N/4TTvRN1dr4dCHWcrxF3jqjgx63U+Z90TJMBrTZrm9VzU7veni6tUpsr+QvgPA7oay9JLi25M0XWtRG07V70Sbl/wASqZ6xlVi1x1/Wn4dTTOcd0bNsxibeG0s0T5vle92RCRNJSQ0NNFBTwsp4I27LIomo1rU6kRNyIZqIiI0hqquuq5VNdc6zPLO9dh8QY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8AJCsjLoIAyzyUP1iMD/zrvsnmQy/71R0oRtt+72L/AA/nDbEbAcVgAD42LbV93cL3i2aa+u6KanRPdMVv9Sldp4dFVPPC8wV7wbFWr3m1RPVMS0wT076SeSCRFbJE5WORehUXRUNazGk6O/KaorpiundPG6Hx7co5WKjm7nIuqeEPkxrGktyGWmIosX5fYbvUD0fFW0EM2qdasTaTxLqniNk2K4uWqa45YcFZvhKsDmF/DVxx01VR8eL4PVFdigAAAAAICeqNYmiqsYYTsUb0c+io5aqVqL7FZHIjdfFGvxkRzmqOHRRzQ6V7lOEqowmJxcxxVVRTH+2NZ+aH5HW9gCYHqcVjfPjPFt4Vv4KmoIqVHL+0+Ta8kZIsmp/WV180NFd1fExTg8NhuWqqZ6o0/NPslzmkApVH4vL7lfIfJ3PVPlQ0qXb8rV3v8n1lNZVeVL9ArH2VHRHyWh5VwABnXITklYlzqigu00rLJhZz1RbhJo+SbRdHJEzpXVFTVdE8JlsJl1zFfWnip52t9ptt8Ds/M4emO+X/ADd0RzcKfyjjbCcq8nML5O2NLdhy3NgV6Is9ZKu1PUO63v6fAmiJ0ITHD4a3hqeDbhy3nWfY/Pr/AH7G1680R5MdEfnvWmdGdlgyRwtJdLvOklU9FbR2+Nyc7UydSJ0J1u4J9BTxWKowtHCr38kc642f2exe0WKjD4aNKY8qrkpjt5o5WrjNDM++Zt4uq8QX2fnKiVdmKBirzdPH7WNidCJ9K71IJfv14iublbsjJsnwuR4SnB4SNIjfPLM8sy8mW7ONofIk/Vxw175VfbvJ1ln3an2/Nx33Q/3iv9FP9sMe+qO/o5wt8Ku+ycWec/ZUdP5JP3Kf2jiPwf5Q1/ERdOsjZG53XrI7GEd3trlqKCbSOvt7naMqY9focnFF6PAql7hMVXha+FTu5YRTaPZ7DbRYOcPe4qo46auWmeyeWG0bLjMixZq4Xpb/AGCrSpo5k0c1V0khf0se3ocn+9xPLF+jEURXbnicb5tlOKyXFVYTF06VR1THPE8sPL518nbCud1r2LtT+s7tE3Smu1M1Emj6kX9tv8K+LQt8Vg7WKj60cfOzOz21OYbO3dcPVwrc76J3T2T649urXbnZydMWZH1qLdoW1lmlk5unu1LvhkXoa5OLHaJwXxKpDcVgruFn627ndT7PbV5ftFRph54NyI1mid8euOePXHtYtLBM0+fU98q/uPha6Y4rYdmpurvWlErk3pAxe3cnunpp/gJdk+H4NE3p5d3Q5m7qGc9/xVvKrU/Vt/Wq/FO6PZHzZ05RWZDcqsor/fGSIyt5laaiTpWeTtWaeDVXf4TKY2/4PYqr5eTpa42Vymc6zezhZj6uutX4Y45693takpXukV73uVz3aq5y8VXpU167fiIjSIbmMvvzBw18GU32TTZVn7OnohwRmn3+/wDjq/ul5KzZ24Zqs1b5gCV6W3EFI9ksbJVRG1qOja7Vi9LkRdFau/RN2vRQpxVub1VieKqPiy+I2ex1GVWc3pjh2qtYnT+HSZjj9U8+5Cflv51MzFzAZhy1zpJZLA50avYurZqld0ju+jdNlP8AF1kXzTFd+u97p3U/N0N3O9n5yrL5xt+nS7e0nop5I9u+fY+tyGMjJMXYvbji7Uy/cWzyf8Ekibqiq6FTrRnHw6dSlTKsJ3yvv1UcUbulY90faSnA4TxVh6v1l2Preqntq3dGqaGeOZ1NlHlnecRTPb64hjWKjicv/NqHbo2/HvXvIpJcXfjD2qrk+zpaB2cyevPcztYOndM61TzUxv7OlqfsuMbzh/FUOJKCukp73FO6pbVpvdzjtdp2/jrqvxkApu10V98pnjdr4jAYbFYWcFdoibcxpp6o3JiepxVMlVVZgVFRI6aWV1K98j11c5yrKqqq9KqpI8lmZm5M+r82h+6vTTRTgqKY0iOFEf8Aqydy+v1fpvhOl8ri+zf7t7YRDuaft+n8FX5NahCXW4B2b7NPCHydzdJhr827T/KQ/UQ2XR5MdD8/8Z94ufin5obeqT8MB+Gr/wDiI5nf/j9v5N99ybfjP9n+SERF3QyXHIt5TNHglEwNimqSmtE8qvt1fKujIJHL20b16GuXei8EVV14kiyzHRa/U3J4uSWje6BsfczD/wDlcBTrciPr0xvqiN0x645Y5YT9Y9lREjmq18b01RUXVFRSXb3M0xNM6TxSwlj/AJHOWWP6+WvntEtorpVV0k1pl5lHuXpVmit18Ri72W4e9PCmNJ9TYWWbeZ5lluLVN2K6Y3RXGvx4p+LxVJ6njl5DUI+a6X6piRdeaWojai+NGalrGTWInjmUgr7qWc1U6U27cTz6T2s05b5I4MylgczDNjgop3t2ZKp+sk8idSyO1XTvJohlLGFs4eP1dOjX+bbQ5nndWuOvTVEbo3Ux7I4n2cdY+seW+HKm94gro6Gggaqq569s9ehjG8XOXoRCrdu0WKJrrnSGOy3LcVm2JpwuDomqqfh655o9bVbntnBXZ2Zg1l/qmOp6NE5ihpFXXmIEVdEX+JdVVe+pAMXiasVdmud3I7Q2byK1s9l9OEonWrfVPPVP5Ruj1MeFmlQAAAXlos1wv9ayjtlDU3GreujYKWJ0j18SIp6ppqrnSmNZW9/EWcLRNy/XFNMcszER8U4+RrlHm3l3cnT3VYrNhOqRXT2i4PV0znabnxsb/wAt3DXVU1TinAlWW4fFWZ1q4qZ5Jc57f55s7mtvgYfWu/Turp4o6JmfKjo60zCSNEPiYoxVacF2Wpu97uEFtt0DdZKiofstTvJ1r1Im9SncuU2qZqrnSF3g8HiMfepw+FomuurdENdvKd5Wtbm/JLh/D3PW3CLH9vtdrLXKnBX9TOlG+NepIbjsxqxP1LfFT83VGx+xFrIojGYzSrET1UdHPPPPUjiYVtgAAAAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kvyRNGgAAAAgx6pP+UMB+9VnliIrne+37fydE9ybyMZ00f5IVkZdBAGWeSh+sRgf+dd9k8yGX/eqOlCNtv3exf4fzhtiNgOKwAAA1TcrPLWXLXOq+RMiWO23SRblRuRO1Vsiqrmp7l+0nxEBzCxNjEVRyTxw7O2JzanNsltVTP17ccCrpjdPtjSWHTGp6ATh5Bue9Ktu7HV6qWw1UUjpbTJK7RJGuXV8KL1ourkTp1XqJTlOLjTweuejsc590vZq533x1hqdYnir05NN1XRpxSm0SdoAAAAAHnMb40tOXmGa6/XurbR26kjV73uXe5ehrU6XKu5EKV27TZom5XPFC/y/L8RmmJowmFp4VdU/9mfVHK1K5sZiVua2YF5xPWosbq2XWKHXXmYk3MZ4monj1Ne4i9OIuzcnldv5JlVrJcvtYG1x8GOOeeZ45n2y8iWzOgGzXkSZay4AyXpq2siWO436X7oSNcmjmxqiJEi/4U2v8ROMssTZsRM76uPschd0PN6czzmq1bnWizHBjp31fHi9iQxmGsQClUfi8vuV8h8nc9U+VDSpdvytXe/yfWU1lV5Uv0CsfZUdEfJaHlXAAEr+Qlnj96WKZMDXao2bVd5Nuhe93aw1X7PeR6Jp4UTrJBlOK73X3mrdO7p/5aT7pOznh2FjNcPT+stx9b108/8At+WqSfKC5VmHMlqaWgpXR3rFSt/B22J/awL0OmcnsU/h4r3uJm8ZmFvCxwY46ubtal2X2Kxu0FUXq/1djlqnl9VMcvTuhrgzAzDvuZ2JKi+Yhr311bMuia7mRN6GMbwa1OpCF3r1d+vh3J1l1hleVYTJ8NThcHRwaY65nnmeWXnCgywBtD5En6uOGvfKr7d5Oss+7U+35uO+6H+8V/op/thj31R39HOFvhV32Tizzn7Kjp/JJ+5T+0cR+D/KGv4iLp0A9/k3nViHJLEzbpZJucppFRtZbpVXmalnUqdC9Tk3p9BeYbFXMLXwqPbHOjGf7PYPaHDd4xUaVR5NUb6Z7OeOVsryt5QWEc1sIT36gr2UXrKLnLhSVT0bLRoiaqrutvHRybl+gm2HxlrEW+HTOmm/1OR852YzHJcZGEu0TVwp0pmN1XR6/VvQA5UPKDqs8MYqyjfJDhe3Pcygp13c4vBZnJ+07o6k8ZEcfjJxVzi8mN3a6c2O2Xt7O4PW5Gt+vjqnm/0x6o5eeWN8usD12ZGN7Nhq3NVam41DYtrTdGzi9695rUVfEWNm1VeuRbp5UtzXMbWU4K7jb26iNemeSPbPE2/YVw1RYQw5bbJb40ioaCBlPCz+Fqaar314r4TY1uiLdEUU7ocK4zF3cdibmKvTrVXMzPtQT9UEzUS/YztuC6ObapLOz1zVo1dzqh6bkX3LPrqRPOL/AA7kWY3R83SPcwybwbB3Mzux9a7xU/hjtn5IkO9gvgI+3e3NZffmDhr4MpvsmmyrP2dPRDgfNPv9/wDHV/dLWvyx55ablKYnmhkfDMx1M5kkbla5qpAzRUVOCkKzKZjF1THq+TrPYKimvZvD01RrE8L+6WEHOVzlc5Vc5V1VV4qpimxIjTihnjk1cqe65JVzLVcUkumD5pNZaTXV9Mqrvki1+NW8F7ymWwOPqws8Grjp+XQ1ttbsZh9oaJxFn6mIiOKeSr1VflPJ0O/K35QrM6sV09FZpZPvVtaf8PtIrfXEqp20qtXen7KIvRr1n3McZ4VXwaPJh42H2WnZ/CVXcTH6+5v9URujX4z/AMPd5H8jXDGc2V9qxNHie5UNbPzkVTA2GORkcrHKionBdNNF3r0l3hcst4mzFyKpiUb2i2/x+QZpcwNWHpqpjSYnWYmYmNf+EpOT9yeLVkBablTUVxqLtVXGVsk9VOxGbmoqNa1qa6Imq9PSZ7B4OnB0zFM6zLTW1G1OI2ou2671EUU0RMREce/fMyx/6oLeIKLJOmoXvRKitukKRM13qjGuc5fFu+Ms84qiMPFPPKUdzCxXczuq7EcVNFWvt0iGuQhbq4AJuXUCU1B6oVje30VNSx4dsTmQRNiarkm1VGoib+37xnozi9ERHBhpi73Lsru3Krk369ZmZ/h5fYxhnpyi77n59x/u1bqCg+5nO816yR/bbezrrtOX9lCxxeNrxenDiI0THZzZXC7M998Grqq4emvC05NeaI52KDHpsAZdys5U+YGU8EVHbbqlxtMe5tuubVmianUxdUc3wIuneMjh8ffw8aUzrHNKDZzsZk+d1TcvW+Dcn+Knin28k+2GfrH6pHpC1LzglXS9L6Cu0Rf8Lm/1MtRnWvl0dUtZYjuT8f8A+Ni+L/VT+cT+T7MvqkOH2sXm8G3Rz+hHVMaJ8eilbx1b8yWPjuUYzXjxVPVLxOK/VF8RV0MkWHcMUVrc5NEnrZnVDm99GojU+PUtbmdXJ4rdOnxSHBdynB25irGYiqv1UxFMdfHKNOPsz8UZn3X7oYnvNRdJ2682yR2kcSdTGJ2rfEhg71+5fq4VydW3MsyfAZPa7zgbUURy889M75eXKDMgGS8isjqzPa/1tot97t9pq6WFJ+brUerpWa6OViNTfpqmu9OJfYTCzi6pppqiJhENpNo7ezdijEXrNVdNU6fV04p9evOktYvU3aZqtdesayvT20dBRI3/ANTnL5DN0ZLH8dfVDUmJ7rFc8WGwkf7qvyiI+bKeFeQzlZhxWyVVtrL9M3frcalVaq+5Zsp8Zf28qw1G+NelDcb3Rs+xcTFuuLcf6Y4+udZZqw5gyw4OpEprHZqK0QaabFHTtj18Oib/ABmSotUW40oiIa+xePxePr4eLu1Vz65mV7dLxRWKikrLlWQUFJGmr5qmRI2NTvqq6FSuqmiNap0hb2LF3E1xbs0zVVPJEaz8Eas2OXlg/B7JqPCsbsV3RNWpKzWOkYvWr13v/wAKad8wmIza1b4rX1p+DbWSdzTMsdMXMwnvNHNvqn2bo9vUhBmlnPizOK6+vMSXN9RExVWGii7SngT+BnDxrqvfItfxV3E1a3J7HROTbP5fkNrvWCt6TO+qeOqemfy3PEFqkQAAAAAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kvyRNGgAAAAgx6pP+UMB+9VnliIrne+37fydE9ybyMZ00f5IVkZdBAGWeSh+sRgf+dd9k8yGX/eqOlCNtv3exf4fzhtiNgOKwAAAwxym8hafPPBDqeBY6fENBtTW6ofuRXadtE5f2XaJ4FRFMbjsJGLt6R5Ubk62Q2lr2cx3Dr47VfFXHymPXHxjiaur9Ybhhi8VdqutHLQXGkkWKanmbsuY5P8AfHpIJXRVbqmmqNJh2PhsTZxlmnEYeqKqKo1iY5VgeF0qU88tLNHNDI+GaNyPZJG5Wua5N6KipwU+xMxOsPFVNNymaao1iUscoOX5e8M0cNsxtQOxDSxojG3KncjKpE/jRe1f4dy9epIMNm9dEcG9Gsc/K0nnvcywuMrm/ldfeqp/hnjp9nLHxhJbDXLJynxLE133zNtUzv8AubnC+FU8eit+kzdGZYWvfVp0tR4zYLaDCTMRh+HHPTMT/wA/B7GHPnLmdiPjxxYVavT6/jT+pcxi8PP8cdbB1bNZ1TOk4S57s9ixunKTyvs8bnVOObOuntYahJXfEzVTxVjcNTvrhcWdk89vzpRhK/bGnz0Yjx76oFgaxQzR4co67EtaiKjHKxaen177ndsqeBpjr2b2aPs44U9Sb5b3Mc1xNUTjaqbVPvVdUcXxQyzhz6xZnZc21F+rEjoYXKtNbKbVtPD39PbO/iXVSN4nF3cVOtc8XM37kOzWX7PWuBhKdap31T5U9keqGOiySsAkPyT+TNV5u4ggv16pnw4OoZUc9z009eyNXXmmdbf2l8XHhmcvwM4mrh1+THxas222ut5Hh5wmGq1xFccX+mJ5Z9fNHtbLYYWU0TIo2oyNiI1rWpojUTgiITfc5HmqapmqqeOVcABSqPxeX3K+Q+TueqfKhpUu35Wrvf5PrKayq8qX6BWPsqOiPktDyrgADvDNJTTRzQyOiljcj2SMXRzXJvRUXoU+xOnHDzVTFcTTVGsS5qKiWqnklnkfNNI5XPkkcrnOVeKqq8VEzMzrL5TTTRTFNMaRCmfHsAATS5OPK9wLlVlFZ8NXqK7OuNI6ZZFpaVr4+3lc5NFV6dCp0EnwWY2cPYi3XrrDn3avYXNc6ze7jcLNHAq4OmtUxPFERzS8ryueUthDO7CFltmHY7iypo65aiX17TpG3Z2FbuVHLv1Ut8xx1rFUU029eKWb2H2RzHZ3F3b+MmnSqnSODOvHrrzQiuYBucAAVYKuelSVIJ5IUlYsciRvVu2xeLV04p3lPsTMblOq3RXpwoidOOPVPOpHxUXdqu9dYrhDX22snoK2FdqOoppFjkYvecm9D1TVVRPCpnSVC/YtYm3Nq/TFVM74mNYlJXLTl8Y0wpA2jxLSw4rpWtVGTyLzNS1dN2rkTR3jTXvmbsZvet8VyOF82pM37mWWY2rvmBqmzVzb6erfHsnT1I44kxBW4sxBcb1cZVmrq+ofUzPXpc5VVfEYWuublU11b5bXwmFtYLD28NZjSmiIiOiHzFTVFQ8LtPzC/L8wHY8M2i3T2i+umpKSGne5kMWyrmMRqqn4ThqhLreb2aaIpmJ4ocyYzuZZtiMTdvU3aNKqpmOOeWdeZEbP/MO35q5sXvE9rhqKehrea5uOqaiSJsxtauqIqpxavSR3GXqcRequU7pbx2Yyq9kuVWsDfmJqp1103cczPq52PSzSoAASL5M/KvhyIwzdrJcLLU3mmqqpKqDmZ2x80qtRr0XVF46N+kzWBzCMJRNFVOurVO1+xNW0uJt4mzdi3VTGk6xM68esbubjZfqvVI7W2B/rbBFc6bTtUlrmI3Xv6NVTIznVOnFR8UFo7k+I4Ud8xdOnqpntRbzsz0xDnniGK4XlY6akpmq2jt9PrzUDV4rv3ucuiauXqTgYHFYu5i6uFXujdDcuz2zeD2cw82cNrNVXlVTvnsiOSGOSySsAAAAAAAAAAAAAAA9Rllj+vyvx1Z8TW5y8/QTI90euiSxruexe85qqhXsXqrFyLlPIw2cZZZzjA3cDe3Vx1TyT7JbFqvlr5S0VFDOuIJJpZI2vWnp6SV8jFVNdle101ThxJpOaYWI14XwcqW+57tDcrmiLMRETvmqIifXv1+DwOJPVF8JUSPbY8OXa6P8AavqXMp2L9Ll+gs685tR5FMz8EnwfcqzC5pOKv00R6tap/KGG8ZeqAZhX9skVmpLbhuF25HxRrPMie6fu/wDSY27m9+vioiIT7AdzHJ8NpViaqrs+ueDHVHH8WA8XZg4mx7VrU4ivtdeJddU9dTq5rfA3gniQxFy9cvTrcqmWy8DleByyjgYOzTRHqj898vPlFlAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv8A2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP8Acl+SJo0AAAAEGPVJ/wAoYD96rPLERXO99v2/k6J7k3kYzpo/yQrIy6CAMs8lD9YjA/8AOu+yeZDL/vVHShG237vYv8P5w2xGwHFYAAAAMP56cmvC2eVDzlfGttvsTNmnu1M1OcTqa9Pbt7y706FQx+KwNrFR9binnTXZva3H7OV6Wp4Vqd9E7umOaf8Astf+cXJhxtkwktXc6SOvsiO0bdaJ21Hx3bTV7Zi+FNO+RDE4G9huOqNY53T2Q7YZZn+luxVwbnm1b/ZO6WJDHJwAAONlOoDnRAAAC/sVhuGJrtTWu1UktfcKl2xDTwpq569490UVXKoppjWVricTZwdqq/iKopop3zKYmSHIFqHz093zGmayFqo9tkpJNXO70sibkT+FvxkkwmUa/XxHV2tDbRd0yiKasPksaz58x/bH5z1JsWq1Ulit0FDb6WKjoqdiRxU8LUaxjU4IiJwJPTTFMcGmNIc+Xr9zEXKr16qaqquOZnjmZfQPSkAAKVR+Ly+5XyHydz1T5UNKl2/K1d7/ACfWU1lV5Uv0CsfZUdEfJaHlXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv9NdJ8EQ/XkIXnH3iOh1Z3L/2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP9yX5ImjQAAAAQY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8kKyMuggDLPJQ/WIwP8AzrvsnmQy/wC9UdKEbbfu9i/w/nDbEbAcVgAABTkkbExXvcjWtTVVVdEROsERMzpCHXKA5dMGHaqpsOXrYbhXRqsc16lTbgjd0pE326p+0u7wkbxmaxRM0WOOefsb32Y7nFeKppxeca00zxxRHFM/ink6N/QhXi7HmIse3F9diG9Vl3qXLrtVMquRvea3g1O8iEYuXrl6dblWroHA5bg8ttxawdqKI9UfOd8+18EpMmAAAAAAA5a90bkc1ytci6orV0VA+TETGks2ZRcrrHmVc8EElwfiKxtVEfbrlIr1Rv8A+uRe2Yvxp3jKYbML+HnTXWOaWvc82HynOqZrijvV3zqY0643T8/W2EZO54Yazrw/90rFU7FREiJVW+dUSemcvQ5OlOpyblJhhsVbxVPCon2OXc+2dx2zt/vOLp4p8mqN1XR6+eN7IxeIyAAKVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv/YlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/3JfkiaNAAAABBj1Sf8oYD96rPLERXO99v2/k6J7k3kYzpo/yQrIy6CAMs8lD9YjA/8677J5kMv+9UdKEbbfu9i/w/nDbEbAcVgAABBblrcpuWWpqsvcK1asij/B3iuhdorndNO1U6E9svi6yLZpjuObFqensdFdz7Y+mKac4x9PHPHbpn+6fy6+ZC0jDoEAAZqyt5ImYeaMENbDb2WO0yaK2uuqrGj29bGaK5yd/TTvmTsZdfvxrEaR62vs525yfJqptVV98uR/DRx9c7o69UhsOepw2WGNjr7i6urJfbMoKdkLfErtpTM0ZLRHl1z7GrcX3WMVVMxhMNTTH+qZmfho9fD6n1llGzSSe+zO002lrWp5GFzGUYb19bBVd0/PZnii3H+2e1YXP1PDL+pjVKG732if0OdNHKieJWJ5TxVk1id0zC5s91POKJ/W2qKo6Jj82K8b+p2Yht0Mk+FsRUl6RqapS10a08i95HIqtVfDoWF3JrlPHbq1+CZ5d3VcHdmKcfYmj10zwo6uKfmjDjLAWIcvbu+14jtNTaK1u9GVDNEenW13Byd9FUwV2zcs1cG5Gktw5fmWDzSzF/BXIrp9XJ0xvj2vglFkwD0+XOYt6ysxZR4hsVUtPWU7u2Yq9pMz20b06Wr/qV7F6vD1xconjYfNsqwuc4SrB4unWmeuJ5Jj1w2r5O5r2nOTA9FiG1uRvOJsVNK5dX00yeyY7yovSiopsDDYinE24uUuLM+yXEZDjq8Hf5OOJ5Ko5Jj8+aXvS5R8ApVH4vL7lfIfJ3PVPlQ0qXb8rV3v8AJ9ZTWVXlS/QKx9lR0R8loeVcAAAABV04gcbSdaAcgAAADjaTrQDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAce+BzovUvxB81hwH0AAAAAAAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/sSr+pV8qUazBtvgE/PU4PzBxZ8Js+yQl2S/Z19Lmbur/f8N+Cf7kvyRNGgAAAAgx6pP+UMB+9VnliIrne+37fydE9ybyMZ00f5IVkZdBAGWeSh+sRgf+dd9k8yGX/eqOlCNtv3exf4fzhtiNgOKwABh7lQ5urk7lRcLlTSIy81i+srenSkrkXV/wDhaiu8KIY7H4jwazNUb54oTfY7I/H2a0Wbkfq6frVdEcntniaqJppKiaSWV7pJZHK973rqrnKuqqq9ZAZnXjl2lTTFERTTGkQ6Hx6AJ7ckvkjUVkttFjPGtE2qvE7WzUNsqG6spGrva97V4vXiiL7Hw8Jbl+XRREXr0cfJHM5n2325u4m5XlmWV6W44qqo31TyxE8kfPoTDRERERE0RCRtGOwAAAA8hmJlph7NTDk1mxFQMraV6KrHKmkkLuh7HcWqn/Uo3rFvEUcC5GsMxlWb4zJsRGJwVfBqjqmOaY5Yavc/MkLpkXjWS0VjnVVtnRZbfX7OiTxa8F6nN4Knj4KQPF4WrCXODO7kl2LsztFY2jwUYi3xVxxVU809k8jGpYpcAZ+5GmcUmWOadNbKudW2G/vbSVLXL2scqrpFJ4lXZXvO7xl8sxPeL0Uzuq4msdv8hpzfK6r9uP1tnWqPXH8UdXHHrhs9Jy5CAKVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAAAHiUDP3IetVFec+KamuFHBW062+pcsNTE2RmqImi6ORUMvlVMVYmIqjXilrDujX7tjIqq7NU0zwqeOJ0nl5mwbE2X+F4sN3V7MOWhr20kyo5tDEiouwu/2JL67NvgT9WN3M5iweZ4+cTbib9flR/FVz9LT3r3jXLuwAAZE5O1HBX55YIp6mCOop5LnE18UzEcx6b9you5UL3BRE4iiJ50V2quVWsjxddE6TFE6THFLap2PcLdzNn+QReiTzvNvzY6nGPjTH+kV+9V2tSGa0EdJmhi+GGNsUMd3q2sjjbo1rUmciIiJwQ17iI0vVxHPPzdvZLVNeWYaqqdZmij+2HlvEpQZoAAAAAAAA2Ncm3IDLvFeR+ErveMI22vuVVSufPUzxqr5F5xyarv6kQmmCwdi5h6KqqImZco7WbTZzgs7xOHw2JqpopniiJ4o4oYl5dmU+EcuLFhOfDNgo7LLVVU7J3UrVRZERjVRF39GqmOzbD2rNNE26dNdU47m+dZjmt/E0469NyKYp015NZlD8jjewAAAAAAABODk1ci/D9faLdi3FlwpcRpO1Jqa3UMm3St6ucens1Tpam5OnUlOByyiaYu3Z19XI502v7oGLt3bmXZfRNqaeKaqo0q9kckevfzaPtcqPkc0GIrZUYpwJQx0N6p2K+ptNOxGxVbUTesbU3NeidCbneHjVx+W01xN2zGk83Ox+xu3t3C3KcBm1fCtzxRXPHNM+ueWPl0IDPY6N7mParHtVUc1yaKi9KKhEXTUTExrDgPoAAAAAAAAAAAJJ8gW2U9zzsq2VNPHUxstE7tiViPbrtxprovhM3lFMVYideZqXumXa7OS0zbq0ma6d3FyVNhF1w3Zo7ZVv8AuVQpswvXVKZn7K94mFVFGk8Tl6zi8TN2mO+Vb45ZaZ5v+bJpw2l8prWXfNPkw6Hx6AAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv9NdJ8EQ/XkIXnH3iOh1Z3L/2JV/Uq+VKNZg23wCfnqcH5g4s+E2fZIS7Jfs6+lzN3V/v+G/BP9yX5ImjQAAAAQY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8kKyMuggDLPJQ/WIwP8AzrvsnmQy/wC9UdKEbbfu9i/w/nDbEbAcVgADXp6ofjKS55lWXDbHr62tdD64ezXdzsq8f8rW/GQ/ObvCu02+aPm6g7luAizlt3GzHHcq09lP/MyieR9usAzRyRctIczc6rXT1sKTWu2NW5VTHJq16MVNhq95Xq3xamTy6xF/ERE7o42v9uc3qyjJbldqdK7n1I9u+fZGrakiaJom5CeuNHIAAAAAAMG8r7LKHMjJi7vZCj7pZ2LcaN6J2ybCayN8DmbXjRDF5jYi/h55444bB2FzirKc5txM/Uu/Uq9u6fZOnxatkXVCBuygDsyR8L2yRuVkjFRzXJxRU4KNzzMRVExO5uCyaxiuPsq8LX97tqatoY3Sr/8AsRNl/wD6mqbHw1ffrNNfPDhTP8B4szTEYSN1NU6dG+Pg9uXLAqVR+Ly+5XyHydz1T5UNKl2/K1d7/J9ZTWVXlS/QKx9lR0R8loeVcAASN5BlBTXLPKWGqp4amP7k1DubmYj267Ue/RTNZTEVYjSY5Jap7pV2u1kcVW6pieHTunTklsV+9Kxfua3/ACWPzEx73R5sOVvD8V/Nq96e1WpMP2y3Tc9SW2kppkTTnIYGsdp1aoh6iimnjiFO5ib92ng3LkzHrmZfQc1JGq1yI5FTei8FPa3idOOHyfvSsX7mt/yWPzFLvdHmwvPD8V/Nq96e1H7ly4ftluyAuE1LbaSmmSupUSSGBrHabfWiGJzWimnDTMRyw2b3OsTfu5/RTcuTMcGrfMzyPf8AJ+wzZ6nJLBMs1qoZZZLTA5z307HOcuwm9VVN5d4OiicPRMxG6EZ2nxeJozvF003KoiK6uWedkSHDNnppWSw2qiglZva9lMxrmr1oqJuL6KKI44hFq8XiK4mmq5VMT65fXPS1fGkwtZZHukktNC971VXPfTMVVVeKquhS73RPJC7jGYmmIiLtWkeuT70rF+5rf8lj8w73R5sPvh+K/m1e9Pa1V8pynipM/cbQwRMhhZXqjY42o1rU2W8ETgQPHREYmuI53Zux1dVeQYSqudZmnl6ZYxLBMgAAAAANrnJL/V0wP/Ju+1eT/AfdaOhxXtt+8OL/ABR8oYQ9Uk/NzA/83U/UYYvOfIo6ZbE7k/3nF/hp+coJEUdIAAAAAAAAGYeTtyjbzkXiBjduSuwxUvT17bVdqiJ0yR/svT4l4L3slgsbXhKuemd8IHtVsphto8PM6RTepj6tX5Tzx8uRs/wtie24zw/RXu0VTKy21sSSwzMXcqL19SpwVOhUJ1buU3aYronWJcd4zB38BiK8LiaeDXTOkwg3y6OT8zDVz7IFhpkjt1dKjLnBE3tYZ14SonQj+C/xeEi2a4PgT3+iOKd7ozucbTzi7XifF1fXoj6kzy083THJ6uhEMjjegAAAAAAD7UeCcRTRtkjw/dXxvRHNc2ilVFReCouyVu9XPNnqY+cwwVM6Tep1/FHa7feLiXudu3yGX0R3q55s9R4ywX8+j3o7T7xcS9zt2+Qy+iO9XPNnqPGWC/n0e9HafeLiXudu3yGX0R3q55s9R4ywX8+j3o7Un/U/8JXa15qXysuFrraCJlpcxr6qnfGjnOlZuRXImq6IpnMnt1U3qpqjTiac7p+Ow97K7Nuzcpqma+SYndTPMnLi2R1PhS8ysa5zmUczmtamqqqRu0REQlVzioq6HOeBpirFWonlqp+cNPf3jYldvXDt21Xf+Iy+ia571c82ep3b4xwMcXf6PejtPvFxL3O3b5DL6I71c82ep68ZYL+fR70dp94uJe527fIZfRHernmz1HjLBfz6PejtPvFxL3O3b5DL6I71c82eo8ZYL+fR70dr5FVST0NRJT1MMlPPGuy+KVise1epUXehSmJidJXlFdFymK6J1ieWOOFI+KgAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/ALEq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/wB/w34J/uS/JE0aAAAACDHqk/5QwH71WeWIiud77ft/J0T3JvIxnTR/khWRl0EAZZ5KH6xGB/5132TzIZf96o6UI22/d7F/h/OG2I2A4rAAGqnlh1z6/lG4vV6qvNSQwt7yNhYhAsynXFV/95HZuwluLezuG05YmeuqWGjGJ8ATS9Tctsa3DHNwVE5xkVLTNXpRFWRy+RPiJPktPHXV0Ofe6xemLeEs8kzVPyj806SUudgAAAAAAFlcqOOvoKqmkRHRzRPjci9KKiovlPNUaxMSqWq5tXKa6d8TE9TSzcaZKO41VOnCKZ8aeJyp/Q1nVGkzD9AbNffLdNfPEStzyrAGzjkNVzqzk7WZr1VeYqqmFuvVzqr/AO4nOVceFp9rkDui24t7Q3Zjlimfh/wkGZdrNSqPxeX3K+Q+TueqfKhpUu35Wrvf5PrKayq8qX6BWPsqOiPktDyrgAD0OBswMQZa3tbvhq5PtdxWJ0Czxsa5dhyoqpo5FToQrWr1dirh250li8xyzB5tZ8Hxtvh0a66ce+OjRlPDXKWzwxhfKOzWbE9bXXGrkSOGCKmhVXKvT7DcicVVdyIX9GOxlyqKKKpmZ6EMxmyOy2AsV4nE4emmimNZmZq7WxPK+wYiw9g2ipsVXyTEF/cm3VVTmta1r19oxGonat4a8V3r0kzsUXKLcRdq1qcqZzicHi8ZXcwFnvVrdTHHu551meOXslTVFTh4C4YZHDO7AOdNsbUXbLvHdXXQJq91mq4oOeanVE9WaO8DtF76mFxVrFx9axc19XE2ps7mezN7g4fOcHFM+fE1af7o14umOL1QhDmRnfmbiygqsM4yvdZNAyZqz2+rpo4nNkYuqaojEVFRSL38ViLkTbu1ex0RlOzuR4K5TjsttREzHFVEzPFPtmH1cA8oDN9fuNhPC2Iat6ojKOhoYKeJyonBrU1Yq6J1qpUs4zFfVtW6vVELLM9mNnI77mGPsRy1VVTNXtne2UZXWS/4fwZb6bFN6kv1+VvOVdW5rWtR6+0YjURNlvBF6ePSTaxRXRbiLtWtTknOMTg8Vja7mAtd7tbqY490cs6zPHL2RcMM8DnBYsVX7A9XHgm+useIYfw1NK1rHMmVNdYnbSKiI7r6F0LXE0Xa7c95q0qSDIsTgMLjqZzOz3yzPFMceseuNJjdzczXfeeVHnXh661VsueKa2hr6WRYp6ealha+NycUVNghtePxlFU01VTEx0OqMPsdsxirVN+xh6aqao1iYmrSY62JMSYkuWL77W3m8VTq251snOz1DmoivdpproiInR0GOrrquVTXXOsym+EwlnA2KMNhqeDRTGkRzR7XzTwvADJvJvy6tWa2btpw3enVDbdVRzOkWmk2H6sjc5NF0XpQvsFZpxF+Lde6UP2szXEZLlFzG4XTh0zTprGsccxCai+p95X/APjXz5a30CT+KMN6+tz9+k7Peaj3Z7Wuy/UUdtvtyo4tVip6mWFm0uq7LXqia+JCG1xwapiHVGGuTesW7lW+YieuFieFy2uckv8AV0wP/Ju+1eT/AAH3WjocV7bfvDi/xR8oYQ9Uk/NzA/8AN1P1GGLznyKOmWxO5P8AecX+Gn5ygkRR0gAAAAAAAAAJS8iDP1+BsVswVeKhfuDd5dKV8jt1NVLw06mv4L39F6zPZXi+9V95rn6s/Npnui7MxmOF8Z4an9bbj63+qntp39GqfWLsL2/GmGrjYrpCk9vuELoJmL1KnFO+nFF60Ql1y3TdomirdLmbBYy9l+Jt4qxOldExMexqHzMwFXZYY6vOGbgi8/QTqxsmmiSxrvY9O85qoprq/ZqsXJt1cjufKMztZxgbWOs7q416J5Y9kvMFBmAAAAAdXewXwAbmcvfzBwz8GUv2TTZNn7KnohwPmv3/ABH46v7pekK7GAAAAAAAAADUtyo/1hMdfCLvqtNfY/7zX0u2djv3fwf4Pzli0sEyAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/wDYlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/4b8E/wByX5ImjQAAAAQY9Un/AChgP3qs8sRFc732/b+TonuTeRjOmj/JCsjLoIAyzyUP1iMD/wA677J5kMv+9UdKEbbfu9i/w/nDbEbAcVgADVZyx7e638ozFqPRUSZ8M7delHQs/wBSBZlGmKr/AO8jsvYK7F3Z3DacnCjqqlhcxjYABMj1N+/RQYlxlZpHoktTSwVUbVXijHOa7T/OhJclr0rroaF7q+Gqqw2FxMbqZqpn2xEx8pTzJW5uAAAAAAAfKxDdYLFYblcp1RkFHTSVEjlXREa1quXyHiuqKKZqnkXOFs1YnEW7FG+qYiPbOjS/WVK1lZPULxlkdIvjVV/qazmdZ1d/W6O90U0c0aKJ8VADZ3yHbe+h5O1iV6Ki1FRUzpr1LK5E+qTnK40wtPtcfd0S7FzaG9EfwxTH/rHakAZdrVaVdQqRzRsjdI9GKq6aIia69fgPk7nqnyoaW7zG+G81zJE2Xc89dy6oqbSmtKo0ql39hq4rtUdEfJzbqSGaNXyt21V6tRFXdw6j7TEaKd2qeFMarWaLmaiWNE0Rrtyd5d6eU8Vb1xZnWl0PKu9vlVk3ijOO9pbsOW907GKnritl7Wnp0Xpe/wDom9ehC6w+GuYmrg24R3Os/wABkNjv2Nr013Ux5VXRH57mx/IHk24eyKtW1AiXLEFQxEqrrK3Ry9bI09ozvcV6Sa4PA28LTxcdXO5O2m2txm0l3Sv6lqPJoj5zzz8uRUlzxpblyg7flzansqFp6SequczU1RkiNTYiRetNdV8SdY8KirExh6eadXmNnLlrZ+vOsRGmtVMURzxM8dX5R7ZZNxDUPo7Bc6iF2zLFTSvY7qcjFVFL6udKZmERwtEXL9uirdMxHxYa5LvKPpM78Mes698dNiy3sRKynTckzeCTMTqXpToXvKhjcBjYxVGlXlRv7U92y2TubO4nvlmJmxX5M80+bP5c8I98r2vZnZm/bsEYIsMV2vtt1ZW3GmjTnFev/duk4IxnSq8FXToMPmM+FX4s2adZjfP/AHmbQ2EtTs9lFeaZpemi1X5NMzxac8Rz1ckRyJA8mrku2vI+3pcq5Y7pi2pj2ZqzZ1ZTtXjHFrwTrdxXvJuMvgcDThY4VXHV/wB3NYbXbY39ornebWtFimeKOWfXV+Ucj5+c2eLaXO7L/Lm0VGs891gqLs+N3sGa6xwr31XRyp1InWeMTi9MRbw9PPGvYu8g2cmvJMbnWIp4ooqijp5avZuj2pGGZauRp5Nee8d9xzjPL671H/aduu1ZJbHyO3zU/PPVY077OhP2V7xhcDi+HcrsVzxxM6dGra+1uzc4bBYXOMNT9SuiiK/VVwY4+ifn0vQ8obkuWHPCiWth2LPiqJmzDcmM1bKicGTInsk6l4p9BWxmAoxUcKOKrn7WK2W2yxezlfeqvr2J3083rp5p9W6WubMrKzEuUt/dacSW59FMuroZUXainYi6bUbuCp9KdOhC7+HuYerg3I0dW5RnWCzzD+EYKvhRyxyxPNMcjyRbs4AZ35EX6x2Hfear7Fxlsr+9U+35Nbd0P93b/TT/AHQ2hrwJ049aW8W/nZfP56f7RxrO55dXS79wP3Sz+Gn5Q+SU182uckv9XTA/8m77V5P8B91o6HFe237w4v8AFHyhhL1SJjn4cwRstV3/ABdTwTX2jDF5z5FHTLYfcnmIxGL182n5ygnzMn/hv/yqRXSXR/Cp5zmZP/Df/lUaScKnnOZk/wDDf/lUaScKnndVRWroqKi9Snx9iddzgPoAAAAPdZG4Mkx/m5hWxsRysnro3zK32sTF23r/AJWqXeFtd9v0UetG9o8fGWZTiMVO+KZ06Z4o+MtwCJomiGxXDCFnqhmViVFutGPaKLWWnclvr1anFjlVYnr4F1b/AIkIznGH1iL8dEt+9y3OeBcu5Rdniq+tT0x5Ue2OP2SgwRV0cAAAADq72C+ADczl7+YOGfgyl+yabJs/ZU9EOB81+/4j8dX90oj8t/OXGuXOY9loMM4iq7PSTWtJpIadW6Ofzr02l1Rd+iIR/NMTes3aabdWkaN39zrIMszXLrt3G2IrqivSJnXdpCOv9qfNju6ufxs9Ewvh+K8+W1foZs/6JT8e0/tT5sd3Vz+Nnojw/FefJ9DNn/RKfj2p08jPEeJ8Z5QrfsVXapu9XWV8vMSVOmrYmaNRE0RN20jiVZZXcu2OHcnWZlzht/hMDgM38EwFqKKaaY1iOedZ+Wj6PK4zDuWW+TNxr7LWSUF5qKiCkpZ4dNtjnPRXKmv8LXFXMLtVnDzVROkrLYnLbGaZzbs4qjhW4iqZid06RxfGYQIm5T+btOjVkxvcmo7cio5i6L3+1IlONxUfxy6Wp2Q2eqnTwSn49rtScp7NWpmckuOborGsVVRHNTp7zT7TjsTO+uXi7sdkFOmmEp+Pa9dlZyg8x7lm5g63VWLq+e311zpoJ4FVuzI1ZERyL2vBUUubGMxFd6imqudJmGCzjZbJMPlWKvWsLTFVNFUxPHxTETpO9szJq5OaluVH+sJjr4Rd9Vpr7H/ea+l2zsd+7+D/AAfnLFpYJkAAAFWk/G4fdt8p9jep3PInoblbd+TqX3pvkQ2bTuh+ft37SrplcnpSAAAAAAAa8OX3+muk+CIfryELzj7xHQ6s7l/7Eq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/3/Dfgn+5L8kTRoAAAAIMeqT/lDAfvVZ5YiK53vt+38nRPcm8jGdNH+SFZGXQQBlnkofrEYH/nXfZPMhl/3qjpQjbb93sX+H84bYjYDisAAa9fVEMHvtmZNjxExi+t7nQcw9+m7nYnL/7Xt+Ih+c2+Ddpuc8fJ0/3LMfF7Lb2DmeO3Vr7Ko7YlE4j7dgB73IzM6bKDM6zYkajn00D1iq4m8ZIH7np4UTenfRC7wl+cNei519CM7R5PTn2WXcFPFVMa0zzVRxx2T6pba7HfKHEtnpLrbahlZQVcTZoJ411a9qpqiobCoqprpiqmeKXEOJw13CXqrF+ng10zpMTyTD6Z7UAAAAAAIr8unOinwdgKTBtBOjr3fGbMzWLvhpde2Verb02U720YLNcVFq13qnfV8m4e5xs/Xj8fGZXY/V2t3rq5OrfPsa7FXQhjql2ZFJImrInuTrRu49cGVKbtEOrGulcxsbVe966MYnFyrwQ+acej3VXTTRw5becn8HfeHldhWwVHOPqKOgibJFEqojXqm0/h/Eq8TY2Ho7zZpo5ocKZ9jvGWaYjFxuqqnTo3R8Htmdq1XwOeuz7KF6qvi38F+guWCdah6LsytXVksbm69e7VP6nydz1T5UNNt6Z69uNxjTdUwVEiJr0ptLp8aGuKo1mXeGHqmm3RMc0fJ85sq09tgk0VF57VUXqRV18h5jihWn61UzDtdWbNSx6cHt08af8AU81c6vYnjmFmU14zNyW89Zsk8wYpKuV64buStp7jCm9GJr2syJ1tVfGiqhk8Bi5wt3j8md6AbZbN07Q5fMW4/XUcdE/Onon56Jgcp7lWW7K7D/3Kw1WQ1+KrhDtwuicj2UcTk1SV/fVF1a3xru4yPH5hTYp4Nudap+DROx2xd7OcR4RjaZpsUTx68U1TH8Mernn2b0ZuQzWzV3KMjqqqZ89RPQ1cks0rtXPcqIqqqrxVVMHlUzOK1nmlt7ujW6bezs27caRFVEREckNiuKpGLhq79s38Tm6f4FJjc8iehyvg4nwm1+KPnDTphXFl3wRfKe82Ovlt1zp1Xm6iFdFRFTRUXrRUXgpri3crtVRXROku8MbgcPmVirDYqiKqJ3xL1eSucNzyhzJpMTwySVMb3qy4wudqtTC5dXovW72yL1ohcYXE1Ya7FyPb62F2gyGxnuW1YGqNJjyZ82Y3ezkn1Ng2dXKfw9lvlhSYgtdTDcrjeqfnLPTNXXnNU/5j06Gt6e+mhMMVj7dmzFymdZnc5f2f2PxmbZnVg79M0UWp0uTzackeueT1caB2Q97rsScpTCF1udS+ruFZemTTzyLq573KqqpE8JVNeLoqqnjmXSe0uHtYTZvE4exTwaKbcxERyRDbHqnWhsBxU1A48v8AcMLZ44lu9qqn0dxor9VTQTxrorHJO7T/AKdJrq7XVbxFVdM6TEz83c2W4WzjcksYfEU8Kiq3TEx6uDCe2WXLCwrinKquxJfKqK2Xe0QItxt6L2738GrCi+yR67k6lXResltjMrVyzNyudJjfHY5nzjYPMMHmtGCwtM127k/Vq5Ijl4XNMRv5+RATOHNm75y44rMQ3Z6sR683S0iO1ZTQovasb5VXpVVUiOJv14m5Nyp03kOSYfIMFTg8PG7jmeWqeWZ/Lmh4gtUiAM78iL9Y7DvvNV9i4y2V/eqfb8mtu6H+7t/pp/uhtDXgTpx60t4t/Oy+fz0/2jjWdzy6ul37gfuln8NPyh8kpr5tc5Jf6umB/wCTd9q8n+A+60dDivbb94cX+KPlDKtXRU9W1qTwRTInBJGI7T4zI6RO9C6LldvyJmOhS+4lv/d9L/5DfMeODTzKnhF7z565PuJb/wB30v8A5DfMODTzHhF7z565PuJb/wB30v8A5DfMODTzHhF7z565aweWdBFTcorEscMbImIym0YxqIifgGdCEGzSIjFVaer5OwNgKqqtncPVVOs/W/ulhExbYgAAAAJl+p25cLVXq/43qYtYqWP7nUblTjI7R0ip4G7Kf4lJLk1nWqq9PJxQ0H3VM24FmzldE8dU8OrojijrnWfYmne8V2zDlys1DXVDYKm71K0lI1fbyIxz9PiavjVOsk1Vym3NNNU7+KHPmHwV/FW7t21TrFuOFV6o1iPzWeZGCqXMXAt8w5VonM3GmfCjlT2D9NWO8TkRfEfL1qL1uq3PKucpzC5lWOs423vomJ6Y5Y9scTT3fbLV4bvVfaa+JYa2hnfTzRr7V7XKi+Q1xXTNFU01b4d24bEW8XZoxFqdaaoiY6J41ieFyAAAHV3sF8AG5nL38wcM/BlL9k02TZ+yp6IcD5r9/wAR+Or+6UFfVEtZs2rAkbVkVtoai7Ca6Lz0hFs4iZvU9DovuWV00ZVf1/mf4wikqK1zmuRWubxRegwExo3VTVFUawvKO3+uEjfIjnLK5GRQsTVz3KuiInTxKkUxuhZ3b0xrOukQ225N4JiwBlnhzDrEkpqmiomJKi66OkXtpNy7l7ZymwcPb7zZpt80OH89x/jTM8Ri43VVTp0RxR8Ih4/lRZP3HOrLplFbKxKW6WqpSsjp3r+DqHNarVY5ejtXLovWqalDHYacTa4NM8ccbO7H59ZyDHzexFGtFccGZ5aY1idY5/XDWzf7TVWS9VVlu1NLRVkbljfDK3Zex7eKKnxKQiqmqiqaao0mHW2HxFvFW6b9iqKqKo1iY3TD49LG+n9fI/2TI+PXx3nmI0XddfD0l7vJF3PZq5fyr7KO90aOX/8Ata1S6wvHft9MI7tD9XKMX/Tr+UtupsBxO1LcqP8AWEx18Iu+q019j/vNfS7Z2O/d/B/g/OWLSwTIAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv8ATXSfBEP15CF5x94jodWdy/8AYlX9Sr5Uo1mDbfAJ+epwfmDiz4TZ9khLsl+zr6XM3dX+/wCG/BP9yX5ImjQAAAAQY9Un/KGA/eqzyxEVzvfb9v5Oie5N5GM6aP8AJCsjLoIAyzyUP1iMD/zrvsnmQy/71R0oRtt+72L/AA/nDbEbAcVgADCnKyyndm1lFcKWji5282xfX9CiJ2z3NRdpie6aqp4dDGZhh/CLExG+OOE92JzuMkzeiu5Oluv6tXRO6fZPw1asFarVVrkVrkXRUVN6KQJ2bE68cOA+gGeeTfyq7vkjO21XCOS8YTlftPpEd+EplXi+JV+lq7l7ymXwWYV4WeDVx0/Loaz2s2Kw+0NPhFmeBfjl5KvVV+U749bYTl1nBhDNShbV4bvVPXKqavpdrYni7zo17ZPITCzibWIjW3Vq5ezXIsxyW5NvG2pp9e+meidz3JcsCAAPn3C601sgfJUzNibGmr3PciI1OtVXcnjEzERrL1Rbru1RRbiZmeSOOUa87OXBhvAlPPbsKtTEN+cio2ZqotHCqdLnoq7ap1N3d9DB4rNLdqODa+tPwbZ2d7nmOzOum7mETatc0+VPRHJ0z1Nf2K8V3XHGIa293utkr7nWP5yWaRePUiJ0IibkROCEPuXKrtU11zrMuosFgsPl2HowuFp4NFPFEf8AeXnlZ26nbPM58iIrI010XgqimOV6vVcfBcSXOeV20x/NM6EREVdO/qJqfaLMTGssyckPKeTMnNq21NRCr7JZJWV1ZIqdqrkXSOP/ABO6OpqmRy6x3+/Ezup45QDbrOaMmyiq3RP6y59Wn2759kfGYbRmLs1kqLxc1Fb30Tj/AL75O3Hxwrt3TH23x7v6gWk+60yvT/u1e9vgRy/0Pk7nqnyoabcRudTYjqp4/bSP/wAWjl1T4tDW9XFVMu88NTw7NMeqPks7hVxVUcTYl13q5yaaabv9TzVPEuLVM8LjhSlqnzwQxuYic3p22uqru0PM1awqUWqqatVI8LoAy7yXsrrPnLmtHh/EL6taF1FNOrqWXYk2mI3Z7ZUXdvMjgLFGJvcC5u0QXbHOMTkGVTi8HEcLhRHHGsceuvMmTByBstKJ/OQVWIYJNNNuK4I1dPCjCSxlOHjdM9bQtfdLzu5GldNuY9dP/K6XkM4Bciot3xSqLuVFuy7/AP0n3xVY56utS/SLm0f+K17n/Kx/u+8r/wBu/fLm+gefFGF9fWuf0nZ7zW/dntP7vvK/9u/fLm+gPFGF9fWfpOz3mt+7Pa7ScgXLSVkTZKnEEjYm7EbXXBFRjdVXRO03Jqqr4z74ow88s9anHdMzumZmKbca7/q/8kPIDyzppWSw1GIIpWLq2RlwRrmr1oqM3CMow8cca9b7V3TM8riaaqbcx+H/AJfR/sSYH/fuLfnh3onrxXa86rrWv6Qs0/k2v/8AP/l82XkA5YyyOkkmv73OVXOc6vaqqvSqrsHjxRhvX1ruO6bnlMaRFvT8M9qBObeF6LBGZ+KLBbllWgttdLTQLM7afsNXRNpdE1UimJtxavVUU7ol0rkWMu5jlmHxl7ThV0xM6btZ5nki1Z0AAZ35EX6x2Hfear7Fxlsr+9U+35Nbd0P93b/TT/dDaGvAnTj1pbxb+dl8/np/tHGs7nl1dLv3A/dLP4aflD5JTXza5yS/1dMD/wAm77V5P8B91o6HFe237w4v8UfKHjeWTndinJSzYZqcMT00MtwqJo51qIElRUa1qpprw4qW+ZYq5hqaZt8rO7A7O4DaC9iKMdEzFERMaTpvmUWv7eGbX7wtnzewwHjbFc8dTcv6Ntn/ADKvek/t4ZtfvC2fN7B42xXPHUfo22f8yr3pP7eGbX7wtnzeweNsVzx1H6Ntn/Mq96WG8wMe3fM3FdXiK+yRS3SrRiSvhjSNq7LUamjU4bkQxt69Vfrm5XvlPcryzD5PhKcFhImKKddNZ1njnXe88UWVAAAC4t1uqbvcKWho4XVFXUythhiYmqve5dERPGp6ppmqYpjfKjdu0WLdV25OlNMTMzzRDbpknltBlNlnY8Nw7LpqaFHVUjf+8nd20jvjXRO8iGw8LYpw9mm3H/ZcN7Q5tXneZ3sbVuqni9VMcUR1fFDnlyZv1TM58P26z1KsfhVGVW01dyVTlR/0NRieNSN5riZ7/TTRPk/NvrudZFROTXr2Jp4sRrT/ALY1j4zqm3lvjijzHwNZcSUKotPcKZsytRddh/B7F76ORU8RKLF2L1um5Tyuec2y65lOOu4K7vomY6Y5J9scaD3L9ykXDuNaPG9DDpb7zpDVqxNzKpqblX3bU+NqkWzfD8C5F6ndO/pdE9zLPPCsFVld2fr2uOn10z2T8JhE8j7doA13oiIqqvBETVVPumrzVVFPHLvJBNEzbfE5rNdNV08594MqUXaZnRSd7BfAeVduTwMqrgHC0TVVqyW2lRVTiic01V83jNk2fs6eiHA+a/f8R+Or+6UHPVDKx8GatihgRImMtLU1ROnnZOBF83nS9T0OiO5bb4eV35n+Z/jCKErnyq9z3q9zk01VETyGA11bqijgRMQk1yOsnVzCx/b8SV0Crh+wyNm2np2stQqaxNTr0Xevi6zOZbhu/Xe+VeTT82oNvc/pyvATg7M/rb0adFPLPt3R7eZsZq1RvMu4OSRNP6/RqTJyy8xgnH1hzDbcaiw3GKvhpZlpahGLvZI1zmqip1KiIqLwVN6FG1et3omaJ10ZLMMrxeWV028XbmmaoiqPXE/94+aWIuU7yaaLOjDsd0tbY6PGFD2kNT7FKlEXTm5F8KJo7o8Bj8dgYxNPCp4qo+KbbIbW3MhvxYxEzVh6p4482eePzjl6Wuq+09VZJ6613SllobtTuWnnppWK17XJx1QhlUTRrTVGkw6qsXLeJopvWZiqmqNYmN0w9HkVM/svYMpkaipJeaXRyr7HWRqFbCT+vtx64YzaW3M5RjKo/l1/KW35NURNV1XpU2G4gal+VH+sJjr4Rd9Vpr7H/ea+l2zsd+7+D/B+csWlgmQAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/ALEq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/wB/w34J/uS/JE0aAAAACDHqk/5QwH71WeWIiud77ft/J0T3JvIxnTR/khWRl0EAZZ5KH6xGB/5132TzIZf96o6UI22/d7F/h/OG2I2A4rAAADXvy0eTPPhO71WPMNUivsVY9ZLjTQt/E5VXfIiJ7Ry/Eq9SkQzPAzbqm9bjinf6nTvc/wBrqcbZpynG1fraeKiZ/ijm6Y+MImEebuAAFWjrp6CqZPSTy01SxdWyQPVsjV7ypvQ9RrTOsKF2m1cpmi7ETE8k8cMoYf5Uea+FYo2U2L7k+FqaNZXtSoaif/2Iq/SX9ONxVviiufmh2J2R2extU8PDUxP+nWn5TD2VBy4M259uJ16oNWoio5bbFqpcxmmJnljqR+93O8girit1R/vl8m58tbN65w80mI4qJy9rrS0UTF14cVaqlOrM8VVPlaeyF7Z2A2ds08PvE1dNVU/mx/jPMrFOKFbHeMQXC6Pdq93rqoc9qd9G66Iq+AtLt+7c8uqZSfL8owGB4sJZpo6IjXr3vHyPklc1XyOfpw1LWZ1Z+m3FM6w4PiqvbVIjZZIne3TVO/pxKlPMsr8cer6GFMDXvGWJKKwWWglr6+qejImxN1TTpc5ehqJvVV4Hu3aqu1xTRGsytMXmeGy3C1YnFVcGmmOOfyjnmeSG0jIjJuhyYwNTYehaySpqG8/W1fB0827aVepE1REToRO+pPMJhqcLbiiN/K412lz+9tFj6sVc4qY4qY5qe2d8slvR2yjJ4nS7PsZI+PnRfAXqLOGMcrVZFGsDXeykeurl8H+oFWaNraOSNE0YjFTTvaHydz1T5UNKt1aiXat4qqTSJqq6r7JTWdU/Wl+gGHppptUaRyR8lqeFyAAGugGQci83pcksdsxNBbo7rI2mkpvW8kqxp2+m/VEXhoXmExM4W53yI1RfaPI6docDOBqucCNYnXTXd1JG/wB5Pcu4ek+cHegZjx1PmfFqr9E9j0ufdjtP7ye5dw9J84O9AeOp8z4n6J7Hpc+7Haf3k9y7h6T5wd6A8dT5nxP0T2PS592O0/vJ7l3D0nzg70B46nzPifonselz7sdp/eT3LuHpPnB3oDx1PmfE/RPY9Ln3Y7T+8nuXcPSfODvQHjqfM+J+iex6XPux2n95Pcu4ek+cHegPHU+Z8T9E9j0ufdjtP7ye5dw9J84O9AeOp8z4n6J7Hpc+7HaijmDjB2P8c33EklO2jfdKt9U6na/aSNXLroi7tTA3rnfrlVzTTVunK8DGWYGzgoq4UW6Yp159HnyiygAAzvyIv1jsO+81X2LjLZX96p9vya27of7u3+mn+6G0NeBOnHrS3i387L5/PT/aONZ3PLq6XfuB+6Wfw0/KHySmvm1zkl/q6YH/AJN32ryf4D7rR0OK9tv3hxf4o+UMIeqSfm5gf+bqfqMMXnPkUdMtidyf7zi/w0/OUEiKOkAAAAAAAACXfILyPdf8QyZgXan/AOz7Y5Yra2RN0tRp20id5iLu7694kWU4Xh1d/qjijd0tGd0raKMNh4yjD1fXr46/VTyR/u+XSm1j/GlFl9gu74iuLmpS26ndMqKum25E7Vqd9ztETwkovXYs25uVcjnnLMvu5pjLWCs+VXMR0c8+yONp+xRiOsxfiS53u4SLJW3CofUyuX9py66eBOHiNc3K5uVzXVvl3Zg8JbwOGt4WzGlNEREexL71PvOKKjmuWX9zqUYyVVrrYsjvbafhY08KaORO84keT4nTWxV0w0T3Ucj4VNvOLMbvq1/4z+XUlZm5gS2ZsZfXfDVcjmsq415mo5py8zMm9j03dC6eLUkOIsU4i1NurlaTyPNruSZhax1r+GeOOeJ3x7Yalb/hquwxiassVzjWlraOZ0E7V36Obu+JeKL1Ka8rt1W6poq3w7ew+NtYzDUYvDzrRXETE9L508PreofHqrkTRUVelNP+p4qjSV3aqmqONd0+lFQeuEajpZOCr0a8POVI4oWlUzcrWks807Va+VyovFNyIU+FK6izTCk72C+A8q7clgZebwHhSVfYst1Ltd5FhamvkNk2fs6eiHA+a/f8R+Or+6UHPVEaSRM2bHIxivY60tXtd6ovOvIvnEa3aeh0V3LLkU5Xfif5n+MMG5R5NYhzixTT2m1U6w06Oa6rrZW/g6aJXaK53f6k4qpi8Pha8TVwKf8A6bEz3aLCZDhpxN+eP+Gnlqnmj855G0vLvLq15VYPosN2Wn2rbTs0VXac5I9fZPcq8VVd5PbFmjD24t0bocaZrmmIznGV43EzrVV1RHJEeqGJ+VznlT5SYDlt1u20xNeY3QUqOd20ES7pJd6qqaIuiadK94x2Y4uMPa4NM/Wn/uqabC7OVZ5j4vXaf1NqYmfXPJT+c+rpQSyWzpvmS2NI75bpHVEErkbX0TnaMqotd6L1OTii9C+MieGxVeGucOndyxzuls+2dwmf4KcLfjSqOOmrlpns545W0vLzGdhzPwtRYkscramjq27Wjl7aJ/tmOb7VyLuVCe2b1F+iLlE8UuNM1yvE5Pi68HiqdKqeqY5Jj1Swryt+TBDmvaJcSYep2x4voo9XRsTT1/GiewX+NPar4urTFZjgIxFPfLflR8WxNh9sKskvRgsZVrh6p9yZ5ejnj2oNZIQSU2eGCYZo3RSx3ylY+N6aOa5JWoqKnQpFsJGmIoieeHRm0VVNeSYuqmdYm3V/bLb8bEcNNS3Kj/WEx18Iu+q019j/ALzX0u2djv3fwf4Pzli0sEyAAACrSfjcPu2+U+xvU7nkT0Nytu/J1L703yIbNp3Q/P279pV0yuT0pAAAAAAANeHL7/TXSfBEP15CF5x94jodWdy/9iVf1KvlSjWYNt8An56nB+YOLPhNn2SEuyX7Ovpczd1f7/hvwT/cl+SJo0AAAAEGPVJ/yhgP3qs8sRFc732/b+TonuTeRjOmj/JCsjLoIAyzyUP1iMD/AM677J5kMv8AvVHShG237vYv8P5w2xGwHFYAAAWFfFSVdM+krEilhnasb4ZURWvaqaKiovFFExExpL7RXVbqiuidJjjiY5EHOUTyHKu31FViHLmBaqicqyTWLX8JF0qsKr7Jv8PFOjUimNyqaZm5h93N2Oj9le6Nbu004POZ0q3Rc5J/FzT693PoiFLap6WaZlax9A+F6skjmYrJGqnFNF3opHuBNM6VN2xiabkRVZmJid0xxwtJObSVWxPdIzRF1cmi6/Eh5mI5Fe3VVOsVL+mlWK0vdEjWyR6ou7qXzFSJ4tVnVGlWjtQzurYJ2Tqj2Ju2tNPD8Qidd77XTFM6RKztkvN1UKr7dNlfH/qh5p4p0V7sa0RVLitYsNXKiJv2kkb5fLqfJ4p1Lf1rc0ryshWuiing7ZdPY68U86HuY1hRt18CeNaNoKiRF7Tm0ROL/MeIp51eq9Gn1VOm5mR6LM9WRq3VNOlRERyvtyqrSJpe+ymyLxdnNdUp8PW6RaNkipLc6lFjp4W68Vf0r/Cmql1h8JdxNWluOLn5EbzraLLsiw/Cx9f1uSmOOqfZ+c8TY5kZyeLNknZFipZ/X96qGolXdJYmpI/+Fn7Le909OpNMJg6MLTxcc8suUto9qMXtDe1ufVtU+TRG6PXPPPr6mWoqdsbtrVXv4bb11X/Qv0OVQAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAJDchvC1oxbnDVUV6tdJdqNLVNIkFZC2ViOR8aIuipprvX4zMZVbouX5iuNY0as7ouMxOByem7hbk0VcOI1iZidNJ5k+ewXl53D4f+b4vRJb4Lh/Mjqc1fSTOfS7nvT2nYLy87h8P/N8XojwXD+ZHUfSTOfS7nvT2nYLy87h8P/N8XojwXD+ZHUfSTOfS7nvT2nYLy87h8P8AzfF6I8Fw/mR1H0kzn0u5709p2C8vO4fD/wA3xeiPBcP5kdR9JM59Lue9PadgvLzuHw/83xeiPBcP5kdR9JM59Lue9PadgvLzuHw/83xeiPBcP5kdR9JM59Lue9PadgvLzuHw/wDN8XojwXD+ZHUfSTOfS7nvT2nYLy87h8P/ADfF6I8Fw/mR1H0kzn0u5709p2C8vO4fD/zfF6I8Fw/mR1H0kzn0u5709rWZylrRRWDPXGFvt1LDQ0MFUjYqenYjI405tq6I1NycSEY6mmjE100xpGrrnZG/dxORYW9eqmqqaeOZnWZ455WMyxS8AzvyIv1jsO+81X2LjLZX96p9vya27of7u3+mn+6G0NeBOnHrS3i387L5/PT/AGjjWdzy6ul37gfuln8NPyh8kpr5tc5Jf6umB/5N32ryf4D7rR0OK9tv3hxf4o+UMIeqSfm5gf8Am6n6jDF5z5FHTLYncn+84v8ADT85QSIo6QAAAAAAAZAyRyguWdGN6Wy0mtPQMVJa+udubTw67190vBE6V8ZeYTDVYq5FFO7lRbaPP7Gz2BqxV3jqnipp86eyOX1NruEcM2zBuGrdZLNA2ntlFC2KCNvQ1OletVXVVXpVVNg27dNqiKKI4ocUY3GX8wxNeKxFWtdc6zP/AH4IV8vPOVcQXeny7s9QnragclVdpWru53TtIl9yi7S99U6iMZtieHMWKeTe3/3N8inC2qs4v0/Wq4qOjln27o9XShzUNgj2OandK7XR2qbvEuhHJiORvaiuuauPc+9gDElZg7E9HeLa/mbhQzMqYZNN+rV0VF7ypuXvKVbNyq1VFdO+FhmWDs46zXhr0a0VxMT7W1/KrMajzRwbZ8RUEzXMrWLz1OnGCVu57F8DkVN/WimwbF6m/bi5TyuJc3yu7k+NuYK9vpninnjkn2wjXy4sgXXq3y5h4fptuttujblBGm+WFNFbLp0qxdUX+HwGDzTCcL9fRHHG/tbb7nW00YeqcmxdX1Kp1omeSrlp9vJ6+lCC6tRXwzN4Pbs6/Sn9SLVOi7M6VaO1O1K22rAiokke5Ne9wPUccPE60VrZKGpc7Z5lUXrVU0PHBlcd/p0UJI+akfHI7c1URzmp0DSIkiuqqjWN7cjluu1gewNarpIPuZS6K/r5pNU76cDY1n7Onohwfmn3+/8Ajq/ulGHlKZSz5vcpHDOG6e809ohWyLPI6o7aRWNmftJC1fZO06OrVegwmNseE4um3rpxfm3BsjnNOQ7N4jGzbmue+aREbtZpjThTyR/9JI5a5U2DKzDsFostKscLFR8ksm98z+l716V8nQZuzZow9HAtw1Nm2b4vOsROJxdes8kckRzRHItM5c5bDkrhGa8XiZHzORWUlCxyc7VSabmtTq614IhSxOJowtHDr9kc67yDIMXtDi4w2Gji/iq5KY55/KOVquzKzFvGamMK7EV7n52sqXdrG1e0hjT2MbE6Gonn6SBX71eIuTcr3y7OyjKsNkuDowWFjSmnrmeWZ9cvMFBmWa+S7yhKrI/GLY6yR82Fbi9rK+nTfzS8EmYn7TenrTxGUwGMnC3OPyZ39rXu2Oy9vaLB8K3Gl+jyZ5/9M+qeTmltCoK+mu1DBW0c7KmlnjbLFNGurXsVNUVF6lTQnkTFUaxucc3bVdmuq1cjSqJ0mJ5JhD/lDZc4Xw5ykstsQ2ytp6W+3W90y11pYnbSIkjdKjRPY68F14rvTpI3jLNujF2rlM8czGsfm3rstmuPxezePwd+iZtW7dXBr5uKfq+vnjm3cyZxJGh2pblR/rCY6+EXfVaa+x/3mvpds7Hfu/g/wfnLFpYJkAAAFWk/G4fdt8p9jep3PInoblbd+TqX3pvkQ2bTuh+ft37SrplcnpSAAAAAAAa8OX3+muk+CIfryELzj7xHQ6s7l/7Eq/qVfKlGswbb4BPz1OD8wcWfCbPskJdkv2dfS5m7q/3/AA34J/uS/JE0aAAAACPHKn5Nl0z/AKjDstuvFJaktbJ2vSqje7b21Zpps9WyvxmHx+Bqxk0zTOmjZuxm1tjZem/F61NffODumI0015+lgj+7fxT3Y2j5PKYnxNc8+Gy/0r4H0Wvrg/u38U92No+TyjxNc8+D9K+B9Fr64exyc5Dl/wAsszrBiirxNba2nts6zPhhhka96KxzdEVd3ti6w2VV2L1NyaonRH8/7o2DzfLL2Bt4eqma401mY0jjiUzSSNDur3tjYrnLo1E1VQLd882ztaRwt6OdXevmA7PqVWjbMxE1ciLv4Jr5gKTGxTRzxMfzkqp20nWvR8WgFzBJz0LH8NpqKBi7MnIXBWbVrp1xDaIlqGtTWup05upRdNNEem9d68F1Qs72Es4jy6ePn5UlynaTM8kq1wd6Yp82eOnqn8tEZMeep31EMU1Vg7ErZWx6qtHeGK1yd7baiov+VDB3cm5bVXW3DlndUo4qcxsTrz0Tr8J7WI7jySc1cLVE0U+F5LhE9NpH26Vk6O6F3Iu11dBjasuxVvfRr0J5Z23yDGTrTiYpn/VEx+WnxY/vGXGN7ftw1mErzRxtVWq1bfKiLov7WyWddi9TvonqSTD5rld+OFRiaJ/3U9r4UmGb1CqKtor2Oau0iOpZE4eIpRbr5pZarF4aumYi7T1x2r+bCV9us8S0dhutQqtVF2KGXxe18J7m1XO6mepZ0Y/C2p1uXaY/3R2vR2Hk/wCZ95f/ANnYMvaI7i6WldEz/wD6aIVqMJiat1EsZitpMisTrdxdHsqiflqynhbkG5nYlVi3me32CnXilTPzr9PcxaovjVC/oynE1+VpCG43uj5FhYmMPwrs+qNI650+SQeW/IHwNhOSGqxBPU4srWaLzc/4GmRfe2rqvjcqd4y9nKbNvjufWn4NY5t3S81xsTbwcRZp9XHV1zu9kJI2q1UdjoIaK3UkNFSQpsx09PGjGMTqRE3IZqmmKY0pjSGp7167iLk3b1U1VTvmZ1l9A9KQAAAUqj8Xl9yvkPk7nqnyoaVLt+Vq73+T6ymsqvKl+gVj7Kjoj5LQ8q4AA9dlhmpf8oMRvveG5oIa98DqZXVEKSt2HKiruXp7VC5sYivDV8O3vYLOMlwme4eMLjYmaYnXinTjj/7ZY/t4ZtfvC2fNzC/8bYrnjqQr9G2z/mVe9L1OWvKiz4zaxNHY8Oy2yqrHNWR730DGxQsTi57uhOjwqXFjH43EV8C3pr0MLm+x2yeSYacVjYqind5U6zPNEcr5OKOWLndgy+1VmvbqG33GlfsSwTW5iKnfTrRehU3KU7mZYy1VNFfFMepeYPYPZfMLFOJwvCqoq3TFc/8AfY+Z/bwza/eFs+bmFPxtiueOpffo22f8yr3pSn5G+dmJ86MPYkrMUT0081DVxRQrTwJEiNcxVXVE470M/luKuYqmqbnI0xt7s9gdn8RYt4GJiK6ZmdZ13SyByiscXTLfJ7EOI7JJFFc6JkboXzRpI1FdKxq6tXjuVS9xl2qxYquUb4RjZXLsPm2cWMHiomaKtddJ03RM70GP7eGbX7wtnzcwifjbFc8dTo79G2z/AJlXvS9xllyhOUNm7FdnYYba61ttiSWVXUUbEcqruY1VXRXrvXTvF3YxmPxOve9J09SN5xsvsdkU2ox3Cp75OkfWmfbPq9byV45bGdFguM9vuclHb66B2xLT1Nrax7F76KW9WaYuieDVxT0M7Y7n2zOKtxesRNVM7piuZiVp/bwza/eFs+bmHjxtiueOpX/Rts/5lXvSwpjTGFyx9im44hvD45LlXyc7O6JiMartETc1OG5EMZduVXq5uV75bBy/AWMswtGDw0aUURpGvH8XxCkyIBnfkRfrHYd95qvsXGWyv71T7fk1t3Q/3dv9NP8AdDaGvAnTj1pbxb+dl8/np/tHGs7nl1dLv3A/dLP4aflD5JTXza5yS/1dMD/ybvtXk/wH3WjocV7bfvDi/wAUfKGEPVJPzcwP/N1P1GGLznyKOmWxO5P95xf4afnKCRFHSAAAAAK0FJLUNV7dlkae3evHwHuKdVtXeiJ0h6TLfLK/Zq4ugw9YKZKqqe78JOifgoY+mR69CJ9PBCtZw9d+uKKIYrM86wmT4SrGYurSmN0cszzR62z3IzKGxZLYSpLPb9J62bSSqq3N0fNLpvcvVpwROhPGTrC4ajC2+BT7Z53HG0Gf4naHGTir/FEcVNPJTHN0888r4/KNz4o8jcCVMkT2S4hq1fDbaVd67Spqsjk/Zbr410TpKeOxcYW3r/FO5k9kdm7m0WOiiqNLNHHXPq5o9c/LjaxX1dVfJLlV1dQ+euq5XSzTyLq57naKqqvWqqpBdZq1md7r7vVFiItWo0ppjSIjkiFtDS0lTtRxSSc4iao5eC9/ThoNIniVOHXHHKhRvWGsj2ty7Sxu8nl0PMcU6Ktz69EVJJckjPxcr8cLhm6ztpsNXp7dqZf/AMeoXc2TqRrtzXeJegzWXYzvFzvdc/Vn4S1PtzszOc4OcZhqdb1qPep5Y6Y3x7YbGXUsM1I6FzWywParXNcm0jkVN+vXqTPe5YiaqZiY4phre5WnJ1lyqrn3qy00kmF6mdNlGMVUopNrcxy/sqnsV8XhhmY4KbE98oj6s/B1TsRtZGc26cJiatL9Ee/Ecsevn60cWucxyOY5WOTpapg4nRt6qiK96o6rqHt0dO7TvIieQ9cKVKLNKgqIjHadR4V4iIjSG5nL38wcM/BlL9k02TZ+yp6IcEZr9/xH46v7pQi5fN7r8N534TutsqpKK4UdrZLBPEujmOSaRUVCMZvXVRiKKqZ0mI/N0L3MsPaxeSYmxfp4VFVcxMTyxwYZBovVAbBS5VU1wqaJ9TjbRYJLVG1WxLIif85X8EjXjom/XVO+XsZvRFmKpj6/Mi9zuYYurNarNFemG3xVy6ebpzxz7uX1IW5j5mYgzWxNPe8RVrqqrf2scabooGdDI2+1RPp6SMX79zEV8O5PG6BynKMHkmGjC4OjSmN/PM88zyy8sW7NAACTGRPLIrspcs7rhyupZLvU0zdbG569pErl7Zki8dhvsk076bujOYTMpw9mbdUa8zUO0mwVrO8zt421VwKavtOedN0x653T1sb5bYsu2OuUVhK93ytkr7nV32lfLNIv/wC1uiInQicEROBZWLlV3FUV1zrMzCWZtgcPluzuJwuFo4NFNurSPZPx55bazYLiZqW5Uf6wmOvhF31Wmvsf95r6XbOx37v4P8H5yxaWCZAAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f+xKv6lXypRrMG2+AT89Tg/MHFnwmz7JCXZL9nX0uZu6v9/wAN+Cf7kvyRNGgAAAAAWy1Tno5Y4u1RVRXyORqbl0XrUC2krmquytSiu/Yp2bS/HvA7o1EjjqNiRjmvTXnVVV0Xd/XXxAX4FCq7Z0DV4LImviRV8qIBbPavrmR0kkUe0ujFemqqmicOreBcRcXU8rWcNU2U0RydO4BIiRVEDkTRqoseifGnkX4wOaXtFlj/AGHrp4F3/wBfoAoyI2Fr4pHKyJXbTJOhq666L4wOu0krJY45Enkl3OexO1ammnkAuZoXOWN0bka5i8XJqmmn/QDmCFYUdq7bVztpV00A7LGi8URfEH3V2RETgmgfHIAAAAAAAAClUfi8vuV8h8nc9U+VDSpdvytXe/yfWU1lV5Uv0CsfZUdEfJaHlXAAAD32T2SeJc6sQNt9ipVbTMcnrq4zIqQUzety9K9TU3qXmGwtzFVcGiPajGfbQ4HZ7D9+xVX1p8mmN9XR6ued0NmuTGSeH8kcLstNnh52ok0fWV8qJztS/Tiq9CJ0NTcn0k3w2FowtHBo9s87kHaDaHGbRYqcRiZ0iPJpjdTHbzzyo/8AqgV3wMzDtDQVtKyqxy5UdRy07kbJTw69ssq9LF3ojV6d6aaKYnOKrPBimY+vyNn9zCxms4iu7bq0wv8AFE7pq5OD645Z5uKUDCJOlk8/U3fzQxl/PwfZqSzJfIudMOau6x98wv4avmy9yx/1ccYe9Q/bxmQzH7rX/wB5UH2D/eLC9M/2y1XEDdmtofJFnwLT5UW+24MukNfNE1JblqmxULUORNpz2LvROhOjRE0UneXTZizEWZ15+fVxxt1Rm1Wa138ytzTE8VHLTwY3aTu9c8ur1WceQWE867SsF7okiuEbVSnulOiNqIV6N/tm/wAK7vAV8Rg7WJp0rjj5+Vhsh2mzDZ67w8LXrRO+mfJnsn1w1xZ48nvE2Rt35u5xevbPO5UpbtTtXmpf4XfsP/hXxakMxWDuYWr63HHO6u2d2pwO0dnhWJ4NyPKonfHRzx6+ti8sEyX9isFyxRdYLZaKGe5XGdVSKlpmK+R+iKq6InHciqe6KKrlXBojWVricVYwdqb+IriiiN8zOkQ9l/Z7zO7gr/8AIX+YufA8R/LnqYH6UZH6Zb96GZOSLlBjfCOe9jud7wpd7VbooqhJKqqpHMjaqxORNVVOldxksuw163iaaq6JiONAduc9yvHZFesYbE0V1zNOkRVEz5UNiq8CZOWmpjE2QWZFViW7zw4Gv0sMlZM9j20L1RzVeqoqbuo19cweImuZiid/M7Xwe02SUYa1TVjLcTFMfxRzQ+b/AGe8zu4K/wDyF/mPHgeI/lz1Lz6UZH6Zb96GyXkz2W4YbyKwjbLrRzW+4U1K5s1LUMVkka849dFReG5UJtgaaqMPRTVGkuStrsRZxee4m/h64qoqq4pjjieKGIuXtgPEePLDhGHDtjrr3LT1U75mUMDpVjRWNRFXThroY3N7Vy7TRFumZ3pz3NMzwWW38TVjL1NuKop04U6a8cobN5PmZz5FY3Ad+2kRFXao3Jonxd4jcYLEfy56m+atqsjp/wD27fvQ7LyfsxIl/DYRvLF/ZjonuXyf0PXgV/8Alz1KM7V5NO7F2/ehcQcnnMGoZI1MBYi9juklonp8Saf0PXgd/wDlz1KM7T5PO/GW/eh8usyOzDt1umr6vBV7pqSCN0s08tE9rI2NTVXKum5EQpThL9MTM0Tp0MnZ2lya/VTbt4uiapnSIiqNZmeR4eRdGOVOKIpawkVXFTMsr5V5B4lzqu0FJaY0o7LT6JV3WoaqQw8NyftO6mp49EMlhsHcxVWlO7nQPPNpcFs7a75fnWufJojfPZHrlsZydybw9kjh2K12OBkqTqi1Fye1OeqJP2nr1dSJuQmWGw9vDUcGjr53Kue5/jNoMTN/F1cUeTTG6mPV+c75XOceathyawbU328SozZdrTUkaoktVNx2GJ5V4Im8+4jEUYajh1//AGp5JkmLz7FRhcLHTPJTHPP5RytX+cOY13zUxrPiK8S7UtQmxFC1fwcEbfYsYnUmvjXVSC4m9XiK5uVuxcgyrD5LhYweGjijfPLM8sz/AN4nj6GqSkmVXa829NHadHUpbUzpxM7eomfrQrQpS0UqytqElREVGRs3qh74o41vrVXEUrJyuernLue5yu8C66lPXj1XkUfU4LvPPJUyI+RW6omiI1NBM6lu3wOPVPnkXcpuPFNBTYDxRVol6pWbNtrJnfjcSJujVV9u1OHWnfTfLMsx3fIixcnjjd63NXdA2QnBXKs2wFP6ury4j+Gefonl5p9SVl8slBiO01VsudLHXW+qYsU1PK3aZI1eKKhn66aa6ZpqjWJaWw+Iu4S7TiLFU010zrExviWuLlMckm6ZR1dRfcPxzXXCD3K7VE2paHX2snW3qf8AH34Zjsuqw88O3x0/J1fsjtvYzyinC4yYoxEdVfrj188dSOhhW1XV3sF8AG5nL38wcM/BlL9k02TZ+yp6IcD5r9/xH46v7pQW9UW/Szh/4Hb9tIRXOPtqeh0d3Kv2Vf8A6n+MIomAbqAAABroA1QD3uQcMk+duBWRMWR/3ZpnbLU1XRJEVV+JFUu8HGuIt9MIztNVFOSYyap/8dXybfjYrhpqW5Uf6wmOvhF31Wmvsf8Aea+l2zsd+7+D/B+csWlgmQAAAVaT8bh923yn2N6nc8iehuVt35Opfem+RDZtO6H5+3ftKumVyelIAAAAAABrw5ff6a6T4Ih+vIQvOPvEdDqzuX/sSr+pV8qUazBtvgE/PU4PzBxZ8Js+yQl2S/Z19Lmbur/f8N+Cf7kvyRNGuNpNrTVNeOgFvPVbEzIY9l0jteK8N2oFFLg9WJtNZEu9u093FUXRdETeBw2ma2BkjNt8iJsuftKxXd9dd/QB2t8qc7NHtN112kRr1cnBEXeBQqadq1r0bTLUKrUdortGtVVXVQOyJMnac7DTf/rgZtOARu24pIo0lnWRm1tyu0TTvdQF9TSrNTxvVNFcm/UDipY58WrE1e1Uc1OtU6P6AUJGrUo6SFGvbIzm3I5dNnj5+AFRi87Ut2V2kiYrXO61XTd9AFSoiWWPRqojkVHIq9aLqBxDC9sr5HvRznIiaNbom7XzgVgAAAAAAAAAAAAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAMmcnfBOFcw8z7dYsXXOe20NTuhSHRvriXVNmJXr7Da379N67t2pfYK1avXoouzpCIbVZjmGV5ZcxWXW4rqp368kctWnLp/y2o4TwhZ8D2Oms9it8Frt8CaMggbonfVV4qq9KrvUn1u3Rap4FEaQ4wxuOxOY36sTi65rrnln/ALxR6mHeUlyqLPkrb5bZbnxXXGEzPwVGi6spdeD5tOHebxXvJvMbjcfRhY4NPHV8ulPNk9jMTtBci/eiaMPG+eWr1U/nO6OlrWxNiW6YwvlbeLxWSV1yrJFkmnlXVXL/AEROCIm5EITcrqu1TXXOsy62weDsYCxRhsNTwaKY0iIS/wAvuQphfMjL+wYkosWXOjW50UdQ+J0McrWPVO3anDcjtU8RIrOVWr9qm5FcxrDRWZ90jH5TmF7BXcNTVwKpjXWY1jk5+RJLIHIW2ZB4errbQXCouk1bOk89TUNRmqo3ZaiNTgiJr0rxM3hMHThKJppnXVqXabaa/tNiKL96iKIojSIjj9c8b4XLTuMNDydcTtmejXVC08EaKvsnLMxdE8SKviKWZ1RGFq19XzZTuf2qrm0WHmmPJ4Uz0cGWrkgbsd9jCeL7zga+U94sNxntlxgXVk8DtF8CpwVF6UXcpUt3K7VXDonSVhjcDhsxsVYbF0RXRPJP/eKfW2HcmjldWzN1kFgxAsVpxa1ujW67MNdp0x68HdbPi16JlgcxpxH1LnFV83LG12wt/I5nF4PWvD/Gnp549fWzzinDlqxbYay1XyjhrrZURq2eGdEVqp197Tjr0GWuUU3KZprjWGtsHi8Rgb9OIwtU010zxTG//vqahcy7dYLTj2+UWFqqatsEFU+Oknn0Vz2ounFOKa66L0poprq/Fum7VFqdaXc+UXcZfwFm7j6YpuzETVEc/bzxySyHyOP1jsIe7n+wkLzLfvVHt+SMbefu7iein+6G1MnrjMA4VyN01VE13JqBRq6ptJEr10VehqrpqBRdWyxPex8bNW6Lt7WjURd2/wAYHWOJlVzj3OWR+qOarEVEb3mqu7o+kCnFKkVZHtK1u0itVFlV7t+mmvUBUucLXLC5Y3SqrtnYaum0miroBSayWFE2WU9Ei9fbOA5jk5qZHLJPUSa7GipstRV7wHlM3HO7EGPI3N2VbaaxdEXVN8Ll4+MtMV9jX0T8mf2f/a+E/qUf3Q1C0sjIZ4ZJIW1EbHtc6F6qjZERd7VVN+i8NxruJ0nV3TcpmumaYnSZ5eb1tsmQeL8N46ytslbhSlp7fSU7UjfbYURvreREVHsVE6d+uvTqi9JsTCXbd2zFVqNI5uZw7tLgMdl+aXbOYVTXXrrwp/ijkn/jk3LDPHP/AA7kfh5XXOZtVeqhyvpbRTPRZX79UV37LN29y+LU8YrGW8LTrVv5lzs7sxjtor/AsRwbceVXO6Ojnn1dbWzmvm1iHOPFEt6xBVc4/e2npY9Uhpo9dzGJ5V4r0kGxGIuYmvh1y68yXI8HkOFjC4SnTnnlqnnn/vE8hJPLNFFG/Z2Y9NFRN67tCjNWvEy9Frgzrq6HhcgAABVpaqahqoammlfT1EL0kjljcrXMci6oqKnBUU+xMxOsKddFN2maK41ieKYnlbAuS/yx6PHEFJhfGtSyhxG1EjprhIqNiruhEcvBsn0O6N+4l+AzKLsRbvTpVz8//LmDbHYO5l1VWPyynhWd808tPRz0/GOhKitSnWll9dc2tNsLznO6bGzpv2td2mnWSCdNONpmjh8OOBv5NN+vqaluUDdcHXfNG7y4FtzLfY2v5tFicvNzyIq7cjG+1aq8ETq13a6GvMZVaqvTNmNIdu7L2cysZXapzWvhXd/HviOSJnlmOWWN3ewXwFkljczl7+YOGfgyl+yabJs/ZU9EOB81+/4j8dX90oLeqLfpZw/8Dt+2kIrnH21PQ6O7lX7Kv/1P8YRRMA3UAAAGf+ROlhuGcC2PENpoLtS3WikjiZXQNlRkzNHordpF0VUa5DL5XwKr/AuRExMcrWHdD8LtZR4Xg7lVFVuqJngzMcU8XJ65hPibk+ZaVGu3gWwrr1ULG+RCWTg8PP8A446nNVO1Gd0bsZc96V1hnJTAmC7s26WPCdrttxaio2pp6dEe1F3LovR4j3bwtm1VwqKIiVDGbQZtmFrvGKxNVdHNM8T2FVUw0NNLUzyNhhiar5HvXRGtRNVVV6kQupmIjWWApoqrqiiiNZnihp8zexXFjjNHFV+p11pq+4zTQr1x7So1fiRDXGJuRdvVVxyy7tyLBVZdleHwle+iiInp04/i8iWzOgAABVpPxuH3bfKfY3qdzyJ6G5W3fk6l96b5ENm07ofn7d+0q6ZXJ6UgAAAAAAGvDl9/prpPgiH68hC84+8R0OrO5f8AsSr+pV8qUazBtvm9VRETVVXRE759iNXiqqKY1lPr1OyKenwHilrnRRbVzZptLqv/ACk6NxLsmjS3X0uZO6pXw8fhvwT/AHJZSL26scs9Q5OLWJstTx7vKSFpIi2GrDKyJIu3WN6Jx6t/jRAOahrmVbUjj29vt1TXTRUVN/xLoBRrkSGpjes2yjVVWsjRNvfxXf3wKj380zm5FjYjt+kzlkcviA7xtVKiner3Oa5HNRFbs6Lx4adSKB2rKfbkZLpttai7TEdptIBQpUZAj540VIEbpGipoq69X0IAcyJqPbtuo1emjmu02V8C+ZQK8Ej1nRiSskjazVdhumnV0+EC7ApPpYZHK50bVcvFdOIFRrUY1GtRGtTgiJuA5AAAAAAAAAAAAAAAAAAFKo/F5fcr5D5O56p8qGlS7flau9/k+sprKrypfoFY+yo6I+S0PKuAAO0cj4ZGSRvdHIxUc17V0VqpwVF6xueZiKommqNYlJq4cvHGUuWNBYKOBlNiFkawVV/c7ae9ibmuY3TRHqnFy6796IZ2c2u95iiPK52oLXc1y2nM68ZdnWzM6xb5InliZ5Y5o60aa2tqLlVzVVXPJU1Uz1fLNM5XPe5eKqq71UwczNU6y27bt0WqIt24iKY4oiN0KJ8VEssgOWpbco8s7fhe62Gvuc1FJLzc9NKxrebc5XI3R2/cqqSHB5nTh7MW6qZnRpHafufX88zOvH4e9TRFURrExO+I05GQqj1SHD7YVWDBt0fN0NkqY2p8aIvkLyc6t8lEovT3J8ZM8eKp06JRpz85SuIs+KmnhrIIrVZKR6yU9up3K5NvTTbe5fZO03JuRE1XcYTF465i5iJ4ojkba2Z2QwezVNVVuZru1cU1Tzc0RyQxCY1PACpT1EtJURzwSPhmicj2SRuVrmuTeioqcFPsTMTrDxXRTcpmiuNYnfCR165a+Jb/AJIz4SqmSffJOqUs16Y5EWWl07bVOiRfYqqcUVV4maqzS5Xh+9T5XP6mqMP3PcFhs7jMbc/qY+tFHNXyf7Y3xHP6kbTCNtL6y3244aukFytNdPbrhAqrFU00iskZqmi6OTem5VQ90V1UTwqZ0la4nDWcXamziKIqonfExrE+x7SLOzM2WNH/AH8X2ONU12n3KTh4lLvwnEefPWjc5DknJgrfux2Krs68w4kasmPMRzK7ejYq6Xf8S/1PvhOI8+etSnZ/J5//AFLfux2OFzrx/LHM1uLb9FM1qOa59werl6t+q9KH3wrEefPW8fR3J/RLfux2LNmfOYqyRv8Av1v0qr2uytwk3ovRxPEYvEa+XPWvLmzeS8HWMHb92Oxe1udeYbqJNvG96g7VGu1r5FXdvREXU9+FYjz561n9Hcn9Et+7HY5iz2zDSNJvv2vuw5NEfUXJ6J/lRdB4ViPPnrPo7k/olv3Y7FObO3MJ9FI6PHF9RrNF0ZVyMbuXXr/qJxWI8+et9jZ3JtePCW/djsWcueuY0rURcc3/AHLqn/aEnnKcYvEefPWvqtmcmmNIwdv3Y7F1T5149qZ43w4yv8eyusiLXyabuG/XiVPCsRP8c9aynZzKKeKcJb92Ox37PeOZp1f9+t+he1dGyJXSaOT4z54Xf8+es+jWUaa+B2/djsWV1zgx1V26oppsd3ispqpropYH1r3MlY5NHNVFdvRUPlWJvVRx1zp0q9jIsqtXKarWFoiqJ1iYpjWJjleHLFLWQsqc88T5OR3dmH5oebuUPNvZUs22RPT2MrW8NtE1Tfu370UvcPi7uF173O9E882Zy/aGbU42mdaJ14uKZjlpmeaXi73fLhiS7VNyulZNX3Cpdty1E7lc9y+FfIWtddVyqaq51lIcNhLGBs02MPRFNFO6I4oWJ4XYAAAAAAAi6KipuVOCoBlV/KczAnyzqsD1F4dU2udGx+uJdVqWwpxiSTXVWru46rpu10Mh4dfmzNmZ4vihUbIZRTmdOaUWtK449I8nXztOePV072KjHpq4VNUVAJz4Z9UJw3YsN2q2vwndZZKOkip3PbPEiOVjEaqp8RKqM4t0URTwJ4nOWL7l2NxOJuX4xNERVVM7p5Z1R65TmeNBnxjG23m32yptcVJQpSOiqntc5y7bnaps9HbGHx2KpxdyK6Y00htDY/Zy9szg7mGvXIrmqrhaxrzRHL0MPGNT0AAAPu4GxdW4BxfZ8R25GOrLZUtqI2Sa7L1Ti1dOhU1RfCVbVybNyLlO+GMzLA2s0wd3BXvJriYnt9iTH941jPuWsf8Amm9Iznjm75sNSfopy30iv/17D+8axn3LWP8AzTekPHN3zYP0U5b6RX/69jHOa/K/x9mxaZrRUT01ltE6bM1JbGKxZk/Ze9yq5U7yaIpZYjMr+Ip4M8UepKsk2FyjJLsYiiJuXI3TVx6dERERr62EDFtiAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADXhy+/010nwRD9eQhecfeI6HVncv8A2JV/Uq+VKNZg233DtUTVvsk3p4T7DxVHCpmE9PU+aiOTDOKVbG6WRKuGRrGpu7aNdFVfES7J5/V1x63MndSomMXhq+emqOqf+UvXPSKZVdLKr3JuYjVcjfiTykhaSW8DW8zUQRue96dvq9unbf8AVE+MCvWJHU0jHKmu3ojV6trRAOtdsTMaiQtmVzlj1VdFau/pA6TT7NNDI5z2qqbLkjRNVVOO9eHBQOyq5sLEc1WSJI1WNe/acu/f9GoFarp3Sq1ydujeMTl7V3+oHZkLpHtfLomz7GNODe/31ArKmoHDWNZrstRuvUgHYAAAAAAAAAAAAAAAAAAAAAC0uEraehqJnLo1kbnKveRFU+TxQ92qZquU0xyzDStXypPXVMicHyvd8aqaxnjmZfoHajg26Y5ohQPiqAAAAAAAAAAAAAAAAAF5GxlVbWJIjnJDJoqMTVVTq+JUK0ccMbXHBqmF25+rY5JFlgRF3RN36/Emp9U1Jr42XFr1ker5U2Ua5itRE49P+94fXzpokilljXg1y/FxT6NClPFK+tzFVGkvow7DLa1qsbK5sfO7C79ddV85VWM71Okna6jm0RYWxu2kRE2la1d/T4z5E6vtVMxPGq00iSMe96P5hzVRZJpE3+JNyH18fJRFdG3fv8pR3SyGk1URG5dS1rpIUijjSCPTRUb0/wCh7mrmUabM6/WUOBTXbjRNddE1D5pDkPoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtJ+Nw+7b5T7G9TueRPQ3K278nUvvTfIhs2ndD8/bv2lXTK5PSkAAAAAAA14cvv8ATXSfBEP15CF5x94jodWdy/8AYlX9Sr5Uo1mDbfAJdep8YhSK+4nszpXMdNSx1DEbxXYfov8A6ZfoJJk9X16qeeGgu6nhZnC4fExHk1TE/wC6NfyTxifzjURqVT2puRV0Yn9CWOcXZsMdNVNlWRI9Wqise/VVXxr3gO9KjJqaSLVHsRzm6ou7TinlApsopYkWNrmq1XNk23Lv2t2u7v6fSBW9ZNV6q57nM2lcjN2iKvHyqBVip4od7GNavXpv+MCoAAAAAAAAAAAAAAAAAAAAAAAAAAHh86cRtwnlNi67OfsLT2ydWL/GrFa3/wBSoWuKr73Yrq9Us/s/hJx2bYbDx/FXT1ROs/Bp7Tghrl3Y5AAAAAAAAAAAAAAAAAAF3bV2nzwquiSM1TvLw/qhUp5llfjSdXajkdzSNV1VJJxcjUTTXwr5z2tlaela5GSOcsL2ORUfK/XxcdA+rS4uY6r2mPa7aairsrrvT/aHipc2J3wo08zqWVXonOIrVbsuXRNOJ8ip6rs6zrS6Rq+NjmterUc3ZcidKHzV7m1FWmrhGNTTdrp1nzWVSKKY49HY+PYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq0n43D7tvlPsb1O55E9DcrbvydS+9N8iGzad0Pz9u/aVdMrk9KQAAAAAADX96oLQugzXstUqdrPaWtRfcyya+VCHZzGl+mfU6j7llyKspvW+a5PxphF0wDdABk/kz5g9jXOjD1ze5G0c06UdS5y6NbHImwqr4FVF8RkMDf7zfpqndu60J2vyurNcoxFmiNaojhR008fx3NsbKZZGossr5N29EXZT6P6mwHFSo2mhY3RImIi8e14gVOAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACK3qgWPG2DKuiw3DJpV3yrbttRd/MRaOcvjdsIYHN73AsxbjfV+Tcfcxy2cVmteNqj6tqn/wBquKPhq12kNdUAAAAAAAAAAAAAAAAAAA7wyrTzMkRNrZXemumqaHqJ0UblE1xxKktfUTOXt1jb0NZ5z7NXMp02Y/iW6tRV1Xtl63Lqp51lXiimN0CIiJoiaIfHqI03OQ+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXlmpnVt4oadiaumnjjRE6VVyIeqY1qiFviK4t2a655Imfg3JU0XMU8Uf7DEb8SGzY4ofn9XVwqpq51U+vIAAAAAACHHqiOGnS2vCN/Y1VSGWaikcnRtIj2/UcRnOrf1aLnsb+7lGMim7isHM74iqPZxT84QjIq6NAGqouqLoqcFQDapyVc2Y82cpLZUzSpJebc1KC4NVe222J2r1903RfDr1E9y/EeEWImd8cUuLttMknJM2uUUx+rr+tT0Tvj2TxdTM5k0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRzkjarnKjURN6rwQERrxQ1Vcq3NhM2c3rjV0svOWa2/8AAUOi9q5jFXaenunar4NCA5hiPCL8zG6OKHZ2xWSeJMoot3I0uV/Wq6Z3R7I+OrDhjU9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQuT5hp2Lc6cIW5GK9i3COeRNPaRrzjvoaXuCt98xFFPrRTarGRgckxV7Xj4MxHTVxR822E2G4fAAAAAAAAMWcprALsxcl8Q26GPnK2ni9e0rU4rJF22ieFNpPGY/H2e/wCHqpjfv6k02OzSMpzqxfqnSmZ4NXRVxfCdJ9jVea/drgADL/JgzwlyRzEhqql73YfuGzTXKFu/RmvayonWxV18CqnSZLAYqcLd1nyZ3oHtjs7TtDl026I/W0cdE+vljon56Np1DcKa6UUFZSTMqKWdjZYponate1U1RUXpRUJ9ExVGsbnGVy3XZrm3cjSqJ0mJ5JXweQAAAAAAAAAAAAAAAAAAAAAAAAAAAACL/LVz+bl1hCTCdoqUTEd5iVr1jd21LTLuc5epzt7U8a9Rg8zxneKO9UT9afhDbnc+2ZnNcZGYYmn9Tani/wBVXJHRG+fZDXIQt1eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtvU+8AuuGLL3i6eP8AAW+D1nTuVNyyyb3aeBqaf4yR5NZ1rquzycTRXdTzSLWEs5bRPHXPCnojd1z8k7SWuaQAAAAAAADhURyKipqi8UUDV9ypspX5UZqV8UEKsstzc6toHInao1y9tH/hdqngVCBZhhvB70xG6eOHZuxWexnmVUVVz+st/Vq9m6fbHx1YeMYnwAAllyPuVS3A0kGCcW1Sph+V2zQV8q/iTlX2Dl/8NV6far3uEgy7MO9fqbs/V5J5v+Gktu9i5zKJzPLqf1seVTH8Uc8f6o+PS2BRTMqImSRva+NyI5rmrqiovBUUmG9zDMTTMxMcauAAAAAAAAAAAAAAAAAAAAAAAAAAADD/ACg+UFZ8i8Munncysv8AVMVKC2I7tpHftv6mJ0r08EMfjMZRhKNZ46p3Qm2y+y+J2kxPBp+rap8qrm9Uc8z8N8tXeLcWXTHGI6++3qqfW3KtkWWWV/X0IidCIm5E6EQgdy5VdrmuudZl2PgcFYy7DUYXDU8GimNIj/vLPK+QU18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK9DQz3Otp6OlidPUzyNiiiYmrnucuiInfVVPsRNU6QpXblFmiq5cnSmI1meaIbW8iMsYspMsbRYERq1jWc/WyN9vO/e/xJuaneahsPCWIw1mLfLy9LiLabOas9zS7jP4d1Pqpjd17+mWQS8RYAAAAAAAAAYu5Q+TFNnVgCotiIyK8UutRbql3tJUT2Kr+y5Ny+JegsMbhYxVrg8sbkz2U2hubO5hTf326uKuOeOfpjfHVytXN5s9bh+61dtuNPJSV1LI6GaCVNHMci6KikAqpmiqaao44doYfEWsVapv2auFTVGsTHLErM8rgAAST5OHLGu2U7aewYk569YVRUbGqLtVFEn8Cr7Jn8K8OhegzeCzKrD/AFLnHT8Yal2r2Dw+dcLF4LS3f5fNq6eafX1tgeC8e2HMOyRXbDtzgulC9PZwu3tXqc3i1e8qEwtXaL1PCtzrDmDMMsxeVX5w+MtzRVHP84ndMdD0pVY0AAAAAAAAAAAAAAAAAAAAAAAdVVGoqquiJvVVAjLn/wAtHD+WsVTaMLvhxFiVEViujdtUtI7re5PZOT9lPGqGDxmZ27GtFrjq+ENt7Mdz/GZtNOJx8Tas/wDtV0RyR659kNfGLcXXjHN/q7zfK+W43KqdtSTyrr4EROCInQibkIfcuV3aprrnWZdQ4HA4bLcPThcJRFNFO6I/7xz63xymvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmLyIMgH1lbHmHfaZW00Kqlphlb/zH8Fn06k3o3v6r0ISbKsHrPhFcdHa0D3R9qIt0TkuEq+tP2kxyR5vt5fVxcqbxKnOQAAAAAAAAAAAI48qnkvxZrUT8R4dijgxXTR6Pj3NbXMTg1V6Hp0L08F6NMJmGAjER3y35UfFtrYnbOrI64wWNnXD1Tv8yefo549sNeVwt1Vaa6eiraeSlq4HrHLBM1WvY5OKKi8FIZVTNM6VRxuq7V23ft03bVUVUzxxMbphbnlWAAHocE5gYiy5u7bnhu71NprE9k6B/ayJ1Pau5yd5UK1q9cs1cK3OksXmOV4PNbPeMbaiun18nRO+PYlnlr6olNBHFSY6sS1C7kW4WnRHL33ROXT4lTwEhsZzMcV6n2x2NI5v3LKapm5lV7T/AE1/lVH5x7UjsH8qLLHGzI/WWLaGmnf/APj3B/raRF6tH6IviVTM28fhrscVce3iaox2x2e5fM99w1Uxz0/Wj4ask0V4obpGklHW01UxU1R0ErXovjRS+iqmrdKJ3MPdszpcomJ9cTC/1TrQ9KJqnWgDVOtAGqdaANU60Aap1oA1TrQBqnWgDVOtAGqdaANU60Aap1oA1TrQBqnWgDVOtAKckrIWq57kY1Oly6INxETVxRDy2Is1sG4SY594xRabcjeLZ6tiP/y66/QW9eItW/LqiPazGFyXMsdOmGw9dXRTOnXuYOx7y+8AYbZJFYIqzFNYm5qwsWCDXvvemvxNUxd7N7FHFR9aWxcs7meb4uYqxcxZp9fHV1RxdcomZtcrbH2bEctHJXJYrK/VFt1sVWI9vU9/sneDVE7xHsRmN/EcWukc0N25JsPlGSTFymjvlyP4quPqjdHz9bCxjGwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASJ5L/ACW63NW4wX/EEElJhGB+0iO1a+ucntWfwdbvEnezWAy+rET3y5xU/NqfbPbS1klurB4OeFiJ6qPXPr5o9stidFRU9to4KSlhZT00DEjiijbstY1E0REToREJrERTGkOULlyu9XNy5OtU8czPLKufVMAAAAAAAAAAAADC+fPJgw7nVTPrW7NnxKxukdyhZqkmnBsrfbJ3+KfQYvGYC3io13Vc/a2DsxtljdnaoteXZnfTPJ66Z5J+Etf2aGSuLMork6mxBbHxU6u0hr4UV9PMn8L+vvLoveIdiMLdw06XI9vI6lyXaLLs+tcPB3NZ5aZ4qo6Y/OOJ4UtElAAAAqagVqatqaNdaeomgXrikVvkU+xMxulTrt0XPLpiemF+mLb61ERL1cUROj13J5z33yvzpW3gOF/lU+7HY5++6+/vu5fK5POO+V+dL54DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92Ow++6+/vu5fK5POO+V+dJ4DhP5VPux2H33X3993L5XJ5x3yvzpPAcJ/Kp92OxQqMQXWsTSe51s6dUlQ93lU+TXVO+VSnC4ejyLdMdEQsF3rqu9etTwugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL2zWS4YhuMNvtdFPcK2Z2zHT00ave5e8iHumiqueDTGsrbEYizhLc3r9cU0xvmZ0hMfITkNrDLTXzMRGuVqo+KxRu1Tvc85Pqp416CTYPKdNK8R1drQO0/dJ4UVYTJeibk/4x+c+yOVMqlpIaGmip6aFkFPE1GRxRtRrWNTgiInBCTRERGkOfq66rlU11zrM75lVPrwAAAAAAAAAAAAAAAWtztdHeqGWiuFJDW0kqbMkFRGj2OTqVF3KeaqYqjSqNYVrN67h7kXbNU01RumJ0lHTMXkJ4JxU+Wqw/PUYWrHarzcP4WmVfcOXVPEqJ3jC38ps3OO39Wfg2xlPdLzXAxFvGRF6n18VXXG/2wj7ivkJ5jWJ73WxLfiCBOC00/NSL4Wv0+hVMNcyjEUeTpLaeB7peSYmIi/wrU+uNY641+TG1z5POZVncqVOCrxu9tFTLKnxs1QsasFiad9EpfZ2ryO/H1MXR7Z0+ej5D8o8cRu0dg++ovwdN6JS8GvR/BPVK+jPcpndirfv09rjsT417kL782zeiPB73mT1S++PMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379PadifGvchffm2b0R4Pe8yeqTx5lXpVv36e07E+Ne5C+/Ns3ojwe95k9UnjzKvSrfv09p2J8a9yF9+bZvRHg97zJ6pPHmVelW/fp7TsT417kL782zeiPB73mT1SePMq9Kt+/T2nYnxr3IX35tm9EeD3vMnqk8eZV6Vb9+ntOxPjXuQvvzbN6I8HveZPVJ48yr0q379Pau6TJDMGuejIcF3x7l66CRPKh7jCYid1E9ShXtHk1uNasXb96O17TDvI6zUxC9u1h5LXGvGS41DI0TxIqu+guaMsxVf8OnSj2L2/wBn8LHFf4c81MTPx4o+LNuBPU9YYnxz4vxGsyIqK6jtTNlF7yyP3/E0ytnJo33auprnM+6rXVE0Zbh9P9Vc/wCMdqT2AMp8J5YUXrbDdlp7fqmj50btTSe6kXVy/GZ6zh7WHjS3To03mmeZjnNfDx16auaN0R0RHE9cXLBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 // @iconbak https://pic.616pic.com/ys_bnew_img/00/35/79/Gv93yQh7v6.jpg +// @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js +// @require https://update.greasyfork.org/scripts/498124/1396763/video.js +// @require https://update.greasyfork.org/scripts/498149/1395619/%E4%BF%A1%E6%81%AF%E6%9F%A5%E7%9C%8B%E5%99%A8.js // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT // ==/UserScript== -const translate = (function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const strings = { - 'en': { - Accountnull: 'Error: UserEmail or UserPassword is empty.', - loginSuccess: 'Login successful, refreshing the page.', - Networkfailed: 'Status code error.', - Loginfailed: 'Login failed, incorrect email or password. Check console for error details.', - }, - 'zh-CN': { - Accountnull: '邮箱或密码为空', - loginSuccess: '登录成功,即将刷新页面。', - Networkfailed: '状态码错误', - Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。', - }, - 'zh-TW': { - Accountnull: '郵箱或密碼為空', - loginSuccess: '登錄成功,即將刷新頁面。', - Networkfailed: '狀態碼錯誤', - Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。', - }, - 'ja': { - Accountnull: 'エラー:メールアドレスまたはパスワードが空です。', - loginSuccess: 'ログイン成功、ページを更新します。', - Networkfailed: 'ステータスコードエラー', - Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。', - }, - 'vi': { - Accountnull: 'Lỗi: Email hoặc mật khẩu trống.', - loginSuccess: 'Đăng nhập thành công, đang làm mới trang.', - Networkfailed: 'Lỗi mã trạng thái.', - Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.', - } - } - - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } -}()); (function () { 'use strict' - let UserEmail = GM_getValue("UserEmail", "") - let UserPassword = GM_getValue("UserPassword", "") - var style = document.createElement('style') - GM_registerMenuCommand("Set Account", showuserInfoModal) - function showuserInfoModal() { - let modalHtml = ` -
          -

          Set Account

          -
          - - -
          -
          - - -
          -
          - - -
          -
          ` - let modalDiv = document.createElement('div') - modalDiv.innerHTML = modalHtml - document.body.appendChild(modalDiv) - document.getElementById("saveUserInfo").addEventListener("click", function () { - UserEmail = document.getElementById("UserEmail").value - UserPassword = document.getElementById("UserPassword").value - GM_setValue("UserEmail", UserEmail) - GM_setValue("UserPassword", UserPassword) - closeUserModal() - }) - document.getElementById("closeUserModal").addEventListener("click", closeUserModal) + + var controlButton = createButton('备份', '10px', '10px') + var buttonA = createButton('备份当前', '70px', '10px') + var buttonB = createButton('备份片单', '130px', '10px') + var buttonC = createButton('设置选项', '190px', '10px') + var webdavbutton = createButton('WebDav', '250px', '10px') + // 设置按钮的背景颜色和样式 + controlButton.style.backgroundColor = 'blue' // 控制按钮改为蓝色背景 + buttonA.style.backgroundColor = 'green' + buttonB.style.backgroundColor = 'blue' + buttonC.style.backgroundColor = 'red' + webdavbutton.style.backgroundColor = 'blue' + // 隐藏初始的三个按钮 + buttonA.style.display = 'none' + buttonB.style.display = 'none' + buttonC.style.display = 'none' + webdavbutton.style.display = 'none' + // 添加按钮到页面 + document.body.appendChild(controlButton) + document.body.appendChild(buttonA) + document.body.appendChild(buttonB) + document.body.appendChild(buttonC) + document.body.appendChild(webdavbutton) + // 控制按钮的点击事件 + controlButton.addEventListener('click', function () { + if (buttonA.style.display === 'none') { + // 显示三个按钮 + buttonA.style.display = 'block' + buttonB.style.display = 'block' + buttonC.style.display = 'block' + webdavbutton.style.display = 'block' + controlButton.innerHTML = '隐藏' + } else { + // 隐藏三个按钮 + buttonA.style.display = 'none' + buttonB.style.display = 'none' + buttonC.style.display = 'none' + webdavbutton.style.display = 'none' + controlButton.innerHTML = '备份' + } + }) + webdavbutton.addEventListener('click', function () { + // 点击按钮时执行的操作 + WebDAVManager.listFilesAndFolders(webdavfold) + + + }) + + // 按钮A的点击事件 + buttonA.addEventListener('click', function () { + resetGlobalVariables() + singleFileDownload = true + window.showLogContainer() + var currentDate = new Date() + var currentTime = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate() + '_' + currentDate.getHours() + '-' + currentDate.getMinutes() + '-' + currentDate.getSeconds() + if (useDefaultTitle) { + name = document.querySelector('meta[name="twitter:title"]').content + } else { + const twitterTitleContent = document.querySelector('meta[name="twitter:title"]').content + name = prompt('请输入自定义名称:', twitterTitleContent) + if (name === null) { + name = twitterTitleContent + } + } + inurl = window.location.href + const defaultPages = getTotalPagesd() + + const totalPages = setTotalPage(defaultPages) + allpages = totalPages + //const delay = settime(); + if (totalPages) { + start(totalPages) + } + + }) + + // 按钮B的点击事件 + buttonB.addEventListener('click', function () { + // 点击按钮时执行的操作 + resetGlobalVariables() + fetchJsonData() + + + }) + + // 按钮C的点击事件 + buttonC.addEventListener('click', function () { + createSettingsUI() + + // 这里可以添加按钮C点击后的具体操作,比如打开链接或执行其他动作 + }) + + // 创建按钮的辅助函数 + function createButton(text, top, left) { + var button = document.createElement('button') + button.innerHTML = text + button.style.position = 'fixed' + button.style.bottom = top + button.style.right = left + button.style.zIndex = '1000' + button.style.padding = '10px' + button.style.border = 'none' + button.style.cursor = 'pointer' + button.style.color = '#fff' + button.style.fontSize = '14px' + button.style.fontWeight = 'bold' + button.style.textAlign = 'center' + button.style.width = '100px' // 调整按钮宽度 + return button } - function closeUserModal() { - let modal = document.getElementById("userInfoModal") - if (modal) { - modal.remove() + // 全局变量 + var allResults = [] // 存储所有的结果数据 + var zip = new JSZip() // 创建一个压缩文件实例 + var allzip = new JSZip() // 另一个可能的压缩文件实例 + var imgFolder = zip.folder('img') // 在 zip 中创建一个名为 "img" 的文件夹,用于存储图片文件 + var allimgFolder = allzip.folder('img') // 在 allzip 中创建一个名为 "img" 的文件夹,可能用于另一个压缩文件的图片存储 + var ALLfiledown = false // 标识是否所有文件已下载完毕的布尔变量 + var videos = [] // 存储视频文件或相关信息的数组 + var finalData = [] // 存储最终处理数据的数组 + var inurl = '' // 当前下载地址的变量 + var pendingRequests = 0 // 当前待处理的请求数量 + var delayTime // 延迟时间,以毫秒为单位,用于控制异步操作的时间间隔 + var currentPage = 1 // 当前处理的页数,可能用于分页处理或其他进度跟踪 + var currentUrlIndex = 0 // 当前处理的 urls 数组中的索引位置 + var name = '' // 当前下载的名称 + var urls = [] // 存储需要处理的网址数组 + var a = -1 // 循环中的计数或索引,初始值为 -1 + var allZipContents = [] // 存储所有压缩文件内容的数组 + var singleFileDownload = false // 标识是否为单个文件下载模式的布尔变量 + var names = [] // 存储下载名称列表的数组 + var allpages = 0 // 存储总页数或其他页面处理相关信息的变量 + var modalContainer = null // 存储模态窗口容器的全局变量,用于显示下载进度或其他信息 + var shouldReplace = false // 控制是否在下载大图时进行替换操作的布尔变量 + var temporaryData = [] + var saveJson = false + var useDefaultTitle = true + var pageCount = true + var saveVideoInfo = false + var saveImage = false + var downloadLog = {} + var errorLogs = {} + var downloadLogFileA = false // 这里设置为 true 时载日志 + var webdavfold = 'missavsave' + //var webdavfold="1111"; + var savetowebdav = false + var webdavUrl = '' + var webdavUsername = '' + var webdavPassword = '' + var deleteSelected = false + ini()//读取配置 + function resetGlobalVariables() { + zip = new JSZip() // 重置为一个新的 JSZip 实例,用于创建新的压缩文件 + allzip = new JSZip() // 可能是另一个新的 JSZip 实例,用于其他用途的压缩文件 + if (saveImage) { + imgFolder = zip.folder('img') // 在 zip 中创建一个名为 "img" 的文件夹,用于存储图片文件 + allimgFolder = allzip.folder('img') // 在 allzip 中创建一个名为 "img" 的文件夹,可能用于另一个压缩文件的图片存储 } + downloadLog = {} + errorLogs = {} + ALLfiledown = false // 重置为 false,表示所有文件未下载完毕 + videos = [] // 清空存储视频文件或相关信息的数组 + finalData = [] // 清空存储最终处理数据的数组 + inurl = '' // 重置当前下载地址为空字符串 + pendingRequests = 0 // 重置待处理的请求数量为 0 + + currentPage = 1 // 重置当前处理的页数为 1 + currentUrlIndex = 0 // 重置当前处理的 urls 数组索引为 0 + name = '' // 重置当前下载的名称为空字符串 + urls = [] // 清空存储需要处理的网址数组 + a = -1 // 重置循环中的计数或索引为 -1 + allZipContents = [] // 清空存储所有压缩文件内容的数组 + singleFileDownload = false // 重置为 false,表示不是单个文件下载模式 + names = [] // 清空存储下载名称列表的数组 + allpages = 0 // 重置存储总页数或其他页面处理相关信息的变量为 0 + temporaryData = [] } - function login(email, password) { - if (!email || !password) { - Toast(translate('Accountnull'), 2000, '#FF0000', '#ffffff', 'top') - return + + + async function processUrls() { + //delayTime = 20; + let completedTasks = 0 // 计数已完成的任务数量 + + for (const url of urls) { + a = a + 1 // 每次循环递增 a + inurl = url + console.log('正在处理网址:', url, names[a]) + window.addToLog('处理:' + url + names[a], 'info') + name = names[a] + + try { + const totalPages = await getTotalPages(url) // 等待 getTotalPages 返回结果 + console.log('Total pages for', url, ':', totalPages) // 显示总页数 + window.addToLog(name + ' 总页数:' + url + totalPages, 'info') + allpages = totalPages + start(totalPages) // 启动处理流程 + + // 等待当前页面的请求完成 + while (pendingRequests > 0) { + await new Promise(resolve => setTimeout(resolve, 100)) // 每隔 100 毫秒检查一次是否所有请求都已完成 + } + + completedTasks++ // 标记当前任务已完成 + } catch (error) { + console.error('Error processing URL:', url, error) // 处理错误信息 + allpages = 1 + start(1) // 启动处理流程 + while (pendingRequests > 0) { + await new Promise(resolve => setTimeout(resolve, 100)) // 每隔 100 毫秒检查一次是否所有请求都已完成 + } + completedTasks++ // 标记当前任务已完成 + } } - fetch('https://missav.com/cn/api/login', { - method: 'POST', + + // 如果所有任务都已完成且 urls 数组不为空,则调用下载函数 + if (completedTasks === urls.length && urls.length !== 0) { + downloadAllZips() + } + } + + + + + function getAllCookies() { + return document.cookie + } + + // 获取指定 JSON 数据的函数 + + + + + function fetchJsonData() { + const cookies = getAllCookies() + //alert(cookies); + console.log('Current page cookies:', cookies) + + // 构建 API URL + const apiUrl = 'https://missav.com/api/playlists/dfe-057' + + // 发送带有 cookies 的请求 + GM_xmlhttpRequest({ + method: 'GET', + url: apiUrl, headers: { - 'Content-Type': 'application/json', + 'Cookie': cookies + }, + onload: function (response) { + if (response.status === 200) { + try { + const jsonResponse = JSON.parse(response.responseText) + if (jsonResponse && Array.isArray(jsonResponse.data)) { + createReportUI(jsonResponse.data, 500) // 假设每页显示 10 个项目 + + // 调用 processUrls 函数处理 URLs + } else { + console.error('JSON 格式无效') + showModal('JSON 格式无效', 2000) + } + } catch (error) { + console.error('Error parsing JSON:', error) + showModal('解析错误' + error, 2000) + } + } else { + console.error('Request failed with status:', response.status) + showModal('解析错误', 2000) + } }, - body: JSON.stringify({ - email: email, - password: password, - remember: true, - }), + onerror: function (error) { + showModal('解析错误' + error, 2000) + } }) - .then(response => { - if (!response.ok) { - return response.text().then(text => { - console.error('Login error:', { - status: response.status, - statusText: response.statusText, - responseText: text, - }) - Toast('Login failed: ' + text, 2000, '#FF0000', '#ffffff', 'top') - throw new Error(translate('Networkfailed')) - }) + } + + function processUrl(url) { + // 检查是否包含 `page=` 参数 + var pageIndex = url.indexOf('page=') + + if (pageIndex !== -1) { + // 找到 `page=` 参数并删除它及其后的所有内容 + var baseUrl = url.substring(0, pageIndex + 5) // +5 to include `page=` + return baseUrl + } else { + // 检查是否已有其他参数 + if (url.includes('?')) { + // 有其他参数,添加 `&page=` + return url + '&page=' + } else { + // 没有其他参数,添加 `?page=` + return url + '?page=' + } + } + } + function settime() { + // 让用户输入延时时间 + delayTime = prompt('请输入每页请求的延时时间(毫秒):', '1000') + + // 检查用户是否取消输入 + if (delayTime === null) { + alert('输入取消') + return + } + + delayTime = parseInt(delayTime) + + // 检查输入的延时时间是否有效 + if (isNaN(delayTime) || delayTime <= 0) { + alert('请输入有效的延时时间(正整数)!') + return + } + + // 返回有效的延时时间 + return delayTime + } + + + function getTotalPagesd() { // 获取总页数 + var totalPagesElement = document.querySelector('#price-currency') + var totalPagesText = totalPagesElement ? totalPagesElement.innerText : '' + var totalPages = parseInt(totalPagesText.replace('/', '').trim(), 10) + + // 如果获取总页数失败,则返回 1 + if (isNaN(totalPages) || totalPages <= 0) { + totalPages = 1 + } + + return totalPages + } + function getTotalPages(url) { + return new Promise((resolve, reject) => { + // 如果没有提供 URL,则使用当前页面的 URL + if (!url) { + url = window.location.href + } + + // 发起 GM_xmlhttpRequest 请求获取页面内容 + GM_xmlhttpRequest({ + method: 'GET', + url: url, + headers: { 'Cookie': document.cookie }, + onload: function (response) { + // 处理响应 + if (response.status === 200) { + const parser = new DOMParser() + const doc = parser.parseFromString(response.responseText, 'text/html') + const totalPagesElement = doc.querySelector('#price-currency') // 替换为实际选择器 + if (totalPagesElement) { + const totalPagesText = totalPagesElement.innerText + const totalPages = parseInt(totalPagesText.replace('/', '').trim(), 10) + resolve(totalPages) // 成功时返回总页数 + } else { + window.addToLog('页面中没有找到总页数,默认为1页', 'warning') + reject('Total pages element not found') // 页面中没有找到总页数元素 + } + } else { + window.addToLog('请求失败', 'warning') + reject(`Request failed with status ${response.status}`) // 请求失败 + } + }, + onerror: function () { + window.addToLog('请求出错', 'warning') + reject('Request failed') // 请求出错 + } - if (response.headers.get('Content-Type')?.includes('application/json')) { - return response.json() + }) + }) + } + + + // 设置总页数 + function setTotalPage(defaultPages) { + if (!pageCount) { + return defaultPages + } + + const inputPages = parseInt(prompt(`当前 ${name} 总页数为 ${defaultPages}。请输入你想要抓取的页数(不输入抓取全部):`, defaultPages), 10) + if (isNaN(inputPages) || inputPages <= 0) { + return defaultPages + } + return inputPages + } + // 开始处理页面抓取 + function start(totalPages, callback) { + const pages = Array.from({ length: totalPages }, (_, i) => i + 1) + pendingRequests = pages.length + fetchPage(pages.shift(), pages, callback) + } + + // 点击按钮时执行操作 + + + + // 异步获取页面内容 + function fetchPage(pageNum, pages, callback) { + const pageUrl = `${processUrl(inurl)}${pageNum}` + console.log(`正在获取第 ${pageNum} 页的内容...`) + //showModal(`正在获取${name} 第 ${pageNum} / ${allpages}页 `); + if (a !== -1) { + showModal(`${a + 1}/${names.length} 正在获取 ${name} 第 ${pageNum} / ${allpages} 页`) + } else { + showModal(`正在获取 ${name} 第 ${pageNum} / ${allpages} 页`) + } + GM_xmlhttpRequest({ + method: 'GET', + url: pageUrl, + headers: { 'Cookie': document.cookie }, + onload: function (response) { + if (response.status === 200) { + processPageContent(response.responseText, pageNum, pages, callback) } else { - return response.text().then(text => { - console.error(translate('Loginfailed'), { - status: response.status, - statusText: response.statusText, - responseText: text, - }) - Toast(translate('Loginfailed'), 2000, '#FF0000', '#ffffff', 'top') - throw new Error(translate('Loginfailed')) + pendingRequests-- + checkIfComplete(callback) + if (pages.length > 0) { + setTimeout(() => fetchPage(pages.shift(), pages, callback), delayTime) + } + } + } + }) + } + + + //获取视频信息 + function extractInformation(htmlContent) { + let data = {} // 创建一个对象来存储提取的数据 + let xhr = new XMLHttpRequest() + xhr.open('GET', htmlContent, false) // 同步方式打开请求 + xhr.send() + + // 创建一个虚拟的
          元素来加载 HTML 内容 + let tempDiv = document.createElement('div') + tempDiv.innerHTML = xhr.responseText + + // 获取所有包含信息的父元素列表 + let parentElements = tempDiv.querySelectorAll('div.space-y-2 > div') + + if (parentElements.length > 0) { + let allInfo = {} // 初始化一个空对象来存储所有信息 + + // 遍历每个包含信息的
          元素 + parentElements.forEach(div => { + let span = div.querySelector('span') // 获取第一个 元素 + + if (span) { + let category = span.textContent.trim() // 获取主分类名称 + + if (!allInfo[category]) { + allInfo[category] = [] // 初始化一个空数组来存储该分类下的所有信息 + } + + // 查找所有的 元素和 元素 + if (element.tagName === 'A') { + info['name'] = element.textContent.trim() // 获取名称 + info['link'] = element.href.trim() // 获取链接 + } else if (element.tagName === 'TIME') { + info = element.textContent.trim() // 如果是 元素,则尝试获取 标签内的文本内容 + if (div.querySelectorAll('a').length === 0) { + let spanText = div.querySelector('span.font-medium') + if (spanText) { + let info = spanText.textContent.trim() + allInfo[category].push(info) + } + } } }) - .then(data => { - console.log('Success:', data) - Toast(translate('loginSuccess'), 2000, 'rgb(18, 187, 2)', '#ffffff', 'top') - location.reload() - }) - .catch(error => { - Toast('An error occurred: ' + error.message, 2000, '#FF0000', '#ffffff', 'top') - }) + + // 提取 class="mb-1 text-secondary break-all line-clamp-2" 的内容 + let descriptionElement = tempDiv.querySelector('.mb-1.text-secondary.break-all.line-clamp-2') + let descriptionContent = descriptionElement ? descriptionElement.textContent.trim() : '' + allInfo['简介'] = descriptionContent + + // 将所有信息存储到 data 对象中 + data['videosinfo'] = allInfo + + // 查找包含 x-cloak 和 x-show="currentTab === 'magnets'" 的第二个元素 + let secondElement = tempDiv.querySelector('div[x-cloak][x-show="currentTab === \'magnets\'"]') + + if (secondElement) { + let linksAndInfo = [] + + // 遍历第二个元素内的 元素 + secondElement.querySelectorAll('a[rel="nofollow"]').forEach(a => { + let linkInfo = { + name: a.textContent.trim(), + link: a.href.trim() + } + + // 查找相邻的 元素,获取大小和日期信息 + let sizeTd = a.closest('td').nextElementSibling + if (sizeTd && sizeTd.classList.contains('font-mono')) { + linkInfo['size'] = sizeTd.textContent.trim() // 获取大小信息 + } + + let dateTd = sizeTd ? sizeTd.nextElementSibling : null + if (dateTd && dateTd.classList.contains('hidden')) { + linkInfo['date'] = dateTd.textContent.trim() // 获取日期信息 + } + let nextSibling = a.nextElementSibling + + // 循环处理所有紧邻的元素 + while (nextSibling && nextSibling.tagName === 'SPAN') { + let spanText = nextSibling.textContent.trim() + linkInfo['name'] += ' ' + spanText // 将元素的文本内容追加到name中 + + nextSibling = nextSibling.nextElementSibling // 继续查找下一个兄弟元素 + } + linksAndInfo.push(linkInfo) + }) + + // 将第二个元素的链接和信息添加到 data 中 + data['secondElementLinksInfo'] = linksAndInfo + } else { + console.error('未找到包含 x-cloak 和 x-show="currentTab === \'magnets\'" 的第二个元素。') + } + + return data // 返回结构化的数据 + + } else { + console.error('未找到匹配的父元素 div.space-y-2') + return null // 如果未找到匹配的父元素,返回 null + } + } ///大 + + + + + // 使用XMLHttpRequest获取页面内容 + function fetchPageforinfo(url) { + let xhr = new XMLHttpRequest() + + xhr.onreadystatechange = function () { + if (xhr.readyState === XMLHttpRequest.DONE) { + if (xhr.status === 200) { + extractInformation(xhr.responseText) // 将获取的页面内容传递给提取信息的函数 + } else { + console.error('请求失败:' + xhr.status) + } + } + } + + xhr.open('GET', url, true) + xhr.send() } - function check() { - const url = 'https://missav.com/api/actresses/1016525/view' - fetch(url, { - method: 'GET' + + + // 处理获取到的页面内容 + function processPageContent(htmlContent, pageNum, pages, callback) { + const parser = new DOMParser() + const doc = parser.parseFromString(htmlContent, 'text/html') + const divElements = doc.querySelectorAll('div.relative.aspect-w-16.aspect-h-9.rounded.overflow-hidden.shadow-lg') + const logEntry = { + url: `${processUrl(inurl)}${pageNum}`, + elementsFetched: divElements.length + } + + // 如果当前名称的日志组不存在,则创建一个新数组 + if (!downloadLog[name]) { + downloadLog[name] = [] + } + + // 将日志条目添加到日志数组中 + downloadLog[name].push(logEntry) + if (divElements.length === 0) { + const logEntry = { + url: `${processUrl(inurl)}${pageNum}`, + elementsFetched: 0, // 这里可以根据实际需求设置其他信息 + errorMessage: `获取第 ${pageNum} 页失败。` + } + if (!errorLogs[name]) { + errorLogs[name] = [] + } + errorLogs[name].push(logEntry) + console.log(`获取第 ${pageNum} 页失败。`) + window.addToLog(`${name}${processUrl(inurl)}${pageNum}+获取失败 数量:` + divElements.length, 'error') + } + + + + + divElements.forEach(div => { + var imgUrl = div.querySelector('img').getAttribute('data-src') + + + if (shouldReplace) { + imgUrl = imgUrl.replace('cover-t.jpg', 'cover-n.jpg') + } + const video = { + fileName: div.querySelector('a').getAttribute('alt'), + imgUrl: imgUrl, + videoUrl: div.querySelector('video').getAttribute('data-src'), + markContent: Array.from(div.querySelectorAll('span')).map(mark => mark.textContent).join(' '), + altText: div.querySelector('img').getAttribute('alt'), + jumpUrl: div.querySelector('a').getAttribute('href') + + } + + if (saveVideoInfo) { + video.info = extractInformation(video.jumpUrl) + //showBanner(`正在获取 ${video.fileName} 信息`); + window.addToLog(`正在获取 ${video.fileName} 信息`, 'info') + console.log() + }; + + + + if (video.imgUrl && video.altText) { + videos.push(video) + if (saveImage) { + window.addToLog('保存' + video.imgUrl, 'info') + pendingRequests++ + GM_xmlhttpRequest({ + method: 'GET', + url: video.imgUrl, + responseType: 'blob', + onload: function (response) { + if (response.status === 200) { + if (saveImage) { + if (singleFileDownload) { + console.log('这是单个文件下载') + imgFolder.file(`${video.fileName}.jpg`, response.response, { binary: true }) + } else { + console.log('这是批量文件下载') + allimgFolder.file(`${video.fileName}.jpg`, response.response, { binary: true }) + } + } + + pendingRequests-- + checkIfComplete(callback) + } else { + pendingRequests-- + checkIfComplete(callback) + } + } + }) + } + } else { + pendingRequests-- + checkIfComplete(callback) + } }) - .then(response => { - if (response.ok) { - return response.json() + + showModal(`获取第 ${pageNum} 页的内容完成,等待 ${delayTime} 毫秒加载第 ${pageNum + 1} 页。`) + pendingRequests-- + checkIfComplete(callback) + if (pages.length > 0) { + setTimeout(() => fetchPage(pages.shift(), pages, callback), delayTime) + } else { + + } + } + + closeModal() + + function downloadLogFile() { + + + if (!downloadLogFileA) { + console.log('日志下载已被跳过') + return + } + if (Object.keys(errorLogs).length === 0) { + // 如果错误日志为空,直接下载正常日志文件 + const logBlob = new Blob([JSON.stringify(downloadLog, null, 4)], { type: 'application/json' }) + const logUrl = URL.createObjectURL(logBlob) + const logLink = document.createElement('a') + logLink.href = logUrl + logLink.download = 'download_log.json' + logLink.click() + URL.revokeObjectURL(logUrl) + } else { + // 创建一个JSZip实例 + const zip = new JSZip() + + // 添加正常日志文件到压缩包 + const logBlob = new Blob([JSON.stringify(downloadLog, null, 4)], { type: 'application/json' }) + zip.file('download_log.json', logBlob) + + // 添加错误日志文件到压缩包 + const errorLogBlob = new Blob([JSON.stringify(errorLogs, null, 4)], { type: 'application/json' }) + zip.file('error_log.json', errorLogBlob) + + // 生成压缩包并触发下载 + zip.generateAsync({ type: 'blob' }).then(function (content) { + const zipUrl = URL.createObjectURL(content) + const link = document.createElement('a') + link.href = zipUrl + link.download = 'logs.zip' + link.click() + URL.revokeObjectURL(zipUrl) + }) + } + } + + + + function sanitizeFileName(name) { + return name.replace(/[\\\/:*?"<>|]/g, '_') + } + + function checkIfComplete(callback) { + if (pendingRequests === 0) { + + const additionalInfo = { + timestamp: new Date().toISOString(), + inurl: inurl + + } + if (singleFileDownload) { + showModal('获取完毕,正在生成单个文件...') + + finalData = { + info: additionalInfo, + video: videos + } + if (saveJson) { + zip.file('data.json', JSON.stringify(finalData, null, 4)) + } + if (savetowebdav) { + + WebDAVManager.uploadFile(webdavfold, `${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) + } + + + + const jsonIndexContent = generateJsonIndexContent(finalData) + const numFiles = Object.keys(zip.files).length // 获取压缩包中文件的数量 + + if (numFiles === 0) { + const htmlContent = jsonIndexContent // 替换为实际的HTML内容 + const htmlBlob = new Blob([htmlContent], { type: 'text/html' }) + const htmlUrl = URL.createObjectURL(htmlBlob) + + const a = document.createElement('a') + a.href = htmlUrl + a.download = `${sanitizeFileName(name)}.html` + a.click() + closeModal() + downloadLogFile() + + if (callback) callback() } else { - throw new Error('Network response was not ok.') + zip.file(`${sanitizeFileName(name)}.html`, jsonIndexContent) + + // 生成并下载单个文件 + zip.generateAsync({ type: 'blob' }, function updateCallback(metadata) { + const progress = metadata.percent.toFixed(2) + showModal(`压缩进度: ${progress}%`) + }).then(content => { + const zipUrl = URL.createObjectURL(content) + const a = document.createElement('a') + a.href = zipUrl + a.download = `${name}.zip` + a.click() + URL.revokeObjectURL(zipUrl) + closeModal() + downloadLogFile() + if (callback) callback() + }) } - }) - .then(data => { - if (data) { - if (data.user === null) { - login(UserEmail, UserPassword) - } else { - // 已经登录 - } + + + } else { + finalData = { + info: additionalInfo, + video: videos } + if (saveJson) { + allzip.file(`${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) + } + if (savetowebdav) { + WebDAVManager.uploadFile(webdavfold, `${sanitizeFileName(name)}.json`, JSON.stringify(finalData, null, 4)) + } + + const jsonIndexContent = generateJsonIndexContent(finalData);; + allzip.file(`${sanitizeFileName(name)}.html`, jsonIndexContent) + finalData = [] + + videos = [] + if (callback) callback() + } + + } + } + function downloadAllZips() { + if (singleFileDownload === false) { + showModal('获取完毕,正在生成压缩文件...') + + const numFiles = Object.keys(allzip.files).length // 获取压缩包中文件的数量 + + if (numFiles === 1) { + // 如果压缩包中只有一个文件,直接处理该文件 + const fileName = Object.keys(allzip.files)[0] // 获取唯一的文件名 + const file = allzip.files[fileName] + + // 根据文件类型获取文件内容 + file.async('blob').then(content => { + // 创建一个Blob对象,并下载 + const blob = new Blob([content]) + const url = URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = fileName + document.body.appendChild(a) // 添加到文档中以确保点击有效 + a.click() + document.body.removeChild(a) // 下载完成后移除元素 + URL.revokeObjectURL(url) + closeModal() + }).catch(error => { + console.error('Error fetching file content:', error) + closeModal() + }) + downloadLogFile() + return // 结束函数执行,不生成压缩包 + } + + + + allzip.generateAsync({ type: 'blob' }, function updateCallback(metadata) { + const progress = metadata.percent.toFixed(2) + showModal(`压缩进度: ${progress}%`) + }).then(content => { + const zipUrl = URL.createObjectURL(content) + const a = document.createElement('a') + a.href = zipUrl + a.download = `批量备份${urls.length}个片单.zip` + a.click() + URL.revokeObjectURL(zipUrl) + closeModal() + downloadLogFile() + if (callback) callback() }) - .catch(error => console.error('Error:', error)) + // 如果 singleFileDownload 等于假,则执行这里的代码 + } + + + } + + function showBanner(text) { + // 查找现有的横幅元素 + var existingBanner = document.querySelector('.banner') + + if (existingBanner) { + // 如果横幅已经存在,直接更新文本内容 + existingBanner.textContent = text + } else { + // 如果横幅不存在,创建一个新的横幅 + var banner = document.createElement('div') + banner.className = 'banner' // 添加一个类名以便识别 + banner.style.position = 'fixed' + banner.style.bottom = '20px' // 距离底部的距离 + banner.style.left = '20px' // 距离左侧的距离 + banner.style.width = 'auto' // 根据文本自动调整宽度 + banner.style.backgroundColor = 'rgba(255, 255, 255, 0.9)' + banner.style.color = '#000' // 黑色文本 + banner.style.textAlign = 'center' + banner.style.padding = '20px' + banner.style.borderRadius = '8px' + banner.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)' + banner.style.zIndex = '9999' + banner.textContent = text // 将传入的文本设置为横幅内容 + + document.body.appendChild(banner) // 将横幅添加到文档的末尾 + + // 3秒后移除横幅提示 + setTimeout(function () { + banner.remove() + }, 3000) + } + } + + + + // 创建或更新模态窗口 + function showModal(message, autoCloseDelay = 0) { + // 如果模态窗口不存在,则创建新的模态窗口 + if (!modalContainer) { + modalContainer = document.createElement('div') + modalContainer.className = 'modal-container' + modalContainer.style.cssText = ` + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: rgba(255, 255, 255, 0.9); + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + z-index: 9999; + padding: 20px; + ` + document.body.appendChild(modalContainer) + } + + // 更新模态窗口的内容 + modalContainer.textContent = message + + // 自动关闭模态窗口 + if (autoCloseDelay > 0) { + setTimeout(closeModal, autoCloseDelay) + } + } + + // 关闭模态窗口 + function closeModal() { + // 如果模态窗口存在,则从 DOM 中移除 + if (modalContainer) { + document.body.removeChild(modalContainer) + modalContainer = null // 将变量重置为 null,以便下次创建新的模态窗口 + } } - check() -})() + + // 创建JSONindex + + function createReportUI(data, itemsPerPage) { + temporaryData = data + // 创建全屏遮罩层 + const overlay = document.createElement('div') + overlay.className = 'overlay' + overlay.style.cssText = ` + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 1); /* 全黑不透明背景 */ + z-index: 9999; /* 确保遮罩层位于所有内容之上 */ + ` + // document.body.appendChild(overlay); + + const modalContainer = document.createElement('div') + modalContainer.className = 'modal-container' + modalContainer.style.cssText = ` + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: rgba(255, 255, 255, 1); + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + z-index: 10000; /* 确保弹出框位于遮罩层之上 */ + padding: 20px; + width: 80%; + max-width: 800px; + ` + const title = document.createElement('h2') + title.textContent = `当前共有片单数量: ${temporaryData.length}` + + title.style.textAlign = 'center' + modalContainer.appendChild(title) + + const closeButton = document.createElement('button') + closeButton.textContent = '×' + closeButton.style.position = 'absolute' + closeButton.style.top = '10px' + closeButton.style.right = '10px' + closeButton.style.backgroundColor = 'transparent' + closeButton.style.border = 'none' + closeButton.style.fontSize = '24px' + closeButton.style.cursor = 'pointer' + modalContainer.appendChild(closeButton) + + closeButton.addEventListener('click', () => { + + // document.body.removeChild(overlay); // 移除遮罩层 + document.body.removeChild(modalContainer) // 移除模态框 + }) + + const tableContainer = document.createElement('div') + tableContainer.style.cssText = ` + max-height: 60vh; + overflow-y: auto; + ` + modalContainer.appendChild(tableContainer) + + const table = document.createElement('table') + table.style.width = '100%' + table.style.borderCollapse = 'collapse' + table.style.fontSize = '16px' + tableContainer.appendChild(table) + + const thead = document.createElement('thead') + table.appendChild(thead) + + const headerRow = document.createElement('tr') + thead.appendChild(headerRow) + + const checkboxHeader = document.createElement('th') + checkboxHeader.textContent = '选择' + checkboxHeader.style.textAlign = 'center' + checkboxHeader.style.padding = '10px' + headerRow.appendChild(checkboxHeader) + + const nameHeader = document.createElement('th') + nameHeader.textContent = '片单' + nameHeader.style.padding = '10px' + nameHeader.style.width = '40%' + headerRow.appendChild(nameHeader) + + const urlHeader = document.createElement('th') + urlHeader.textContent = '地址' + urlHeader.style.padding = '10px' + urlHeader.style.width = '40%' + headerRow.appendChild(urlHeader) + + const tbody = document.createElement('tbody') + table.appendChild(tbody) + + let currentPage = 1 + const totalItems = data.length + const totalPages = Math.ceil(totalItems / itemsPerPage) + + function generateTableData(page) { + tbody.innerHTML = '' + + const startIndex = (page - 1) * itemsPerPage + const endIndex = startIndex + itemsPerPage + + for (let i = startIndex; i < endIndex && i < data.length; i++) { + const row = document.createElement('tr') + tbody.appendChild(row) + // 序号列 + const indexCell = document.createElement('td') + indexCell.textContent = i + 1 // 显示序号,从1开始 + indexCell.style.textAlign = 'center' + indexCell.style.padding = '5px' + row.appendChild(indexCell) + const checkboxCell = document.createElement('td') + checkboxCell.style.textAlign = 'center' + checkboxCell.style.padding = '5px' + const checkbox = document.createElement('input') + checkbox.type = 'checkbox' + checkbox.id = `checkbox_${i}` + checkbox.value = i + checkboxCell.appendChild(checkbox) + row.appendChild(checkboxCell) + + const nameCell = document.createElement('td') + nameCell.textContent = data[i].name + nameCell.style.padding = '10px' + nameCell.style.borderBottom = '1px solid #ddd' + row.appendChild(nameCell) + + const urlCell = document.createElement('td') + const fullUrl = 'https://missav.com/playlists/' + data[i].key + const link = document.createElement('a') + link.textContent = fullUrl + link.href = fullUrl + link.target = '_blank' // 在新标签页中打开链接 + urlCell.appendChild(link) + urlCell.style.padding = '10px' + urlCell.style.borderBottom = '1px solid #ddd' + row.appendChild(urlCell) + } + } + + generateTableData(currentPage) + + const paginationContainer = document.createElement('div') + paginationContainer.style.marginTop = '20px' + paginationContainer.style.textAlign = 'center' + modalContainer.appendChild(paginationContainer) + + const prevButton = document.createElement('button') + prevButton.textContent = '上一页' + prevButton.style.marginRight = '10px' + prevButton.disabled = true + + const pageIndicator = document.createElement('span') + pageIndicator.style.marginRight = '10px' + updatePageIndicator() + paginationContainer.appendChild(pageIndicator) + + const nextButton = document.createElement('button') + nextButton.textContent = '下一页' + nextButton.style.marginLeft = '10px' + if (totalPages <= 1) { + nextButton.disabled = true + } + + prevButton.addEventListener('click', () => { + currentPage-- + generateTableData(currentPage) + updatePaginationButtons() + updatePageIndicator() + }) + + nextButton.addEventListener('click', () => { + currentPage++ + generateTableData(currentPage) + updatePaginationButtons() + updatePageIndicator() + }) + + function updatePaginationButtons() { + prevButton.disabled = currentPage === 1 + nextButton.disabled = currentPage === totalPages + } + + function updatePageIndicator() { + pageIndicator.textContent = `第 ${currentPage}/${totalPages} 页` + } + const selectAllButton = document.createElement('button') + selectAllButton.textContent = '全部选择' + selectAllButton.style.marginRight = '10px' + selectAllButton.style.marginTop = '20px' + selectAllButton.style.padding = '10px 20px' + selectAllButton.style.fontSize = '16px' + selectAllButton.style.backgroundColor = '#007bff' + selectAllButton.style.color = '#fff' + selectAllButton.style.border = 'none' + selectAllButton.style.borderRadius = '5px' + selectAllButton.style.cursor = 'pointer' + selectAllButton.style.float = 'left' + modalContainer.appendChild(selectAllButton) + + let selectAll = true + + selectAllButton.addEventListener('click', () => { + const checkboxes = document.querySelectorAll('input[type="checkbox"]') + checkboxes.forEach(checkbox => { + checkbox.checked = selectAll + }) + + if (selectAll) { + selectAllButton.textContent = '取消选择' + } else { + selectAllButton.textContent = '全部选择' + } + + selectAll = !selectAll + }) + // + + const confirmButton = document.createElement('button') + confirmButton.textContent = '确认选择' + confirmButton.style.marginTop = '20px' + confirmButton.style.padding = '10px 20px' + confirmButton.style.fontSize = '16px' + confirmButton.style.backgroundColor = '#007bff' + confirmButton.style.color = '#fff' + confirmButton.style.border = 'none' + confirmButton.style.borderRadius = '5px' + confirmButton.style.cursor = 'pointer' + confirmButton.style.float = 'right' + modalContainer.appendChild(confirmButton) + + document.body.appendChild(modalContainer) + + confirmButton.addEventListener('click', () => { + const checkboxes = document.querySelectorAll('input[type="checkbox"]') + let anyCheckboxChecked = false + checkboxes.forEach(checkbox => { + if (checkbox.checked) { + + const index = parseInt(checkbox.value, 10) + if (index >= 0 && index < temporaryData.length) { + // 检查 temporaryData[index] 是否为 undefined 或 null + if (temporaryData[index]) { + // 将选中的名称和URL推送到全局变量 + names.push(temporaryData[index].name) + urls.push('https://missav.com/playlists/' + temporaryData[index].key) + anyCheckboxChecked = true + } else { + console.error(`temporaryData[${index}] is undefined or null.`) + } + } else { + console.error(`Index ${index} is out of bounds for temporaryData.`) + } + } + + }) + + document.body.removeChild(modalContainer) + // document.body.removeChild(overlay); + if (anyCheckboxChecked) { + + processUrls() + window.showLogContainer() + } + + }) + } + function ini() { + delayTime = GM_getValue('delayTime', 1000) // 从GM存储中读取延迟时间 + shouldReplace = GM_getValue('shouldReplace', false) // 从GM存储中读取状态 + saveJson = GM_getValue('saveJson', false) // 从GM存储中读取状态 + useDefaultTitle = GM_getValue('useDefaultTitle', true) + pageCount = GM_getValue('pageCount', true) + saveVideoInfo = GM_getValue('saveVideoInfo', false) + saveImage = GM_getValue('saveImage', true) + downloadLogFileA = GM_getValue('downloadLogFileA', false) + savetowebdav = GM_getValue('savetowebdav', false) + webdavUrl = GM_getValue('webdavUrl', '') + webdavUsername = GM_getValue('webdavUsername', '') + webdavPassword = GM_getValue('webdavPassword', '') + + } + // 创建设置界面 + function createControl(tagName, attributes = {}, styles = {}, parent = document.body) { + const element = document.createElement(tagName) + + // 设置属性 + for (const key in attributes) { + element[key] = attributes[key] + } + + // 设置样式 + Object.assign(element.style, styles) + + // 添加到父元素 + if (parent) { + parent.appendChild(element) + } + + return element + } + + function createSettingsUI() { + const modalContainer = createControl('div', { + className: 'settings-modal' + }, { + position: 'fixed', + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + backgroundColor: 'rgba(255, 255, 255, 1)', + borderRadius: '8px', + boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)', + zIndex: '9999', + padding: '20px', + width: '400px', + maxWidth: '80%' + }) + + const title = createControl('h2', { + textContent: '设置' + }, { + textAlign: 'center' + }) + modalContainer.appendChild(title) + + // 创建控件并添加到模态框 + const controls = [ + { + type: 'checkbox', + id: 'saveImageCheckbox', + label: '下载图片', + checked: GM_getValue('saveImage', true), + onchange: function () { GM_setValue('saveImage', this.checked) } + }, + { + type: 'checkbox', + id: 'saveJsonCheckbox', + label: '下载JSON', + checked: GM_getValue('saveJson', false), + onchange: function () { GM_setValue('saveJson', this.checked) } + }, + { + type: 'checkbox', + id: 'hdImageCheckbox', + label: '下载高清大图', + checked: GM_getValue('shouldReplace', false), + onchange: function () { GM_setValue('shouldReplace', this.checked) } + }, + { + type: 'checkbox', + id: 'defaultTitleCheckbox', + label: '使用网页标题名保存', + checked: GM_getValue('useDefaultTitle', true), + onchange: function () { GM_setValue('useDefaultTitle', this.checked) } + }, + { + type: 'checkbox', + id: 'saveVideoInfoCheckbox', + label: '下载视频信息', + checked: GM_getValue('saveVideoInfo', false), + onchange: function () { GM_setValue('saveVideoInfo', this.checked) } + }, + { + type: 'checkbox', + id: 'pageCountCheckbox', + label: '自定义抓取页数', + checked: GM_getValue('pageCount', true), + onchange: function () { GM_setValue('pageCount', this.checked) } + }, + { + type: 'checkbox', + id: 'downloadLogFileA', + label: '保存下载日志', + checked: GM_getValue('downloadLogFileA', false), + onchange: function () { GM_setValue('downloadLogFileA', this.checked) } + }, + { + type: 'checkbox', + id: 'savetowebdav', + label: '上传JSON到WebDav', + checked: GM_getValue('savetowebdav', false), + onchange: function () { GM_setValue('savetowebdav', this.checked) } + }, + { + type: 'number', + id: 'delayInput', + label: '设置延迟(毫秒)', + value: GM_getValue('delayTime', 1000), + placeholder: '设置延迟(毫秒)', + onchange: function () { GM_setValue('delayTime', this.value) }, + style: { + width: '1px' // 设置输入框宽度为100% + } + }, + { + type: 'text', + id: 'webdavUrlInput', + label: 'WebDAV 网址', + value: GM_getValue('webdavUrl', ''), + placeholder: '输入WebDAV网址', + onchange: function () { GM_setValue('webdavUrl', this.value) } + }, + { + type: 'text', + id: 'webdavUsernameInput', + label: 'WebDAV 账号', + value: GM_getValue('webdavUsername', ''), + placeholder: '输入WebDAV账号', + onchange: function () { GM_setValue('webdavUsername', this.value) } + }, + { + type: 'text', + id: 'webdavPasswordInput', + label: 'WebDAV 密码', + value: GM_getValue('webdavPassword', ''), + placeholder: '输入WebDAV密码', + onchange: function () { GM_setValue('webdavPassword', this.value) } + } + ] + + controls.forEach(control => { + const input = createControl('input', { + type: control.type, + id: control.id, + checked: control.checked, + value: control.value, + placeholder: control.placeholder, + onchange: control.onchange + }, { + marginRight: '10px' + }) + + const label = createControl('label', { + textContent: control.label, + htmlFor: control.id + }, { + fontSize: '14px', + marginLeft: '5px' + }) + + modalContainer.appendChild(input) + modalContainer.appendChild(label) + modalContainer.appendChild(createControl('br')) + }) + + // 关闭按钮 + const closeButton = createControl('button', { + textContent: '关闭', + onclick: () => { + ini() + WebDAVManager.updateConfig(webdavUrl, webdavUsername, webdavPassword) + document.body.removeChild(modalContainer) + } + }, { + marginTop: '10px', + padding: '10px 20px', + fontSize: '16px', + backgroundColor: '#007bff', + color: '#fff', + border: 'none', + borderRadius: '5px', + cursor: 'pointer', + float: 'right' + }) + + modalContainer.appendChild(closeButton) + + // 将模态框添加到页面 + document.body.appendChild(modalContainer) + + // 添加移动端样式 + const mediaQuery = window.matchMedia('(max-width: 600px)') + if (mediaQuery.matches) { + modalContainer.style.width = '90%' + modalContainer.style.maxWidth = '90%' + modalContainer.style.padding = '10px' + } + } + + // 在页面加载时调用设置界面创建函数 + + + // 调用示例 + + + const WebDAVManager = (function () { + // WebDAV 配置 + let url = webdavUrl + let username = webdavUsername + let password = webdavPassword + + + // 通用 GM_xmlhttpRequest 封装函数 + function GM_xhr({ path = '/', method, success, fail, headers = {}, data, ...config }) { + + return new Promise(resolve => { + GM_xmlhttpRequest({ + url: url + path, + method, + ...config, + headers: { + 'Connection': 'Keep-Alive', // 保持连接 + 'User-Agent': 'Mozilla/5.0', // 用户代理 + 'Authorization': 'Basic ' + btoa(username + ':' + password), // 基本认证 + ...headers + }, + data, + onload: xhr => { + if (xhr.status >= 200 && xhr.status < 300) { + if (success) success(xhr) + } else { + if (fail) fail(xhr) + } + resolve(xhr) + }, + onerror: xhr => { + if (fail) fail(xhr) + resolve(xhr) + } + }) + }) + } + //登录 + async function login() { + let retryCount = 2 // 设置重试次数为2次 + + while (retryCount > 0) { + // 构建登录请求 + const LOGIN = { + method: 'PROPFIND', // 使用 PROPFIND 方法检查根目录 + path: retryCount === 2 ? '/' : '', // 根据重试次数设置 path + headers: { + 'Depth': '1', + 'Authorization': 'Basic ' + btoa(username + ':' + password), + 'Connection': 'Keep-Alive', // 保持连接 + 'User-Agent': 'Mozilla/5.0' // 用户代理 + } + } + + // 发起登录请求 + const loginResponse = await GM_xhr(LOGIN) + + // 判断登录结果 + if (loginResponse.status === 207) { + console.log('登录成功') + // 登录成功后,可以执行其他操作 + showModal('Webdav登录成功!', 1000) + return true // 返回登录成功标志 + } else { + console.error('登录失败:', loginResponse.status) + if (retryCount === 1) { + showModal('Webdav登录失败!' + loginResponse.status, 1000) + return false // 返回登录失败标志 + } else { + retryCount-- // 减少重试次数 + } + } + } + + // 如果重试次数用尽仍未登录成功,执行其他操作(可根据实际情况添加代码) + console.error('重试次数用尽,登录失败') + showModal('Webdav登录失败!重试次数用尽', 1000) + return false + } + + //刷新 + function updateConfig(newUrl, newUsername, newPassword) { + if (newUrl && newUsername && newPassword) { + url = newUrl + username = newUsername + password = newPassword + // 在这里调用登录函数 + login() + } else { + console.error('WebDAV 配置信息不完整') + } + } + // 获取 WebDAV 中指定路径下的所有文件和文件夹 + async function listFilesAndFolders(folderName) { + const path = folderName.endsWith('/') ? folderName : folderName + '/' + const PROPFIND = { + method: 'PROPFIND', + headers: { + 'Depth': '1' + }, + success: (xhr) => { + const parser = new DOMParser() + const xmlDoc = parser.parseFromString(xhr.responseText, 'text/xml') + const responses = xmlDoc.getElementsByTagNameNS('DAV:', 'response') + + let fileCount = 0 + //let fileList = `
          `; + let fileList = '' + + for (let i = 0; i < responses.length; i++) { + const href = decodeURIComponent(responses[i].getElementsByTagNameNS('DAV:', 'href')[0].textContent.trim()) + const displayName = href.substring(href.lastIndexOf('/') + 1) + const isCollection = responses[i].getElementsByTagNameNS('DAV:', 'collection').length > 0 + + if (!isCollection) { + fileList += ` +
        4. + + ${fileCount + 1}. + ${displayName} +
          + 更名 + 删除 + 下载 +
          +
          +
        5. + ` + fileCount++ + } + } + /*fileList += ` +
          +

          文件数量: ${fileCount}

          + + `;*/ + fileList += '' + + showDialog(` + 文件夹 ${folderName}
          + 文件数量: ${fileCount} +
          + `, fileList) + + }, + fail: (xhr) => { + alert('获取文件列表失败:' + xhr.status) + } + } + + await GM_xhr({ ...PROPFIND, path }) + } + + // 下载文件函数 + + // 在 WebDAV 中创建新文件夹 + async function createFolder(folderName) { + const MKCOL = { + method: 'MKCOL', + path: folderName.endsWith('/') ? folderName : folderName + '/', + success: () => { + alert('文件夹创建成功') + }, + fail: (xhr) => { + if (xhr.status === 409) { + // alert('冲突:文件夹可能已经存在或路径不正确'); + } else { + //alert('创建文件夹失败:' + xhr.status); + } + } + } + + await GM_xhr({ ...MKCOL }) + } + + // 上传文件到 WebDAV + + async function uploadFile(folderName, fileName, fileContent) { + // 检查文件是否已存在 + const HEAD = { + method: 'HEAD', + path: folderName + '/' + fileName, + success: () => { + //alert('文件已存在,无需重复上传'); + window.addToLog(fileName + '文件存在', 'info') + // 可以在这里执行文件已存在时的逻辑,比如显示提示信息或执行其他操作 + }, + fail: async (xhr) => { + if (xhr.status === 404) { + // 文件不存在,执行上传操作 + const PUT = { + method: 'PUT', + path: folderName + '/' + fileName, + data: fileContent, + success: () => { + + window.addToLog(fileName + '文件上传成功', 'info') + }, + fail: (xhr) => { + window.addToLog(fileName + '文件上传失败', 'error') + } + } + + await GM_xhr({ ...PUT }) + } else { + window.addToLog(fileName + '文件检查上传失败', 'error') + } + } + } + + await GM_xhr({ ...HEAD }) + } + + // 重命名文件 + async function renameFile(folderName, oldFileName) { + // 弹出对话框让用户输入新文件名 + const newFileName = prompt(`请输入 ${oldFileName} 的新文件名:`) + if (!newFileName) { + alert('未输入新文件名,操作已取消。') + return + } + const encodedOldFileName = encodeURIComponent(oldFileName) // 对旧文件名进行编码 + + const encodedNewFileName = encodeURIComponent(newFileName + '.json') // 对新文件名进行编码 + const sourcePath = folderName + '/' + encodedOldFileName + const destinationPath = folderName + '/' + encodedNewFileName + + const MOVE = { + method: 'MOVE', + path: sourcePath, + headers: { + 'Destination': url + destinationPath, + 'Overwrite': 'T' // 允许覆盖目标文件 + }, + success: () => { + alert(`文件 ${oldFileName} 已成功重命名为 ${newFileName}`) + listFilesAndFolders(folderName) // 刷新文件列表 + }, + fail: (xhr) => { + if (xhr.status === 409) { + alert('冲突:文件名可能已存在或路径不正确') + } else { + alert('重命名文件失败:' + xhr.status) + } + } + } + + await GM_xhr({ ...MOVE }) + } + + + // 删除文件 + async function deleteFile(folderName, fileName) { + let confirmdelete = false + if (deleteSelected) { + confirmdelete = true + } else { + confirmdelete = confirm(`确定要删除文件 ${fileName} 吗?`) + } + + if (confirmdelete) { + try { + await deleteFileFromServer(folderName, fileName) + const fileItem = document.querySelector(`a[onclick*="${fileName}"]`).closest('li') + const checkbox = fileItem.querySelector('input[type="checkbox"]') + if (checkbox && checkbox.checked) { + checkbox.checked = false // 清除选中状态 + checkbox.disabled = true // 禁止操作 + } + markItemDeleted(fileItem) + } catch (error) { + alert('删除文件失败:' + error.message) + } + } + } + function markItemDeleted(fileItem) { + // 将文件名链接标记为已删除 + const fileNameLink = fileItem.querySelector('a') + fileNameLink.style.textDecoration = 'line-through' + fileNameLink.removeAttribute('onclick') + fileNameLink.style.pointerEvents = 'none' // 不可点击 + fileNameLink.style.color = 'gray' // 设置为灰色 + + // 将后续按钮标记为已删除 + const actionButtons = fileItem.querySelectorAll('div > a') + actionButtons.forEach(button => { + button.style.textDecoration = 'line-through' + button.removeAttribute('onclick') + button.style.pointerEvents = 'none' // 不可点击 + button.style.color = 'gray' // 设置为灰色 + }) + } + // 实际删除文件的函数 + async function deleteFileFromServer(folderName, fileName) { + const DELETE = { + method: 'DELETE', + path: folderName + '/' + fileName + } + + return new Promise((resolve, reject) => { + GM_xhr({ ...DELETE, success: resolve, fail: reject }) + }) + } + + // 检查文件夹是否存在 + async function checkFolderExists(folderName) { + const HEAD = { + method: 'HEAD', + path: folderName.endsWith('/') ? folderName : folderName + '/', + success: (xhr) => { + if (xhr.status === 200) { + // alert('文件夹存在'); + } else if (xhr.status === 404) { + alert('文件夹不存在') + } else { + alert('检查文件夹状态失败:' + xhr.status) + } + }, + fail: (xhr) => { + alert('检查文件夹失败:' + xhr.status) + } + } + + await GM_xhr({ ...HEAD }) + } + + // 下载并展示文件 + async function downloadFile(folderName, fileName, zip = null) { + return new Promise((resolve, reject) => { + // 发起 GET 请求下载文件内容 + const GET = { + method: 'GET', + path: folderName + '/' + fileName, + success: (xhr) => { + const fileContent = xhr.responseText + const jsonData = JSON.parse(fileContent) + const content = generateJsonIndexContent(jsonData) + + if (zip) { + // 如果传入了压缩包实例,则将文件内容添加到压缩包中 + const sanitizedFileName = sanitizeFileName(fileName.replace('.json', '')) + '.html' + zip.file(sanitizedFileName, content) + resolve() + } else { + // 否则直接下载文件 + const blob = new Blob([content], { type: 'text/html' }) + const htmlUrl = URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = htmlUrl + a.download = sanitizeFileName(fileName.replace('.json', '')) + '.html' + a.click() + resolve() + } + }, + fail: (xhr) => { + reject(new Error('下载文件失败:' + xhr.status)) + } + } + + GM_xhr({ ...GET }) + }) + } + + + + async function downloadAndDisplayFile(folderName, fileName) { + const GET = { + method: 'GET', + path: folderName + '/' + fileName, + success: (xhr) => { + try { + const fileContent = xhr.responseText + const jsonData = JSON.parse(fileContent) + const content = generateJsonIndexContent(jsonData) + + // 打开一个新的浏览器标签页显示内容 + const dataUrl = 'data:text/html;charset=utf-8,' + encodeURIComponent(content) + GM_openInTab(dataUrl) + } catch (e) { + alert('解析 JSON 文件失败:' + e.message) + } + }, + fail: (xhr) => { + alert('下载文件失败:' + xhr.status) + } + } + + await GM_xhr({ ...GET }) + } + //我是你爹啊 + // 显示对话框 + function showDialog(title, fileList, folderName) { + // 添加CSS样式 + const style = document.createElement('style') + style.textContent = ` +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + z-index: 9998; +} + +.dialog { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: #fff; + padding: 20px; + border-radius: 10px; + width: 80%; + max-height: 80%; + overflow-y: auto; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); + z-index: 9999; +} + +.dialog-title { + margin-bottom: 20px; +} + +.dialog-button { + padding: 10px 20px; + border: none; + border-radius: 5px; + cursor: pointer; + margin-bottom: 20px; +} + +.select-button { + background-color: #007BFF; + color: #fff; +} + +.delete-button { + background-color: #dc3545; + color: #fff; + margin-left: 10px; +} + +.select-all-button { + background-color: #28a745; + color: #fff; + margin-left: 10px; +} + +.download-button { + background-color: #007BFF; + color: #fff; + margin-left: 10px; +} + +.search-button { + background-color: #6c757d; + color: #fff; + margin-left: 10px; + border: none; + border-radius: 5px; + cursor: pointer; +} + .close-x-button { + background-color: #6c757d; + color: red; + margin-left: 10px; + border: none; + border-radius: 5px; + cursor: pointer; + } + +.search-button:hover { + background-color: #495057; +} + +.close-button { + background-color: #007BFF; + color: #fff; + margin-top: 20px; +} + +.file-list { + list-style-type: none; + padding: 0; +} + +.file-action { + margin-right: 10px; + float: left; + color: blue; + cursor: pointer; +} + +.file-actions-container { + float: right; +} + +.clear-float { + clear: both; +} + +.file-item { + border-bottom: 1px solid #ddd; + padding: 10px 0; + display: flex; + align-items: center; +} + +.file-checkbox { + margin-right: 10px; +} + +.file-link { + margin-right: 10px; + color: blue; + flex-grow: 1; +} + +.file-actions { + display: flex; + gap: 10px; +} + +.file-action { + color: #007BFF; + cursor: pointer; +} + +.custom-hr { + height: 1px; + background-color: #007BFF; + margin: 20px 0; +} + +.file-action:hover { + text-decoration: underline; +} + +@media (max-width: 600px) { + .dialog-button { + padding: 5px 10px; + font-size: 12px; + margin-bottom: 10px; + } + + .delete-button, + .download-button, + .select-all-button, + .close-x-button, + .search-button { + margin-left: 0; + } + + .button-container { + right: 5px; + } +} + + ` + document.head.appendChild(style) + + // 创建对话框 + const dialog = document.createElement('div') + dialog.className = 'dialog' + // 创建遮罩 + + + function close() { + document.body.removeChild(dialog) + + } + + // 标题 + const titleElement = document.createElement('h1') + titleElement.innerHTML = title + titleElement.className = 'dialog-title' + dialog.appendChild(titleElement) + + + const buttonContainer = document.createElement('div') + const buttonConfigs = [ + { text: '选择列表', className: 'dialog-button select-button', onclick: toggleSelection }, + { text: '搜索列表', className: 'dialog-button search-button', onclick: toggleSearch }, + { text: '关闭窗口', className: 'dialog-button close-x-button', onclick: close }, + { text: '全部选中', className: 'dialog-button select-all-button', onclick: toggleSelectAll }, + { text: '删除选中', className: 'dialog-button delete-button', onclick: deleteSelectedFiles }, + { text: '下载选中', className: 'dialog-button download-button', onclick: downloadSelectedFiles } + + // 可以添加更多按钮配置 + ] + let count = 0 // 计数器,用于控制显示状态 + buttonConfigs.forEach(config => { + const button = document.createElement('button') + button.textContent = config.text + button.className = config.className + button.onclick = config.onclick + + if (count < 3) { + button.style.display = 'inline-block' // 前两个按钮初始可见 + } else { + button.style.display = 'none' // 后面的按钮初始隐藏 + } + + buttonContainer.appendChild(button) + count++ // 每创建一个按钮,计数器加一 + }) + // 将按钮容器添加到对话框中 + dialog.appendChild(buttonContainer) + + // 文件列表 + const fileListContainer = document.createElement('ul') + fileListContainer.className = 'file-list' + fileListContainer.innerHTML = fileList + dialog.appendChild(fileListContainer) + + // 添加到body + + document.body.appendChild(dialog) + let selectButtonInitialTop = 0 + let selectAllButton = document.querySelector('.select-all-button') + let searchButton = document.querySelector('.search-button') + let downloadSelectedButton = document.querySelector('.download-button') + let deleteSelectedButton = document.querySelector('.delete-button') + let selectButton = document.querySelector('.select-button') + let closeXButton = document.querySelector('.close-x-button') + let scrollTimeout = 0 // 定义全局变量存储定时器 + // 记录选择按钮的初始位置 + if (selectButton) { + selectButtonInitialTop = selectButton.offsetTop + } + + // 监听对话框的滚动事件 + dialog.addEventListener('scroll', function () { + clearTimeout(scrollTimeout) + const buttons = [ + { button: selectButton, offsetHeight: true }, + { button: selectAllButton, offsetHeight: true }, + + { button: deleteSelectedButton, offsetHeight: true }, + { button: downloadSelectedButton, offsetHeight: true }, + { button: searchButton, offsetHeight: true }, + { button: closeXButton, offsetHeight: true } + + + // 添加更多按钮对象,如果有的话 + ] + scrollTimeout = setTimeout(() => { + if (buttons.every(buttonObj => buttonObj.button)) { + const dialogRect = dialog.getBoundingClientRect() + const fileListRect = fileListContainer.getBoundingClientRect() + const newButtonTopBase = Math.max(fileListRect.top, dialog.scrollTop) + let newButtonTop = newButtonTopBase + + for (const { button, offsetHeight } of buttons) { + if (button) { + button.style.position = dialog.scrollTop === 0 ? 'static' : 'absolute' + button.style.top = `${newButtonTop}px` + button.style.right = '10px' + if (offsetHeight) { + newButtonTop += button.offsetHeight + } + } + } + } + }, 300) // 设置 300 毫秒的超时 + }) + + + // 获取所有复选框 + const checkboxes = fileListContainer.querySelectorAll('input[type="checkbox"]') + + // 初始隐藏复选框 + checkboxes.forEach(checkbox => { + checkbox.style.display = 'none' + }) + //选中全部 + function toggleSelectAll() { + const checkboxes = document.querySelectorAll('input[name="fileCheckbox"]') + const allChecked = Array.from(checkboxes).every(checkbox => checkbox.checked) + + checkboxes.forEach(checkbox => { + checkbox.checked = !allChecked + }) + + // 切换按钮文本和背景颜色 + if (allChecked) { + selectAllButton.textContent = '全部选中' + selectAllButton.style.backgroundColor = '' // 恢复默认背景颜色 + } else { + selectAllButton.textContent = '全部取消选中' + selectAllButton.style.backgroundColor = 'red' // 改为红色背景 + } + } + //搜索 + //--------------- + function toggleSearch() { + if (searchButton.textContent === '搜索列表') { + // 如果当前是搜索状态,则进行搜索 + const searchTerm = prompt('请输入搜索内容:') // 弹出输入框等待用户输入搜索内容 + if (searchTerm !== null) { // 用户点击了确定按钮 + filterFiles(searchTerm) // 调用过滤文件函数,传入搜索关键词 + searchButton.textContent = '回到列表' // 将搜索按钮文本改为"Back" + } + } else { + // 如果当前是Back状态,则恢复初始文件列表 + resetFileList() + } + } + + function filterFiles(searchTerm) { + const files = Array.from(fileListContainer.children) // 获取文件列表的所有子元素(文件项) + let matchCount = 0 // 初始化匹配数量为 0 + + // 遍历文件列表,根据搜索关键词过滤显示符合条件的文件项 + files.forEach(file => { + const fileName = file.querySelector('.file-link').textContent.toLowerCase() // 获取文件名并转换为小写 + if (fileName.includes(searchTerm.toLowerCase())) { + file.style.display = '' // 匹配到的文件项显示 + matchCount++ // 匹配数量加一 + } else { + file.style.display = 'none' // 不匹配的文件项隐藏 + } + }) + + // 更新文件数量标签内容 + const fileCountLabel = document.getElementById('fileCountLabel') + if (fileCountLabel) { + fileCountLabel.textContent = '搜索数量: ' + } + + // 更新包裹文件数量的元素内容 + const fileCountElement = document.querySelector('.file-count') + if (fileCountElement) { + fileCountElement.textContent = matchCount + } + } + + + // 恢复初始文件列表函数 + function resetFileList() { + const files = Array.from(fileListContainer.children) // 获取文件列表的所有子元素(文件项) + files.forEach(file => { + file.style.display = '' // 显示所有文件项 + }) + searchButton.textContent = '搜索列表' // 恢复搜索按钮文本为"搜索" + + // 更新文件数量标签内容为 "文件数量:" + const fileCountLabel = document.getElementById('fileCountLabel') + if (fileCountLabel) { + fileCountLabel.textContent = '文件数量:' + } + + // 更新包裹文件数量的元素内容为当前文件数量 + const fileCountElement = document.querySelector('.file-count') + if (fileCountElement) { + const currentFileCount = files.length // 获取当前文件数量 + fileCountElement.textContent = currentFileCount + } + } + //搜索结束 + //--------------- + + // 选择列表 + function toggleSelection() { + + checkboxes.forEach(checkbox => { + checkbox.style.display = checkbox.style.display === 'none' ? 'inline-block' : 'none' + checkbox.checked = false // 取消复选框的选中状态 + }) + + // 切换显示“删除选中”和“下载选中”按钮 + deleteSelectedButton.style.display = deleteSelectedButton.style.display === 'none' ? 'inline-block' : 'none' + downloadSelectedButton.style.display = downloadSelectedButton.style.display === 'none' ? 'inline-block' : 'none' + selectAllButton.style.display = selectAllButton.style.display === 'none' ? 'inline-block' : 'none' + selectButton.textContent = downloadSelectedButton.style.display === 'none' ? '选择列表' : '取消选择' + } + + } + //选中下载 + async function downloadSelectedFiles() { + // 获取所有选中的复选框 + const checkboxes = document.querySelectorAll('input[name="fileCheckbox"]:checked') + if (checkboxes.length === 0) { + showModal('没有选中的文件', 2000) + return + } + // 创建一个 JSZip 实例 + const zip = new JSZip() + + try { + // 遍历所有选中的复选框 + for (const checkbox of checkboxes) { + // 获取文件项信息 + const fileItem = checkbox.closest('li') + const fileName = fileItem.querySelector('a[data-display-name]').dataset.displayName + + // 调用 downloadFile 函数,将文件添加到压缩包中 + await downloadFile(webdavfold, fileName, zip) + } + + // 生成 ZIP 文件 + const zipBlob = await zip.generateAsync({ type: 'blob' }) + + // 创建下载链接并触发下载 + const zipUrl = URL.createObjectURL(zipBlob) + const a = document.createElement('a') + a.href = zipUrl + a.download = 'selected_files.zip' + a.click() + + console.log('压缩包下载完成') + showModal('下载选中完成:', 2000) + } catch (error) { + console.error('下载选中文件失败:', error) + showModal('下载选中文件失败: ' + error.message, 2000) + + } + } + + + //选中删除 + function deleteSelectedFiles() { + // 获取所有选中的复选框 + const selectedCheckboxes = document.querySelectorAll('input[name="fileCheckbox"]:checked') + + if (selectedCheckboxes.length === 0) { + alert('没有选中文件') + return + } + + // 弹出确认删除的提示框 + const confirmDelete = confirm('确定要删除选中的文件吗?') + + if (confirmDelete) { + deleteSelected = true + selectedCheckboxes.forEach(checkbox => { + const fileItem = checkbox.closest('li') + const deleteButton = fileItem.querySelector('a[onclick*="deleteFile"]') + + // 调试日志 + console.log('fileItem:', fileItem) + console.log('deleteButton:', deleteButton) + + // 获取文件名 + const fileName = fileItem.querySelector('a[data-display-name]').dataset.displayName + + // 添加调试日志 + console.log('Deleting file:', fileName) + + // 触发删除按钮的点击事件 + deleteButton.click() + //deleteFile(webdavfold,fileName); + + // 将文件项标记为已删除 + // markItemDeleted(fileItem); + }) + deleteSelected = false + console.log('删除选中文件') + } + } + + + // 将 API 方法公开 + return { + listFilesAndFolders, + updateConfig, + createFolder, + uploadFile, + renameFile, + deleteFile, + downloadFile, + downloadAndDisplayFile, + checkFolderExists + } + })() + + // 将库暴露到全局作用域 + unsafeWindow.WebDAVManager = WebDAVManager + + // 示例用法:列出文件和文件夹,创建新文件夹,上传文件,删除文件 + if (!url || !username || !password) { + console.error('WebDAV 配置更新失败:缺少 URL、用户名或密码') + return + } + WebDAVManager.updateConfig(webdavUrl, webdavUsername, webdavPassword) + WebDAVManager.createFolder(webdavfold) + WebDAVManager.checkFolderExists(webdavfold) + + //WebDAVManager.uploadFile(webdavfold, 'nidie.txt', '这是 example.txt 的内容'); + // WebDAVManager.deleteFile('Missav保存', 'example.txt'); + +})(); + + diff --git a/Script details/no-zh-terminator/Change history/README.md b/no-zh-terminator/Change history/README.md similarity index 100% rename from Script details/no-zh-terminator/Change history/README.md rename to no-zh-terminator/Change history/README.md diff --git a/no-zh-terminator/README.md b/no-zh-terminator/README.md new file mode 100644 index 000000000..99324944d --- /dev/null +++ b/no-zh-terminator/README.md @@ -0,0 +1,237 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          外语终结者

          +

          「 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          🛠️ 外语终结者 更新日志

          +

          📅 2024/9/24 18:59 - Ver 1.4.0.0

          +

          修复: 修复被翻译的文本过长时翻译后丢失内容的问题

          +
          + +
          + + + +

          使用的Goolge翻译.无法连接Google的请不要下载

          + + + +# 外语终结者 + +**版本:** 1.3.98 +**作者:** [人民的勤务员](https://greasyfork.org/zh-CN/users/1169082) +**描述:** 识别非中文字符,如果长度大于5且翻译文本中不含中文,则替换为中文。 + + + +## 功能说明 + +本脚本能够识别网页上的非中文字符,并自动翻译为中文。如果检测到字符长度大于5且翻译后的文本中不含中文,则会替换为中文翻译。以下是一些关键功能: + +- **站点控制:** 用户可以通过菜单命令来控制翻译功能在特定站点的启用或禁用。 + + + +## 使用说明 + +- 在任何网页上自动启用翻译功能。 +- 可通过用户菜单控制翻译功能的启用和禁用。 +- 编辑生效站点列表,定制哪些站点启用翻译功能。 + + + +## 配置和定制 + +用户可以通过油猴菜单命令进行以下操作: + +- **添加/移出翻译:** 选择当前站点是否启用翻译。 +- **编辑生效站点:** 手动编辑站点列表,定制翻译功能。 + + + +## 使用前: + +![bf.png](https://s2.loli.net/2024/08/24/kuC7yUIwPmcRje8.png) + + +## 使用后: + +![af.png](https://s2.loli.net/2024/08/24/nYrsvgqNukK1ADZ.png) + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/no-zh-terminator.user.js b/no-zh-terminator/no-zh-terminator.user.js similarity index 79% rename from no-zh-terminator.user.js rename to no-zh-terminator/no-zh-terminator.user.js index eb9aa1662..565beebda 100644 --- a/no-zh-terminator.user.js +++ b/no-zh-terminator/no-zh-terminator.user.js @@ -1,21 +1,23 @@ // ==UserScript== -// @name 外语终结者 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 1.4.0.0 -// @description 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 -// @license MIT -// @author 人民的勤务员 -// @match *://*/* -// @grant GM_xmlhttpRequest -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAzFBMVEUAAADqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTIn////yp7387vL2zdjvka7uian99ff30dv52eH++Pr64ujwnLXtgKPyrL/rVY32yNT1xtPrXpHrWY764ef99/j++vvqUIr65Or53+bwm7TugqTtfKHteqD1wc/88fT2ytX76Oz41N30u8vxpLvzscPsapdcPEFQAAAAHXRSTlMA2JQoSQiLNvfnfz8Q8My5sW/fX1ROGr+hmCAbpYFuRDsAAAOsSURBVHja7dtrU9pAFMbxVYvi/X7vWQLBEA0QInewivX7f6dqu7OHsJDNMrN7pmN+L8U2/4aHRNrCFlzt/7Br54CtVLq82QX7jrZ3lh/+1PrRseGSKX6cgUvXdyxtGxw7vEid/mNwb4+hE6BwSnT+0b44/j4QORPXhA2gssm+nAOZ8h2eABrbjLEdILRL9xLAF8IRkMCrURkonbAtILVRBOQLmNSED9CwFFDlQgU0ioBvHOB7KWEwHcZOA2pc0X2rEQWgZEQcwLuznnnAR2XRgAtV5SEMWCGIjQNq3ID+F/Vj4gAe9IgD+Iw6oDtyEBD7KcPpC0eJ/QBVL2pwyXcYgMZ1+V1vJAEwbsgVdNYK8KqCx4VBVejmCYBIdg7XCghWX4rruQJ6colTmgCY4m9FEzDkQkgU4Ms5FQFFQBFQBKwVED4KAy60xReGjXwBI08YOL4dq4qAbxTQrgsBTUDzWT40IQmIuNQmCQi5VO+sGTB5WORxIVQegrQnPued4C+pfvE5ifuADk4QZ+gyIOIpbecBIU957jgNwAniDF0G4ARR4jQAJ4gmTgMirmg5DQjl+F7l1bDpMAAn2Ipwhg4DcIJPcQNn6CygKQ8aAlQ1MzQLwB8y3nNNsDL/dLRd/bMdTrDxNbx+1gwtBKT+zMr5UNgIaOEE4VM8twiFjYDm4gFxhmNQ6QMGnjAClGuCkfKUrBXgccFfZ4KQmmHPZoB6FVzysrQdoE4wPcPEfkBHHuylIvVxhtYDIp6pZT0g5JnqTcsBI65RsRzQ4hqJpQCcoM7ENACf1UfQqnCtlnFAoLmQKrG6GZoGTOULu6e/CuZQMQ0Y4s0l/wQfqovkOgamAXFX3l3GunfEGVt/wBkaBsAbPn/ZBZWs0+zjDE0DfC41oowd4G33ednQXnGGhgGQcPTSHvop8fIbseo3nh/TgFGXr1ZbfiNWxThD0wCY5QnACYagUH42NAvoBVkB6gR1W2qbBkDc1wRoJogzxO8wCoA40AQoE9TM0DQAerPuigD1HbH+XpnoA1SjJCugk+f9D0aODQKQ/9ZdEqCdIBrhDI0CUGc4DUIvxReXek94xYFlvMvqiy/8f/+rVioCioAiwEJACUhdk33IBj9mcwOULhi7BELlA8ZKh0DnhH3aAxL4ebsDulNwwv46BSLlLfbPMdA4ZcLBGVD4yaStXXDvuMTQ/RG4dlti80qb4NThOVu043CK5c0rhjDh1s0UNvbw8ErD+famXXsX92zeHzuqGriI4sATAAAAAElFTkSuQmCC -// @iconbak https://immersive-translate.owenyoung.com/favicon.png -// @grant GM_getValue -// @grant GM_addStyle -// @grant GM_setValue -// @grant GM_registerMenuCommand -// @connect translate.googleapis.com -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts +// @name 外语终结者 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @version 1.4.0.0 +// @description 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +// @name:zh-CN 外语终结者 +// @description:zh-CN 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +// @license MIT +// @author 人民的勤务员 +// @match *://*/* +// @grant GM_xmlhttpRequest +// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAzFBMVEUAAADqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTInqTIn////yp7387vL2zdjvka7uian99ff30dv52eH++Pr64ujwnLXtgKPyrL/rVY32yNT1xtPrXpHrWY764ef99/j++vvqUIr65Or53+bwm7TugqTtfKHteqD1wc/88fT2ytX76Oz41N30u8vxpLvzscPsapdcPEFQAAAAHXRSTlMA2JQoSQiLNvfnfz8Q8My5sW/fX1ROGr+hmCAbpYFuRDsAAAOsSURBVHja7dtrU9pAFMbxVYvi/X7vWQLBEA0QInewivX7f6dqu7OHsJDNMrN7pmN+L8U2/4aHRNrCFlzt/7Br54CtVLq82QX7jrZ3lh/+1PrRseGSKX6cgUvXdyxtGxw7vEid/mNwb4+hE6BwSnT+0b44/j4QORPXhA2gssm+nAOZ8h2eABrbjLEdILRL9xLAF8IRkMCrURkonbAtILVRBOQLmNSED9CwFFDlQgU0ioBvHOB7KWEwHcZOA2pc0X2rEQWgZEQcwLuznnnAR2XRgAtV5SEMWCGIjQNq3ID+F/Vj4gAe9IgD+Iw6oDtyEBD7KcPpC0eJ/QBVL2pwyXcYgMZ1+V1vJAEwbsgVdNYK8KqCx4VBVejmCYBIdg7XCghWX4rruQJ6colTmgCY4m9FEzDkQkgU4Ms5FQFFQBFQBKwVED4KAy60xReGjXwBI08YOL4dq4qAbxTQrgsBTUDzWT40IQmIuNQmCQi5VO+sGTB5WORxIVQegrQnPued4C+pfvE5ifuADk4QZ+gyIOIpbecBIU957jgNwAniDF0G4ARR4jQAJ4gmTgMirmg5DQjl+F7l1bDpMAAn2Ipwhg4DcIJPcQNn6CygKQ8aAlQ1MzQLwB8y3nNNsDL/dLRd/bMdTrDxNbx+1gwtBKT+zMr5UNgIaOEE4VM8twiFjYDm4gFxhmNQ6QMGnjAClGuCkfKUrBXgccFfZ4KQmmHPZoB6FVzysrQdoE4wPcPEfkBHHuylIvVxhtYDIp6pZT0g5JnqTcsBI65RsRzQ4hqJpQCcoM7ENACf1UfQqnCtlnFAoLmQKrG6GZoGTOULu6e/CuZQMQ0Y4s0l/wQfqovkOgamAXFX3l3GunfEGVt/wBkaBsAbPn/ZBZWs0+zjDE0DfC41oowd4G33ednQXnGGhgGQcPTSHvop8fIbseo3nh/TgFGXr1ZbfiNWxThD0wCY5QnACYagUH42NAvoBVkB6gR1W2qbBkDc1wRoJogzxO8wCoA40AQoE9TM0DQAerPuigD1HbH+XpnoA1SjJCugk+f9D0aODQKQ/9ZdEqCdIBrhDI0CUGc4DUIvxReXek94xYFlvMvqiy/8f/+rVioCioAiwEJACUhdk33IBj9mcwOULhi7BELlA8ZKh0DnhH3aAxL4ebsDulNwwv46BSLlLfbPMdA4ZcLBGVD4yaStXXDvuMTQ/RG4dlti80qb4NThOVu043CK5c0rhjDh1s0UNvbw8ErD+famXXsX92zeHzuqGriI4sATAAAAAElFTkSuQmCC +// @iconbak https://immersive-translate.owenyoung.com/favicon.png +// @grant GM_getValue +// @grant GM_addStyle +// @grant GM_setValue +// @grant GM_registerMenuCommand +// @connect translate.googleapis.com +// @supportURL https://github.com/ChinaGodMan/UserScripts/issues +// @homepageURL https://github.com/ChinaGodMan/UserScripts // ==/UserScript== //https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=zh-CN&dj=1&dt=t&dt=rm&q=你好 (function () { @@ -74,7 +76,6 @@ location.reload() } } - var skipClasses = ['prettyprint', 'linenums', 'lang-js'] function shouldSkipElement(element) { // 跳过类名包含 "prettyprint"、"linenums" 和 "lang-js" 的元素 if (element.classList.contains('prettyprint') || @@ -199,8 +200,8 @@ url: api + buildQueryString(params), onload: function (response) { try { - var data = JSON.parse(response.responseText.replace("'", '\u2019')) - var translatedText = data[0].reduce((acc, item) => acc + item[0], ''); + var data = JSON.parse(response.responseText.replace('\'', '\u2019')) + var translatedText = data[0].reduce((acc, item) => acc + item[0], '') showTranslation(node, text, translatedText) // 标记该节点已经翻译过 translatedNodes[node.textContent] = true @@ -253,7 +254,7 @@ textColor = textColor || 'rgb(255, 255, 255)' var m = document.createElement('div') m.innerHTML = msg - m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: " + textColor + ";line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 95%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: " + backgroundColor + ";font-size: 16px;" + m.style.cssText = 'max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: ' + textColor + ';line-height: 40px;text-align: center;border-radius: 12px;position: fixed;top: 95%;left: 50%;transform: translate(-50%, -50%);z-index: 2147483647;background: ' + backgroundColor + ';font-size: 16px;' document.body.appendChild(m) setTimeout(function () { var d = 0.5 diff --git a/Script details/no-zh-terminator/preview/af.png b/no-zh-terminator/preview/af.png similarity index 100% rename from Script details/no-zh-terminator/preview/af.png rename to no-zh-terminator/preview/af.png diff --git a/Script details/no-zh-terminator/preview/bf.png b/no-zh-terminator/preview/bf.png similarity index 100% rename from Script details/no-zh-terminator/preview/bf.png rename to no-zh-terminator/preview/bf.png diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..bb4c0e787 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1087 @@ +{ + "name": "UserScripts", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "eslint": "^9.16.0", + "eslint-plugin-json": "^4.0.1", + "husky": "^9.1.7", + "prettier": "^3.4.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.5", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-4.0.1.tgz", + "integrity": "sha512-3An5ISV5dq/kHfXdNyY5TUe2ONC3yXFSkLX2gu+W8xAhKhfvrRvkSAeKXCxZqZ0KJLX15ojBuLPyj+UikQMkOA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true + }, + "node_modules/vscode-nls": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..5e3cc514a --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "homepage": "https://github.com/ChinaGodMan/UserScripts", + "devDependencies": { + "eslint": "^9.16.0", + "eslint-plugin-json": "^4.0.1", + "husky": "^9.1.7", + "prettier": "^3.4.2" + }, + "scripts": { + "lint": "eslint \"**/*.{js,jsx,mjs}\"", + "lint:all": "eslint .", + "lint:fix": "eslint \"**/*.{js,jsx,mjs}\" --fix --cache", + "lint:fix-all": "eslint . --fix" + } +} diff --git a/popup-window.user.js b/popup-window.user.js deleted file mode 100644 index 6b831dc2a..000000000 --- a/popup-window.user.js +++ /dev/null @@ -1,910 +0,0 @@ -// ==UserScript== -// @name Small Window Preview -// @name:zh-CN 小窗预览 -// @description:zh-CN 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. -// @name:zh 小窗预览 -// @description:zh 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. -// @name:ar معاينة نافذة صغيرة -// @description:ar افتح الرابط في النافذة المنبثقة عند سحب الرابط,وتقديم معاينة قبل الافتتاح,يستخدم Edge تكنولوجيا ما قبل القراءة。وفي نفس الوقت، أضف تأثير الأكريليك خلف النافذة الصغيرة عند فتحها.。 -// @name:bg Визуализация на малък прозорец -// @description:bg Отваряне на връзката в изскачащ прозорец при плъзгане на връзката,и предоставете визуализация преди отваряне,използване Edge технология за предварително четене。В същото време добавете акрилен ефект зад малкото прозорче, когато се отвори.。 -// @name:cs Náhled malého okna -// @description:cs Otevřít odkaz ve vyskakovacím okně při přetahování odkazu,a před otevřením poskytněte náhled,použití Edge technologie předběžného čtení。Zároveň přidejte akrylový efekt za malé okno při jeho otevření.。 -// @name:da Forhåndsvisning af lille vindue -// @description:da Åbn link i pop op-vindue, når du trækker link,og giv en forhåndsvisning inden åbning,bruge Edge pre-reading teknologi。Tilføj samtidig en akryleffekt bag det lille vindue, når det åbnes.。 -// @name:de Kleine Fenstervorschau -// @description:de Öffnen Sie den Link im Popup-Fenster, wenn Sie den Link ziehen,und stellen Sie vor dem Öffnen eine Vorschau bereit,verwenden Edge Vorlesetechnologie。Gleichzeitig entsteht hinter dem kleinen Fenster beim Öffnen ein Acryleffekt.。 -// @name:el Προεπισκόπηση μικρού παραθύρου -// @description:el Άνοιγμα συνδέσμου στο αναδυόμενο παράθυρο κατά τη μεταφορά του συνδέσμου,και παρέχετε μια προεπισκόπηση πριν από το άνοιγμα,χρήση Edge τεχνολογία προ-ανάγνωσης。Ταυτόχρονα, προσθέστε ένα ακρυλικό εφέ πίσω από το μικρό παράθυρο όταν ανοίγει.。 -// @name:en Small window preview -// @description:en Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 -// @name:eo Malgranda fenestro antaŭrigardo -// @description:eo Malfermu ligilon en ŝprucfenestro dum trenado de ligilo,kaj provizi antaŭrigardon antaŭ malfermo,uzi Edge antaŭlega teknologio。Samtempe, aldonu akrilan efikon malantaŭ la malgranda fenestro kiam ĝi estas malfermita.。 -// @name:es Vista previa de ventana pequeña -// @description:es Abrir enlace en ventana emergente al arrastrar enlace,y proporcionar una vista previa antes de abrir,usar Edge tecnología de prelectura。Al mismo tiempo, agregue un efecto acrílico detrás de la pequeña ventana cuando esté abierta.。 -// @name:fi Pienen ikkunan esikatselu -// @description:fi Avaa linkki ponnahdusikkunassa, kun vedät linkkiä,ja anna esikatselu ennen avaamista,käyttää Edge esilukutekniikka。Lisää samalla akryyliefekti pienen ikkunan taakse, kun se avataan.。 -// @name:fr Aperçu dans une petite fenêtre -// @description:fr Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 -// @name:he תצוגה מקדימה של חלון קטן -// @description:he פתח קישור בחלון קופץ בעת גרירת קישור,ולספק תצוגה מקדימה לפני הפתיחה,לְהִשְׁתַמֵשׁ Edge טכנולוגיית טרום קריאה。במקביל, הוסף אפקט אקרילי מאחורי החלון הקטן כאשר הוא נפתח.。 -// @name:hr Pregled malog prozora -// @description:hr Otvori vezu u skočnom prozoru prilikom povlačenja veze,i pružiti pregled prije otvaranja,koristiti Edge tehnologija predčitanja。U isto vrijeme dodajte akrilni efekt iza prozora kada se otvori.。 -// @name:hu Kis ablak előnézet -// @description:hu Link megnyitása a felugró ablakban a hivatkozás húzásakor,és adjon előnézetet megnyitás előtt,használat Edge előolvasási technológia。Ugyanakkor a kis ablak mögé, amikor kinyitják, adjunk hozzá akril hatást.。 -// @name:id Pratinjau jendela kecil -// @description:id Buka tautan di jendela popup saat menyeret tautan,dan memberikan pratinjau sebelum dibuka,menggunakan Edge teknologi pra-membaca。Sekaligus menambahkan efek akrilik di belakang jendela kecil saat dibuka.。 -// @name:it Anteprima in una piccola finestra -// @description:it Apri il collegamento nella finestra popup durante il trascinamento del collegamento,e fornire un’anteprima prima dell’apertura,utilizzo Edge tecnologia di prelettura。Allo stesso tempo, aggiungi un effetto acrilico dietro la finestrella quando è aperta.。 -// @name:ja 小さなウィンドウでプレビュー -// @description:ja リンクをドラッグするとポップアップ ウィンドウでリンクが開きます,開く前にプレビューを提供します,使用 Edge 先読み技術。同時に、開いたときの小窓の後ろにアクリル効果を追加します。。 -// @name:ka მცირე ფანჯრის გადახედვა -// @description:ka გახსენით ბმული ამომხტარ ფანჯარაში ბმულის გადატანისას,და მიაწოდეთ გადახედვა გახსნამდე,გამოყენება Edge წინასწარი კითხვის ტექნოლოგია。ამავდროულად დაამატეთ აკრილის ეფექტი პატარა ფანჯრის უკან, როდესაც ის გაიხსნება.。 -// @name:ko 작은 창 미리보기 -// @description:ko 링크 드래그 시 팝업창에서 링크 열기,열기 전에 미리보기를 제공하세요.,사용 Edge 미리 읽는 기술。동시에 작은 창을 열 때 뒤에 아크릴 효과를 추가합니다.。 -// @name:nl Voorbeeld in klein venster -// @description:nl Open de link in het pop-upvenster tijdens het slepen van de link,en geef een voorbeeld voordat u het opent,gebruik Edge technologie voor voorlezen。Voeg tegelijkertijd een acryleffect toe achter het kleine raam wanneer dit geopend is.。 -// @name:nb Forhåndsvisning av lite vindu -// @description:nb Åpne lenken i popup-vinduet når du drar lenken,og gi en forhåndsvisning før åpning,bruk Edge førleseteknologi。Legg samtidig til en akryleffekt bak det lille vinduet når det åpnes.。 -// @name:pl Mały podgląd okna -// @description:pl Otwórz łącze w wyskakującym oknie podczas przeciągania łącza,i udostępnij podgląd przed otwarciem,używać Edge technologia wstępnego odczytu。Jednocześnie dodaj efekt akrylu za małym oknem, gdy jest ono otwarte.。 -// @name:pt-BR Pré-visualização em janela pequena -// @description:pt-BR Abra o link na janela pop-up ao arrastar o link,e forneça uma prévia antes de abrir,usar Edge tecnologia de pré-leitura。Ao mesmo tempo, adicione um efeito acrílico atrás da pequena janela quando ela for aberta.。 -// @name:ro Previzualizare fereastră mică -// @description:ro Deschideți linkul în fereastra pop-up când trageți linkul,și oferă o previzualizare înainte de deschidere,utilizare Edge tehnologie de pre-lectura。În același timp, adăugați un efect acrilic în spatele ferestrei mici atunci când este deschisă.。 -// @name:ru Предварительный просмотр в небольшом окне -// @description:ru Открыть ссылку во всплывающем окне при перетаскивании ссылки,и предоставьте предварительный просмотр перед открытием,использовать Edge технология предварительного чтения。В то же время добавьте акриловый эффект за маленьким окном, когда оно открыто.。 -// @name:sk Ukážka malého okna -// @description:sk Otvoriť odkaz vo vyskakovacom okne pri presúvaní odkazu,a pred otvorením poskytnite náhľad,použitie Edge technológia predbežného čítania。Zároveň pridajte akrylový efekt za malé okno, keď je otvorené.。 -// @name:sr Преглед малог прозора -// @description:sr Отворите везу у искачућем прозору када превлачите везу,и обезбедите преглед пре отварања,користити Edge технологија предчитања。Истовремено, додајте акрилни ефекат иза малог прозора када се отвори.。 -// @name:sv Litet fönster förhandsvisning -// @description:sv Öppna länken i popup-fönstret när du drar länken,och ge en förhandstitt innan du öppnar,använda Edge förläsningsteknik。Lägg samtidigt till en akryleffekt bakom det lilla fönstret när det öppnas.。 -// @name:th การแสดงตัวอย่างหน้าต่างขนาดเล็ก -// @description:th เปิดลิงก์ในหน้าต่างป๊อปอัปเมื่อลากลิงก์,และแสดงตัวอย่างก่อนเปิด,ใช้ Edge เทคโนโลยีก่อนการอ่าน。ในเวลาเดียวกัน ให้เพิ่มเอฟเฟ็กต์อะคริลิกด้านหลังหน้าต่างเล็กๆ เมื่อเปิดออก。 -// @name:tr Küçük pencere önizlemesi -// @description:tr Bağlantıyı sürüklerken bağlantıyı açılır pencerede aç,ve açmadan önce bir önizleme sağlayın,kullanmak Edge ön okuma teknolojisi。Aynı zamanda küçük pencere açıldığında arkasına akrilik efekti ekleyin.。 -// @name:ug كىچىك كۆزنەك ئالدىن كۆرۈش -// @description:ug ئۇلىنىشنى سۆرىگەندە سەكرىمە كۆزنەكتە ئۇلىنىشنى ئېچىڭ,ۋە ئېچىشتىن بۇرۇن ئالدىن كۆرۈش بىلەن تەمىنلەڭ,use Edge ئالدىن ئوقۇش تېخنىكىسى。شۇنىڭ بىلەن بىر ۋاقىتتا ، ئېچىلغاندا كىچىك كۆزنەكنىڭ كەينىگە ئاكرىللىق ئۈنۈم قوشۇڭ.。 -// @name:uk Попередній перегляд маленького вікна -// @description:uk Відкрити посилання у спливаючому вікні під час перетягування посилання,і надайте попередній перегляд перед відкриттям,використовувати Edge технологія попереднього читання。У той же час додайте акриловий ефект за маленьким вікном, коли воно відкривається.。 -// @name:vi Xem trước cửa sổ nhỏ -// @description:vi Mở liên kết trong cửa sổ bật lên khi kéo liên kết,và cung cấp bản xem trước trước khi mở,sử dụng Edge công nghệ đọc trước。Đồng thời, thêm hiệu ứng acrylic phía sau cửa sổ nhỏ khi nó được mở.。 -// @name:zh-TW 小窗預覽 -// @description:zh-TW 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -// @name:zh-HK 小窗預覽 -// @description:zh-HK 拖曳連結時在彈出視窗中開啟鏈接,並在打開前提供預覽,使用 Edge 的預讀技術。同時在小窗口打開時在背後添加壓克力效果。 -// @name:fr-CA Aperçu dans une petite fenêtre -// @description:fr-CA Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 -// @description Drag a link to open it in a popup window with a preview before opening, using Edge's prerendering technology. Also, add an acrylic effect behind the window when it's open. -// @version 2.5.1.4 -// @author 人民的勤务员 & hiisme -// @match *://*/* -// @grant GM_registerMenuCommand -// @grant GM_unregisterMenuCommand -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_info -// @require https://unpkg.com/sweetalert2@10.16.6/dist/sweetalert2.min.js -// @namespace https://github.com/ChinaGodMan/UserScripts -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEYklEQVR4nO3VW0yTZxzH8QI9ACbb4g3J3OR2Zm64uaVXu/BChkMUhAotUlrKUQUqqLhDRnDJLnZQoLvYxRLneQSB0tLSw1ugnE9KC7y05QwFVDxBdt/fUhhb2dS97+sLvEv4J89NE5rP98mfpzze9mzP9rxwxNe84shLrjnRhQFfUHE/gov6EFzUg+Az3QhRdyGksAMhBe3g57eBn28H/3QL+KeaIThpgyCPgCDXCmGuGcIcE4TZjRBlGSDKbIBIpYdIVY/QDC1ClXUIVdQgLP0OwuTVCJNXITztN7ymrPJFFusXPv6uNYbHZMS3vOLQr5y+oHMDCDp7F5sdEH7iNsJTb+INxW3f/m9bxbQDdl92z/HOO7DVATtkNxBZpPPSDhB+OejjSsDr8ls+2gG8Eie4ErBDeh20/V+MLONzchkXyCWUDC+hZOgZzg89xbnBpzg7+ATFzicocjxeOWcGHkE98AiF9xZRcG8R+XcfIr//IU73P8Cpvgc42Xcfeb33kduzsHJyuueR3T2PrK45ZHbOQdXpharDi4yOWSjbZ6Fom0F62zTSW6chb51Cmn2KfgCX8CdaJukHrMc/21J8KpMArtx8asskZM0TDAI4hJcxCeASXto0Tj+AS/gUG4MALuGTbWP0A7iEP04wCOASXkKMMgvgCl5iZRDAJXySxUM/gEv4RCYBXMIfM7vpB3AJn8Ak4J/4vJ555HTOIrt9ZuVktU0js20aqtYpZNinoLRPQtkyCUXLBNLtk6zi400uBgGBN9+7ALlpCOKfDfjoJx32a1bPh5p6fFD599n35zlwlUCqhWQNH88kIHBtcrq8OHTTDoFaQ/kc+JVAWvM4K/ijjSP0A9btfPc8MppGEVVeSzlgX6UWqbYxVvBHjAwC/vUP2zUHhc2DqApqEVEVWsiIUVbwcUaSfsBzX5tOL+RWN/ZeqqEQUAcpMcoK/rCBQcDznkpV+yxkRgd2f3ODUkCK1cMKPtYwzCyAKd5/3i9fDWADH9swRD/gVfBrAckWNyv4z/QMAl4FvxpQi+NmNyv4Q/pB+gFreKnBgbcvXn8pdlfZNez5vnrdZ+9droXE7GIFH6NjEKBqn6F087vKriJB2w+JwYl3f7yzLiDJ5GIF/6nOST9AanD8TuXmj2n7ILWNQtY0DkmDA3t+qP7rdyDRNMIKPrreuURPn18hivj6yiJl/NpTSYwhUT+AT36xIK62F0kWNxt4HNQ6qqjjS0uF/EKNjsrarMMHvDZJFhckFg8r+Git43FMjfOtTcOztfMHtc5l/82ziheoK0280iuhgX+WQkxEJNvGSNr4hmHPEa3rTeqrsQH4wAiJ1UP+L/GBEYlmN7m5eB6Px1dr6v7jV9Xof5WofFccMRGRYHaRm4b3D1+tmWEDvzZxxGBEvMlFbgreP8KiyncEhZoFJmvzsoijjSPkhuNfHMEcvzYS0/DOw0byYqyBLIs2De/kbfQICsr3+teJX1hZS3dttnL+AHpvNumR+ceNAAAAAElFTkSuQmCC -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/icons8-POPUPWINDOW-48.png -// @license MIT -// ==/UserScript== -(function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const translations = { - 'en': { - actionMode: 'Select Trigger Mode', - actionMode1: 'Long Press', - actionMode2: 'Drag', - actionMode0: 'Both', - longPressEffective: 'Long press effective time', - setLongPressEffective: 'Enter the long press effective time (milliseconds):', - longPressDuration: 'Long Press Duration', - blurEnabled: 'Toggle Blur Effect', - blurIntensity: 'Set Blur Intensity', - closeOnMouseClick: 'Toggle Close on Mouse Click', - closeOnScroll: 'Toggle Close on Scroll', - windowWidth: 'Set Window Width', - windowHeight: 'Set Window Height', - setLongPressDuration: 'Enter Long Press Duration (milliseconds):', - setBlurIntensityprompt: 'Enter Blur Intensity (0-10):', - toggleActionMode: 'Select Trigger Mode:\n1: Long Press\n2: Drag\n0: Both', - setWindowSizeprompt: 'Enter Window Size (pixels):', - showCountdown: 'Show countdown progress bar', - saveWindowConfig: 'Record window position', - showCountdowndrag: 'Show drag timeout progress bar', - dragTimeOut: 'Drag timeout duration', - settings: '⚙️ Settings', - saveBtn: 'Save', - cancelBtn: 'Cancel', - }, - 'zh-CN,zh,zh-SG': { - actionMode: '选择触发方式', - actionMode1: '长按', - actionMode2: '拖拽', - actionMode0: '两者都用', - longPressEffective: '长按生效时间', - setLongPressEffective: '输入长按生效时间(毫秒):', - longPressDuration: '长按触发时间', - blurEnabled: '模糊效果', - blurIntensity: '设置模糊强度', - closeOnMouseClick: '点击关闭小窗', - closeOnScroll: '滚动关闭小窗', - windowWidth: '设置小窗宽度', - windowHeight: '设置小窗高度', - setLongPressDuration: '输入长按触发时间(毫秒):', - setBlurIntensityprompt: '输入模糊强度(0-10):', - toggleActionMode: '选择触发方式:\n1: 长按\n2: 拖拽\n0: 两者都用', - setWindowSizeprompt: '輸入默认小窗口配置(像素):', - showCountdown: '显示长按倒计时进度条', - saveWindowConfig: '记录窗口位置', - showCountdowndrag: '显示拖拽超时进度条', - dragTimeOut: '拖拽超时时间', - settings: '⚙️ 配置界面', - saveBtn: '保存', - cancelBtn: '取消' - }, - 'zh-TW,zh-HK,zh-MO': { - actionMode: '選擇觸發方式', - actionMode1: '長按', - actionMode2: '拖曳', - actionMode0: '兩者都用', - longPressEffective: '长按生效时间', - setLongPressEffective: '输入长按生效时间(毫秒):', - longPressDuration: '長按觸發時間', - blurEnabled: '切換模糊效果', - blurIntensity: '設定模糊強度', - closeOnMouseClick: '切換點擊關閉小窗', - closeOnScroll: '切換滾動關閉小窗', - windowWidth: '設定小窗寬度', - windowHeight: '設定小窗高度', - setLongPressDuration: '輸入長按觸發時間(毫秒):', - setBlurIntensityprompt: '輸入模糊強度(0-10):', - toggleActionMode: '選擇觸發方式:\n1: 長按\n2: 拖曳\n0: 兩者都用', - setWindowSizeprompt: '輸入默认小窗口配置(像素):', - showCountdown: '顯示倒數計時進度條', - saveWindowConfig: '記錄窗口位置', - showCountdowndrag: '顯示拖曳逾時進度條', - dragTimeOut: '拖曳逾時時間', - }, - 'ja': { - actionMode: 'トリガーモードの選択', - actionMode1: '長押し', - actionMode2: 'ドラッグ', - actionMode0: '両方', - longPressDuration: '長押しの時間', - blurEnabled: 'ぼかし効果の切り替え', - blurIntensity: 'ぼかしの強度を設定', - closeOnMouseClick: 'マウスクリックで閉じる切り替え', - closeOnScroll: 'スクロールで閉じる切り替え', - windowWidth: 'ウィンドウ幅の設定', - windowHeight: 'ウィンドウ高さの設定', - setLongPressDuration: '長押しの時間(ミリ秒)を入力:', - setBlurIntensityprompt: 'ぼかしの強度(0-10)を入力:', - toggleActionMode: 'トリガーモードの選択:\n1: 長押し\n2: ドラッグ\n0: 両方', - setWindowSizeprompt: 'ウィンドウサイズ(ピクセル)を入力:', - showCountdown: 'カウントダウン進行状況を表示', - saveWindowConfig: 'ウィンドウの位置を記録', - showCountdowndrag: 'ドラッグタイムアウトの進行状況バーを表示', - dragTimeOut: 'ドラッグタイムアウト時間', - }, - 'vi': { - actionMode: 'Chọn chế độ kích hoạt', - actionMode1: 'Nhấn lâu', - actionMode2: 'Kéo thả', - actionMode0: 'Cả hai', - longPressDuration: 'Thời gian nhấn lâu', - blurEnabled: 'Bật hiệu ứng mờ', - blurIntensity: 'Cài đặt độ mờ', - closeOnMouseClick: 'Bật/tắt đóng cửa sổ bằng nhấp chuột', - closeOnScroll: 'Bật/tắt đóng cửa sổ khi cuộn', - windowWidth: 'Cài đặt chiều rộng cửa sổ', - windowHeight: 'Cài đặt chiều cao cửa sổ', - setLongPressDuration: 'Nhập thời gian nhấn lâu (mili giây):', - setBlurIntensityprompt: 'Nhập độ mờ (0-10):', - toggleActionMode: 'Chọn chế độ kích hoạt:\n1: Nhấn lâu\n2: Kéo thả\n0: Cả hai', - setWindowSizeprompt: 'Nhập kích thước cửa sổ (pixel):', - showCountdown: 'Hiển thị thanh tiến trình đếm ngược', - saveWindowConfig: 'Ghi lại vị trí cửa sổ', - showCountdowndrag: 'Hiển thị thanh tiến trình quá hạn khi kéo thả', - dragTimeOut: 'Thời gian quá hạn khi kéo thả', - } - } - const getTranslations = (lang) => { - for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { - return translations[key] - } - } - return translations["en"] - } - const translate = new Proxy( - function (key) { - const lang = userLang - const strings = getTranslations(lang) - return strings[key] || translations["en"][key] - }, - { - get(target, prop) { - const lang = userLang - const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, - } - ) - 'use strict' - const state = { - isDragging: false, - linkToPreload: null, - popupWindow: null, - acrylicOverlay: null, - progressBar: null, - dragprogressBar: null, - dragintervalId: null, - startTime: null, - } - function getWindowConfig() { - const windowConfigs = GM_getValue('SitewindowConfigs', [ - ]) - GM_setValue('SitewindowConfigs', windowConfigs - ) - const currentHostName = window.location.hostname - // 顶级规则,查找当前域名是否在设置内..... - for (const config of windowConfigs) { - if (typeof config.hostName === 'string') { - if (config.hostName === currentHostName) { - return { - width: config.width || 870, - height: config.height || 530, - top: config.top || (window.screen.height - (config.height || 530)) / 3, - left: config.left || (window.screen.width - (config.width || 870)) / 2 - } - } - } else if (Array.isArray(config.hostName)) { - if (config.hostName.includes(currentHostName)) { - return { - width: config.width || 870, - height: config.height || 530, - top: config.top || (window.screen.height - (config.height || 530)) / 3, - left: config.left || (window.screen.width - (config.width || 870)) / 2 - } - } - } - } - // 二级规则,如果开启了自定义设置,使用自定义. - const customWindowWidth = GM_getValue('custom_windowWidth', 0) - const customWindowHeight = GM_getValue('custom_windowHeight', 0) - const customScreenLeft = GM_getValue('custom_screenLeft', 0) - const customScreenTop = GM_getValue('custom_screenTop', 0) - if (GM_getValue('saveWindowConfig', false)) { - if (customWindowWidth !== 0 && customWindowHeight !== 0 && customScreenLeft !== 0 && customScreenTop !== 0) { - return { - width: customWindowWidth, - height: customWindowHeight, - top: customScreenTop, - left: customScreenLeft - } - } - } - //三级级规则 以上规则全部找不到,窗口使用默认设置. - return { - width: 870, - height: 530, - top: (window.screen.height - 530) / 3, - left: (window.screen.width - 870) / 2 - } - } - function reWindowConfig() { - const windowConfig = getWindowConfig() - config.windowWidth = windowConfig.width, - config.windowHeight = windowConfig.height, - config.screenLeft = windowConfig.left, - config.screenTop = windowConfig.top - } - let config = { - } - function updateConfig() { - config = { - windowWidth: 0, - windowHeight: 0, - screenLeft: 0, - screenTop: 0, - blurIntensity: GM_getValue('blurIntensity', 5), - blurEnabled: GM_getValue('blurEnabled', true), - closeOnMouseClick: GM_getValue('closeOnMouseClick', true), - closeOnScroll: GM_getValue('closeOnScroll', true), - longPressEffective: GM_getValue('longPressEffective', 200), // 长按生效时长 (毫秒)//STUB - 也就是长按打开小窗口时间=longPressEffective+longPressDuration - longPressDuration: GM_getValue('longPressDuration', 500), // 长按持续时间(毫秒) - dragTimeOut: GM_getValue('dragTimeOut', 2000), // 拖拽超时时间(毫秒) - actionMode: GM_getValue('actionMode', 0), // 0: 两者都用, 1: 长按, 2: 拖拽 - showCountdown: GM_getValue('showCountdown', true), // 是否显示倒计时进度条 - showCountdowndrag: GM_getValue('showCountdowndrag', true), // 是否显示拖拽倒计时进度条 - saveWindowConfig: GM_getValue('saveWindowConfig', true)//记住窗口位置,没啥用 - } - } - updateConfig() - reWindowConfig() - function openSettings() { - Swal.fire({ - imageUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEYklEQVR4nO3VW0yTZxzH8QI9ACbb4g3J3OR2Zm64uaVXu/BChkMUhAotUlrKUQUqqLhDRnDJLnZQoLvYxRLneQSB0tLSw1ugnE9KC7y05QwFVDxBdt/fUhhb2dS97+sLvEv4J89NE5rP98mfpzze9mzP9rxwxNe84shLrjnRhQFfUHE/gov6EFzUg+Az3QhRdyGksAMhBe3g57eBn28H/3QL+KeaIThpgyCPgCDXCmGuGcIcE4TZjRBlGSDKbIBIpYdIVY/QDC1ClXUIVdQgLP0OwuTVCJNXITztN7ymrPJFFusXPv6uNYbHZMS3vOLQr5y+oHMDCDp7F5sdEH7iNsJTb+INxW3f/m9bxbQDdl92z/HOO7DVATtkNxBZpPPSDhB+OejjSsDr8ls+2gG8Eie4ErBDeh20/V+MLONzchkXyCWUDC+hZOgZzg89xbnBpzg7+ATFzicocjxeOWcGHkE98AiF9xZRcG8R+XcfIr//IU73P8Cpvgc42Xcfeb33kduzsHJyuueR3T2PrK45ZHbOQdXpharDi4yOWSjbZ6Fom0F62zTSW6chb51Cmn2KfgCX8CdaJukHrMc/21J8KpMArtx8asskZM0TDAI4hJcxCeASXto0Tj+AS/gUG4MALuGTbWP0A7iEP04wCOASXkKMMgvgCl5iZRDAJXySxUM/gEv4RCYBXMIfM7vpB3AJn8Ak4J/4vJ555HTOIrt9ZuVktU0js20aqtYpZNinoLRPQtkyCUXLBNLtk6zi400uBgGBN9+7ALlpCOKfDfjoJx32a1bPh5p6fFD599n35zlwlUCqhWQNH88kIHBtcrq8OHTTDoFaQ/kc+JVAWvM4K/ijjSP0A9btfPc8MppGEVVeSzlgX6UWqbYxVvBHjAwC/vUP2zUHhc2DqApqEVEVWsiIUVbwcUaSfsBzX5tOL+RWN/ZeqqEQUAcpMcoK/rCBQcDznkpV+yxkRgd2f3ODUkCK1cMKPtYwzCyAKd5/3i9fDWADH9swRD/gVfBrAckWNyv4z/QMAl4FvxpQi+NmNyv4Q/pB+gFreKnBgbcvXn8pdlfZNez5vnrdZ+9droXE7GIFH6NjEKBqn6F087vKriJB2w+JwYl3f7yzLiDJ5GIF/6nOST9AanD8TuXmj2n7ILWNQtY0DkmDA3t+qP7rdyDRNMIKPrreuURPn18hivj6yiJl/NpTSYwhUT+AT36xIK62F0kWNxt4HNQ6qqjjS0uF/EKNjsrarMMHvDZJFhckFg8r+Git43FMjfOtTcOztfMHtc5l/82ziheoK0280iuhgX+WQkxEJNvGSNr4hmHPEa3rTeqrsQH4wAiJ1UP+L/GBEYlmN7m5eB6Px1dr6v7jV9Xof5WofFccMRGRYHaRm4b3D1+tmWEDvzZxxGBEvMlFbgreP8KiyncEhZoFJmvzsoijjSPkhuNfHMEcvzYS0/DOw0byYqyBLIs2De/kbfQICsr3+teJX1hZS3dttnL+AHpvNumR+ceNAAAAAElFTkSuQmCC", - imageWidth: 48, - imageHeight: 48, - title: translate.settings, - showCancelButton: true, - confirmButtonText: translate('saveBtn'), - cancelButtonText: translate('cancelBtn'), - footer: '', - html: - ` -
          - - -
          -
          - - -
          -
          - - -
          -
          - - -
          -
          - - -
          -
          - - ${GM_getValue('blurEnabled', true) ? '✅' : '❌'} -
          -
          - - ${GM_getValue('closeOnMouseClick', true) ? '✅' : '❌'} -
          -
          - - ${GM_getValue('closeOnScroll', true) ? '✅' : '❌'} -
          -
          - - ${GM_getValue('showCountdown', true) ? '✅' : '❌'} -
          -
          - - ${GM_getValue('showCountdowndrag', true) ? '✅' : '❌'} -
          -
          - - ${GM_getValue('saveWindowConfig', true) ? '✅' : '❌'} -
          -`, - focusConfirm: false, - preConfirm: () => { - return { - blurIntensity: document.getElementById('blurIntensity').value, - longPressEffective: document.getElementById('longPressEffective').value, - longPressDuration: document.getElementById('longPressDuration').value, - dragTimeOut: document.getElementById('dragTimeOut').value, - blurEnabled: document.getElementById('blurEnabled').textContent === '✅', - closeOnMouseClick: document.getElementById('closeOnMouseClick').textContent === '✅', - closeOnScroll: document.getElementById('closeOnScroll').textContent === '✅', - showCountdown: document.getElementById('showCountdown').textContent === '✅', - showCountdowndrag: document.getElementById('showCountdowndrag').textContent === '✅', - saveWindowConfig: document.getElementById('saveWindowConfig').textContent === '✅', - actionMode: document.getElementById('actionMode').value - } - } - }).then((result) => { - if (result.isConfirmed) { - GM_setValue('blurIntensity', parseInt(result.value.blurIntensity)) - GM_setValue('longPressEffective', parseInt(result.value.longPressEffective)) - GM_setValue('longPressDuration', parseInt(result.value.longPressDuration)) - GM_setValue('dragTimeOut', parseInt(result.value.dragTimeOut)) - GM_setValue('blurEnabled', result.value.blurEnabled) - GM_setValue('closeOnMouseClick', result.value.closeOnMouseClick) - GM_setValue('closeOnScroll', result.value.closeOnScroll) - GM_setValue('showCountdown', result.value.showCountdown) - GM_setValue('showCountdowndrag', result.value.showCountdowndrag) - GM_setValue('saveWindowConfig', result.value.saveWindowConfig) - GM_setValue('actionMode', parseInt(result.value.actionMode)) - updateConfig() - updateMenuCommands() - Swal.fire('设置已保存!', '', 'success') - } - }) - document.querySelectorAll('.icon-toggle').forEach(item => { - item.addEventListener('click', function () { - this.textContent = this.textContent === '✅' ? '❌' : '✅' - this.classList.toggle('icon-checked') - this.classList.toggle('icon-unchecked') - }) - }) - } - function delay(ms) { - return new Promise(resolve => setTimeout(resolve, ms)) - } - async function preloadLink(link, attributes = {}) { - const preloadElement = document.createElement('link') - preloadElement.rel = 'preload' - preloadElement.href = link - preloadElement.as = '*/*' - Object.assign(preloadElement, attributes) - document.head.appendChild(preloadElement) - await delay(1) - } - function createAcrylicOverlay() { - const acrylicOverlay = document.createElement('div') - acrylicOverlay.style.position = 'fixed' - acrylicOverlay.style.top = '0' - acrylicOverlay.style.left = '0' - acrylicOverlay.style.width = '100%' - acrylicOverlay.style.height = '100%' - acrylicOverlay.style.zIndex = '9999' - acrylicOverlay.style.backdropFilter = config.blurEnabled ? `blur(${config.blurIntensity}px)` : 'none' - if (config.closeOnMouseClick) { - acrylicOverlay.addEventListener('click', handleAcrylicOverlayClick) - } - document.body.appendChild(acrylicOverlay) - return acrylicOverlay - } - function handleAcrylicOverlayClick(event) { - if (event.target === state.acrylicOverlay) { - closePopupWindow() - } - } - function removeAcrylicOverlay() { - if (state.acrylicOverlay) { - document.body.removeChild(state.acrylicOverlay) - state.acrylicOverlay = null - } - } - window.addEventListener('message', (event) => { - const message = event.data - if (message.type === 'qinwuyuan') { - const width = window.innerWidth - const height = window.innerHeight - const left = window.screenX - const top = window.screenY - if (config.saveWindowConfig) { - saveWindowConfig(width, height, left, top, message.hostname) - // console.log(width, height, left, top, message.hostname) - } - } - }) - function openPopupWindow(link) { - reWindowConfig()//FIXME - 跨域窗口如果自己刷新了配置,重新刷新下 - if (!state.popupWindow || state.popupWindow.closed) { - state.acrylicOverlay = createAcrylicOverlay() - state.popupWindow = window.open(link, '_blank', `width=${config.windowWidth},height=${config.windowHeight},left=${config.screenLeft},top=${config.screenTop}`) - state.popupWindowChecker = setInterval(() => { - if (state.popupWindow) {//保证窗口存在时才检测,兼容下原来脚本点击原窗口焦点关闭覆盖层 - if (state.popupWindow.closed) { - removeAcrylicOverlay() - clearInterval(state.popupWindowChecker) - } else { - try { - const width = state.popupWindow.innerWidth - const height = state.popupWindow.innerHeight - const left = state.popupWindow.screenX - const top = state.popupWindow.screenY - if (config.saveWindowConfig) { - saveWindowConfig(width, height, left, top) - } - } catch (error) { - console.warn('访问跨源窗口属性失败,让弹出窗口自己设置窗口大小...:') - const message = { - type: "qinwuyuan", - hostname: window.location.hostname - } - state.popupWindow.postMessage(message, '*') - } - } - } - }, 200) - } - } - function closePopupWindow() { - if (state.popupWindow && !state.popupWindow.closed) { - state.popupWindow.close() - state.popupWindow = null - removeAcrylicOverlay() - if (state.linkToPreload) { - removePreloadedLink(state.linkToPreload) - } - window.removeEventListener('scroll', closePopupOnScroll) - } - } - function removePreloadedLink(link) { - const preloadElement = document.querySelector(`link[href="${link}"]`) - if (preloadElement) { - document.head.removeChild(preloadElement) - } - } - function closePopupOnScroll() { - if (state.popupWindow && !state.popupWindow.closed) { - closePopupWindow() - } - } - function toggleActionMode() { - const mode = prompt(translate('toggleActionMode'), config.actionMode) - if (mode !== null) { - config.actionMode = parseInt(mode, 10) - GM_setValue('actionMode', config.actionMode) - setupEventListeners() - updateMenuCommands() - } - } - function setLongPressDuration() { - const duration = prompt(translate('setLongPressDuration'), config.longPressDuration) - if (duration !== null) { - config.longPressDuration = duration - GM_setValue('longPressDuration', duration) - updateMenuCommands() - } - } - function setLongPressEffective() { - const duration = prompt(translate('setLongPressEffective'), config.longPressEffective) - if (duration !== null) { - config.longPressEffective = duration - GM_setValue('longPressEffective', duration) - updateMenuCommands() - } - } - function setdragTimeOut() { - const duration = prompt(translate('dragTimeOut'), config.dragTimeOut) - if (duration !== null) { - config.dragTimeOut = duration - GM_setValue('dragTimeOut', duration) - updateMenuCommands() - } - } - function toggleBlurEffect() { - config.blurEnabled = !config.blurEnabled - GM_setValue('blurEnabled', config.blurEnabled) - updateMenuCommands() - } - function setBlurIntensity() { - const intensity = prompt(translate('setBlurIntensityprompt'), config.blurIntensity) - if (intensity !== null) { - config.blurIntensity = parseInt(intensity, 10) - GM_setValue('blurIntensity', config.blurIntensity) - updateMenuCommands() - } - } - function toggleCloseOnMouseClick() { - config.closeOnMouseClick = !config.closeOnMouseClick - GM_setValue('closeOnMouseClick', config.closeOnMouseClick) - updateMenuCommands() - } - function toggleCloseOnScroll() { - config.closeOnScroll = !config.closeOnScroll - handleScrollCommand() - GM_setValue('closeOnScroll', config.closeOnScroll) - updateMenuCommands() - } - function handleScrollCommand() { - if (config.closeOnScroll) { - window.addEventListener('scroll', closePopupOnScroll, { once: true }) - } else { - window.removeEventListener('scroll', closePopupOnScroll) - } - } - function setWindowSize(dimension) {//!SECTION-已无实际意义,开启记录窗口位置后,哪里还需要手动配置. - const size = prompt(`${translate('setWindowSizeprompt')} (${dimension})`, config[dimension === 'width' ? 'windowWidth' : 'windowHeight']) - if (size !== null) { - config[dimension === 'width' ? 'windowWidth' : 'windowHeight'] = parseInt(size, 10) - GM_setValue(dimension === 'width' ? 'windowWidth' : 'windowHeight', config[dimension === 'width' ? 'windowWidth' : 'windowHeight']) - updateMenuCommands() - if (state.popupWindow && !state.popupWindow.closed) { - state.popupWindow.resizeTo(config.windowWidth, config.windowHeight) - } - } - } - let registeredMenuCommands = {} - function registerMenuCommand(label, action) { - const menuCommandId = GM_registerMenuCommand(label, action) - registeredMenuCommands[label] = menuCommandId - return menuCommandId - } - function saveWindowConfig(width, height, left, top, HostName = window.location.hostname) { - config.windowWidth = width - config.windowHeight = height - config.screenLeft = left - config.screenTop = top - const currentHostName = HostName - let windowConfigs = GM_getValue('SitewindowConfigs', [] - ) - let configUpdated = false - for (let config of windowConfigs) { - if (typeof config.hostName === 'string') { - if (config.hostName === currentHostName) { - config.width = width - config.height = height - config.top = top - config.left = left - configUpdated = true - break - } - } else if (Array.isArray(config.hostName)) { - if (config.hostName.includes(currentHostName)) { - config.width = width - config.height = height - config.top = top - config.left = left - configUpdated = true - break - } - } - } - if (!configUpdated) { - windowConfigs.push({ - name: `${currentHostName}`, - hostName: currentHostName, - width: width, - height: height, - top: top, - left: left - }) - } - //ANCHOR - 开启记录窗口位置时.无法找到配置时,会推送一个新配置,当其他的网站没有自定义配置的也同样使用这一次的窗口.大小. - GM_setValue('SitewindowConfigs', windowConfigs) - GM_setValue('custom_windowWidth', width) - GM_setValue('custom_windowHeight', height) - GM_setValue('custom_screenLeft', left) - GM_setValue('custom_screenTop', top) - updateMenuCommands() - } - function toggleSwitch(property) { - if (property in config) { - config[property] = !config[property] - GM_setValue(property, config[property]) - updateMenuCommands() - } - } - function updateMenuCommands() {//LINK - - const menuCommands = [ - { label: translate('settings'), action: openSettings }, - { label: translate('actionMode') + ` (${config.actionMode === 1 ? translate('actionMode1') : config.actionMode === 2 ? translate('actionMode2') : translate('actionMode0')})`, action: toggleActionMode }, - { label: translate('longPressEffective') + ` (${config.longPressEffective}ms)`, action: setLongPressEffective }, - { label: translate('longPressDuration') + ` (${config.longPressDuration}ms)`, action: setLongPressDuration }, - { label: translate('dragTimeOut') + ` (${config.dragTimeOut}ms)`, action: setdragTimeOut }, - { label: translate('blurEnabled') + ` (${config.blurEnabled ? '✅' : '❌'})`, action: toggleBlurEffect }, - { label: translate('blurIntensity') + ` (${config.blurIntensity})`, action: setBlurIntensity }, - { label: translate('closeOnMouseClick') + ` (${config.closeOnMouseClick ? '✅' : '❌'})`, action: toggleCloseOnMouseClick }, - { label: translate('closeOnScroll') + ` (${config.closeOnScroll ? '✅' : '❌'})`, action: toggleCloseOnScroll }, - /* { label: translate('windowWidth') + ` (${config.windowWidth})`, action: () => { setWindowSize('width') } },//!SECTION -已无实际意义,脚本不会使用 - { label: translate('windowHeight') + ` (${config.windowHeight})`, action: () => { setWindowSize('height') } },//!SECTION -已无实际意义,脚本不会使用 */ - { label: translate('showCountdown') + ` (${config.showCountdown ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdown') } }, - { label: translate('showCountdowndrag') + ` (${config.showCountdowndrag ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdowndrag') } }, - { label: translate('saveWindowConfig') + ` (${config.saveWindowConfig ? '✅' : '❌'})`, action: () => { toggleSwitch('saveWindowConfig') } }, - ] - for (const label in registeredMenuCommands) { - GM_unregisterMenuCommand(registeredMenuCommands[label]) - } - registeredMenuCommands = {} - menuCommands.forEach((command) => { - registerMenuCommand(command.label, command.action) - }) - } - updateMenuCommands() - function toTitleCase(str) { - return str.replace(/\w\S*/g, (txt) => { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() }) - } - function setupEventListeners() { - // 移除旧的事件监听器 - document.body.removeEventListener('dragstart', handleDragStart) - document.body.removeEventListener('dragend', handleDragEnd) - document.body.removeEventListener('mousedown', handleMouseDown) - document.body.removeEventListener('mouseup', handleMouseUp) - document.body.removeEventListener('mouseleave', handleMouseLeave) - document.body.removeEventListener('wheel', handleWheel) - document.body.removeEventListener('click', handleClick) - // 根据 actionMode 配置添加事件监听器 - if (config.actionMode === 1 || config.actionMode === 0) { - document.body.addEventListener('mousedown', handleMouseDown) - document.body.addEventListener('mouseup', handleMouseUp) - document.body.addEventListener('mouseleave', handleMouseLeave) - } - if (config.actionMode === 2 || config.actionMode === 0) { - document.body.addEventListener('dragstart', handleDragStart) - document.body.addEventListener('dragend', handleDragEnd) - } - document.body.addEventListener('wheel', handleWheel) - document.body.addEventListener('click', handleClick) - } - // 事件处理函数 - function handleDragStart(event) { - const linkElement = event.target.tagName === 'A' ? event.target : event.target.closest('a') - if (linkElement) { - if (config.showCountdowndrag && config.dragTimeOut != 0) {//超时选项,只要 - state.dragprogressBar = createProgressBar('#ff9800', '#f44336') - state.dragprogressBar.style.display = 'block' - state.dragprogressBar.style.width = '5%' - state.startTime = Date.now() - clearInterval(state.dragintervalId) - state.dragintervalId = setInterval(function () { - const elapsed = Date.now() - state.startTime - const progress = Math.max(5 - (elapsed / config.dragTimeOut) * 5, 0) // 减小你妈 - state.dragprogressBar.style.width = `${progress}%` - if (progress <= 0) {// 超时结束 - state.isDragging = false - clearInterval(state.dragintervalId) - state.dragprogressBar.style.display = 'none' - } - }, 100) // - window.addEventListener('drag', function (event) { - // 保证进度条位置处于貂毛鼠标的下面 - const x = event.clientX - const y = event.clientY + 30 // 偏移 - state.dragprogressBar.style.left = `${x}px` - state.dragprogressBar.style.top = `${y}px` - }) - } - const link = linkElement.href - state.isDragging = true - state.linkToPreload = link - preloadLink(state.linkToPreload, { importance: 'high' }).then(() => { - if (config.closeOnScroll) { - window.addEventListener('scroll', closePopupOnScroll, { once: true }) - } - }) - } - } - function handleDragEnd(event) { - const x = event.clientX - const y = event.clientY - console.log(x, y) - const elementAtPoint = document.elementFromPoint(x, y) - if (state.dragprogressBar) {//显示超时进度条时 - clearInterval(state.dragintervalId) - state.dragprogressBar.style.display = 'none' - } - if (y < 1) {//接近顶部 - state.isDragging = false - } - //if (!document.body.contains(elementAtPoint)) state.isDragging = false//移出到系统 - if (state.isDragging && state.linkToPreload) { - state.isDragging = false - openPopupWindow(state.linkToPreload) - state.linkToPreload = null - } - } - function createProgressBar(colorStart = '#4caf50', colorEnd = '#81c784') { - if (!config.showCountdown && !config.showCountdowndrag) return null - const progressBar = document.createElement('div') - Object.assign(progressBar.style, { - position: 'fixed', - height: '6px', - width: '5%', - background: `linear-gradient(to right, ${colorStart}, ${colorEnd})`, - borderRadius: '3px', - boxShadow: '0 2px 5px rgba(0, 0, 0, 0.3)', - zIndex: '9999', - }) - document.body.appendChild(progressBar) - return progressBar - } - let mouseDownTime = 0 - function handleMouseDown(event) { - const linkElement = event.target.tagName === 'A' ? event.target : event.target.closest('a') - if (linkElement) { - let isDragging = false - let isMouseDown = true - const onMouseMove = () => { - isDragging = true - clearTimeout(state.pressTimer) - progressBarremove() - } - const onMouseUp = () => { - isMouseDown = false - clearTimeout(state.pressTimer) - progressBarremove() - } - document.addEventListener('dragstart', onMouseMove, { once: true }) - document.addEventListener('mouseup', onMouseUp, { once: true }) - document.addEventListener('keydown', onMouseUp, { once: true }) - setTimeout(() => { - if (!isDragging && isMouseDown) { // 确保没有拖拽并且鼠标仍按下 - state.progressBar = createProgressBar() - if (state.progressBar) { - const transitionDuration = Math.max(config.longPressDuration, 0) + 'ms' - state.progressBar.style.left = `${event.clientX}px` // 设置进度条位置为鼠标下方 - state.progressBar.style.top = `${event.clientY + 20}px` // 偏移一点,避免挡住鼠标 - state.progressBar.style.transition = `width ${transitionDuration} linear` - requestAnimationFrame(() => { - state.progressBar.style.width = '0' - }) - } - } - /* //NOTE - 鼠标按下的时间才会触发子函数计时, - 长按触发打开预览窗口时长=鼠标按下的时间+长按触发时间=打开小窗时间. - */ - onProgres() - }, config.longPressEffective) - function onProgres(params) { - state.pressTimer = setTimeout(() => { - if (!isDragging && isMouseDown) { // 确保没有拖拽并且鼠标仍按下 - const link = linkElement.href - state.linkToPreload = link - preloadLink(state.linkToPreload, { importance: 'high' }).then(() => { - openPopupWindow(state.linkToPreload) - }) - } - progressBarremove() - }, config.longPressDuration) - } - } - } - function handleMouseUp() { - clearTimeout(state.pressTimer) - state.pressTimer = null - progressBarremove() - } - function progressBarremove() { - if (state.progressBar) { - state.progressBar.remove() - } - } - function handleMouseLeave() { - clearTimeout(state.pressTimer) - state.pressTimer = null - } - function handleWheel() { - if (config.closeOnScroll) { - closePopupWindow() - } - } - function handleClick(event) { - if (event.target === state.acrylicOverlay) { - removeAcrylicOverlay() - } - } - setupEventListeners() -})() diff --git a/Script details/popup-window/Change history/README.md b/popup-window/Change history/README.md similarity index 100% rename from Script details/popup-window/Change history/README.md rename to popup-window/Change history/README.md diff --git a/popup-window/README.md b/popup-window/README.md new file mode 100644 index 000000000..66e078b6b --- /dev/null +++ b/popup-window/README.md @@ -0,0 +1,363 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          小窗预览

          +

          「 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          🛠️ Small Window Preview 更新日志

          +

          📅 2024/9/30 11:56 - Ver 2.5.1.4

          +

          优化: 添加GUI设置界面 菜单太麻烦,设置多个点来点去的.

          +
          +

          📅 2024/9/30 10:49 - Ver 2.5.1.3

          +

          优化: 添加长按生效时间,鼠标按下等于设置的生效时间后调用打开小窗前的长按触发时间.
          打开小窗时间=长按生效时间+长按触发时间 +优化: 添加GUI设置界面 菜单太麻烦,设置多个点来点去的.

          +
          +

          📅 2024/9/10 11:05 - Ver 2.5.1.0

          +

          修复: 无法跨源读取弹出窗口大小位置的问题。
          +新增: 当无法跨源读取到弹窗位置时,会发送信息给弹窗,允许弹窗自己设置大小和位置。

          +
          +

          📅 2024/9/10 09:24 - Ver 2.5.0.0

          +

          感谢: tony0809 的代码贡献。
          +新增:
          +• 开启 记录窗口位置 时,自动记录当前域名配置。
          +• 查找窗口配置逻辑:域名配置 → 自定义窗口配置 → 脚本自带配置。
          +• 配置无需手动编辑,脚本会自动在你更改窗口大小时更新域名配置.每次你改变的窗口大小会记录到全局自定义配置
          +• 配置规则参考#529654
          +• 新增功能演示请参考下方视频。

          +
          +

          📅 2024/9/3 05:26 - Ver 2.4.0.20

          +

          修复: #527837 事件错误,修改为检查鼠标 y 轴 < 1 时判断移动是否在浏览器标签页上。

          +
          +

          📅 2024/9/2 05:34 - Ver 2.4.0.18

          +

          新增: #527625
          +• 长按鼠标模式下按下键盘不触发预览窗口。
          +• 拖拽模式下拖拽链接到新标签时不会触发预览窗口。

          +
          +

          📅 2024/8/29 08:39 - Ver 2.4.0.9

          +

          新增: 拖拽时增加超时显示进度条,时间耗尽时取消拖拽打开预览窗口。

          +
          +

          📅 2024/8/29 06:28 - Ver 2.4.0.8

          +

          优化: 移除长按时监听鼠标移动的逻辑,改为监听鼠标进入拖拽状态时取消打开预览窗口。#526172

          +
          +

          📅 2024/8/27 00:33 - Ver 2.4.0.5

          +

          修复: #526054 反馈的 BUG:
          +• 修复在关闭预览窗后无法触发时间条打开预览窗的概率性问题。

          +
          +

          📅 2024/8/25 04:59 - Ver 2.4.0.2

          +

          新增: #257270
          +• 添加长按时显示倒计时,增加记住窗口位置功能。

          +
          +

          📅 2024/8/24 07:29 - Ver 2.4

          +

          优化: 添加语言包,优化脚本性能。

          +
          +

          📅 2024/8/23 08:12 - Ver 2.4

          +

          优化: 兼容 Chrome 插件 Google Chrome 的超级拖拽 0.9.9
          +修复: 修复点击小窗口关闭按钮时亚克力图层不关闭的问题。

          + +
          + + + + + +## 功能介绍 + +🔗 拖拽即开小窗 — 拖拽网页链接,便捷地在小窗口中打开并预览,使用 Edge 的预读技术。小窗口后方有亚克力效果,提升视觉体验。 + + + +# 菜单选项说明 + + + +## 选项列表 + +1. **操作模式 (actionMode)** + + - **描述**:设置当前的操作模式,根据 `actionMode` 的值来确定使用哪个操作模式。 + - **操作模式 1**:`1` - 在链接长按时触发预览窗口。 + - **操作模式 2**:`2` - 在链接拖拽时触发预览窗口。 + - **默认操作模式**:`0` - 默认启用以上两种操作模式。 + +2. **长按持续时间 (longPressDuration)** + + - **描述**:设置长按操作的持续时间。 + - **操作**:`setLongPressDuration`,用于修改长按持续时间,与 `操作模式 (actionMode)` 配合使用。 + +3. **模糊效果启用 (blurEnabled)** + + - **描述**:启用或禁用背景模糊效果。 + - **操作**:`toggleBlurEffect`,用于启用或禁用模糊效果。 + +4. **模糊强度 (blurIntensity)** + + - **描述**:设置背景模糊的强度。 + +5. **点击鼠标时关闭 (closeOnMouseClick)** + + - **描述**:在主窗口(预览窗口的父窗口)点击鼠标时关闭预览窗口。 + - **操作**:`toggleCloseOnMouseClick`,用于启用或禁用点击鼠标时关闭预览窗口的设置。 + +6. **滚动时关闭 (closeOnScroll)** + + - **描述**:在主窗口(预览窗口的父窗口)滚动鼠标滑轮时关闭预览窗口。 + - **操作**:`toggleCloseOnScroll`,用于启用或禁用滚动鼠标时关闭预览窗口的设置。 + +7. **窗口宽度 (windowWidth)** + + - **描述**:设置预览窗口的宽度,启用 `保存窗口配置` 时覆盖该配置。 + +8. **窗口高度 (windowHeight)** + + - **描述**:设置预览窗口的高度,启用 `保存窗口配置` 时覆盖该配置。 + +9. **显示倒计时 (showCountdown)** + + - **描述**:当启用 `操作模式 (actionMode)=1` 长按时,在长按触发预览窗口前,在鼠标下方显示倒计时进度条,时间是 `长按持续时间 (longPressDuration)` 设定的时间。 + - **操作**:用于启用或禁用倒计时进度条显示。 + +10. **显示拖拽超时 (showCountdowndrag)** + +- **描述**:当启用时,在拖拽预览窗口前,在鼠标下方显示超时进度条,时间是 `拖拽超时时间 (dragTimeOut)` 设定的时间,时间耗尽,拖拽不会打开预览窗口,设定时间为0时为禁用显示以及禁用超时取消拖拽打开小窗预览。 +- **操作**:用于启用或禁用超时进度条显示。 + +11. **保存窗口配置 (saveWindowConfig)** + + - **描述**:用于记忆保存窗口的大小与位置配置,会覆盖用户自己设定的预览窗口高度和宽度。 + +**每个选项后面都有一个对应的操作函数,这些函数用于更新菜单的设置。通过点击选项,用户可以直接改变相关配置,并立即看到效果。** + + + +## 支持的网页 + +🌐 全网页适用 — 支持所有网页,随时随地享受便捷的链接预览与打开功能。 + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + +## 脚本亮点: + +亚克力效果:为小窗口添加美观的背景效果。 +链接预读:使用 Edge 的技术加速加载。 +设置选项: +可调节模糊效果强度。 +自定义小窗口尺寸。 + + + +## 注意事项: + +点击或滚动页面时,可以自动关闭小窗口。 +立即体验! +🚀 提升浏览效率 — 安装脚本,享受智能链接预览和美观小窗口! + + + +## ☭ 感谢 + +- **[hiisme](https://greasyfork.org/zh-CN/users/217852) [小窗预览](https://greasyfork.org/scripts/504567)** 是本脚本的创始人,他的想法与实际行动为互联网广大网友做出了巨大贡献 +- **[wxhzjm](https://greasyfork.org/zh-CN/users/1118488)** +- **[hmjz100](https://greasyfork.org/zh-CN/users/893941)** +- **[tony0809](https://greasyfork.org/zh-CN/users/20361)** 为脚本添加了自定义域名设置的代码 + + + +## 脚本演示 + +自动记录每个站点的配置: + +脚本长按,拖拽,记录窗口位置演示: + + +![1.png](https://greasyfork.s3.us-east-2.amazonaws.com/45120umjmiqk1lfkh0116ad6pnui) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/popup-window/README_en.md b/popup-window/README_en.md new file mode 100644 index 000000000..d7971dbda --- /dev/null +++ b/popup-window/README_en.md @@ -0,0 +1,348 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          Small window preview

          +

          「 Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          Update record

          🛠️ Small Window Preview Change log

          +

          📅 2024/9/30 11:56 - Ver 2.5.1.4

          +

          optimization: Add toGUISetting interface The menu is too troublesome,Set up multiple points to point to and from.

          +
          +

          📅 2024/9/30 10:49 - Ver 2.5.1.3

          +

          optimization: Add toLong press effective time,After the mouse is pressed equal to the set effective time, the function before opening the small window is called.Long press trigger time.
          Open small window time=Long press effective time+Long press trigger time +optimization: Add toGUISetting interface The menu is too troublesome,Set up multiple points to point to and from.

          +
          +

          📅 2024/9/10 11:05 - Ver 2.5.1.0

          +

          repair: The problem of not being able to read the size and position of the pop-up window across sources。
          +New: When the pop-up window location cannot be read across sources,Will send information to the pop-up window,Allow pop-ups to set their own size and position。

          +
          +

          📅 2024/9/10 09:24 - Ver 2.5.0.0

          +

          grateful: tony0809 code contributions。
          +New:
          +• turn on Record window position hour,Automatically record current domain name configuration。
          +• Find window configuration logic:Domain name configuration → Custom window configuration → Script comes with configuration。
          +• No manual editing required for configuration,The script automatically updates the domain configuration when you change the window size.Every time you change the window size it will be recorded in the global custom configuration
          +• Configuration rules reference#529654
          +• Please refer to the video below for a demonstration of the new features.。

          +
          +

          📅 2024/9/3 05:26 - Ver 2.4.0.20

          +

          repair: #527837 event error,Modified to check mouse y axis < 1 Determine if the move is on a browser tab。

          +
          +

          📅 2024/9/2 05:34 - Ver 2.4.0.18

          +

          New: #527625
          +• Pressing the keyboard in long-press mouse mode does not trigger the preview window。
          +• When dragging a link to a new label in drag mode, the preview window will not be triggered.。

          +
          +

          📅 2024/8/29 08:39 - Ver 2.4.0.9

          +

          New: Add timeout to display progress bar when dragging,Cancel drag and drop to open preview window when time runs out。

          +
          +

          📅 2024/8/29 06:28 - Ver 2.4.0.8

          +

          optimization: Remove the logic for monitoring mouse movement when long-pressed,Change to monitor the mouse and cancel the opening of the preview window when it enters the dragging state.。#526172

          +
          +

          📅 2024/8/27 00:33 - Ver 2.4.0.5

          +

          repair: #526054 feedback BUG:
          +• Fixed the probability issue that the time bar cannot be triggered to open the preview window after closing the preview window.。

          +
          +

          📅 2024/8/25 04:59 - Ver 2.4.0.2

          +

          New: #257270
          +• Added display countdown when long press,Added function to remember window position。

          +
          +

          📅 2024/8/24 07:29 - Ver 2.4

          +

          optimization: Add language pack,Optimize script performance。

          +
          +

          📅 2024/8/23 08:12 - Ver 2.4

          +

          optimization: compatible Chrome plug-in Google Chrome super drag 0.9.9
          +repair: Fixed the problem that the acrylic layer does not close when clicking the close button of the small window。

          + +
          + + + + + +## Feature Introduction + +🔗 **Drag and Drop to Open Preview Window** — Easily open and preview web links in a small window by dragging them, utilizing Edge's pre-read technology. The background of the small window features an acrylic effect to enhance visual appeal. + + + +# Menu Options Description + + + +## Options List + +1. **Action Mode (actionMode)** + + - **Description**: Sets the current action mode. Determines which mode to use based on the value of `actionMode`. + - **Action Mode 1**: `1` - Triggers the preview window when the link is long-pressed. + - **Action Mode 2**: `2` - Triggers the preview window when the link is dragged. + - **Default Action Mode**: `0` - Defaults to enabling both of the above action modes. + +2. **Long Press Duration (longPressDuration)** + + - **Description**: Sets the duration of the long press action. + - **Action**: `setLongPressDuration`, used to modify the long press duration in conjunction with `Action Mode (actionMode)`. + +3. **Blur Effect Enabled (blurEnabled)** + + - **Description**: Enables or disables the background blur effect. + - **Action**: `toggleBlurEffect`, used to enable or disable the blur effect. + +4. **Blur Intensity (blurIntensity)** + + - **Description**: Sets the intensity of the background blur. + +5. **Close on Mouse Click (closeOnMouseClick)** + + - **Description**: Closes the preview window when clicking the mouse in the main window (parent window of the preview window). + - **Action**: `toggleCloseOnMouseClick`, used to enable or disable the setting to close the preview window on mouse click. + +6. **Close on Scroll (closeOnScroll)** + + - **Description**: Closes the preview window when scrolling the mouse wheel in the main window (parent window of the preview window). + - **Action**: `toggleCloseOnScroll`, used to enable or disable the setting to close the preview window on mouse scroll. + +7. **Window Width (windowWidth)** + + - **Description**: Sets the width of the preview window. This configuration will override the set width when `Save Window Configuration` is enabled. + +8. **Window Height (windowHeight)** + + - **Description**: Sets the height of the preview window. This configuration will override the set height when `Save Window Configuration` is enabled. + +9. **Show Countdown (showCountdown)** + + - **Description**: When `Action Mode (actionMode)=1` is enabled, displays a countdown progress bar below the mouse before the preview window is triggered by a long press. The time is set by `Long Press Duration (longPressDuration)`. + - **Action**: Used to enable or disable the countdown progress bar display. + +10. **Show Drag Timeout (showCountdowndrag)** + +- **Description**: When enabled, a timeout progress bar is displayed under the mouse before the drag preview window opens. The duration is determined by the `Drag Timeout (dragTimeOut)` setting. If the time runs out, the drag operation will not open the preview window. If the timeout is set to 0, both the progress bar and the timeout-based cancellation of the drag preview will be disabled. +- **Action**: Used to enable or disable the display of the timeout progress bar. + +11. **Save Window Configuration (saveWindowConfig)** + - **Description**: Used to remember and save the size and position configuration of the window, overriding the user-defined preview window height and width. + +**Each option is followed by a corresponding action function, which is used to update the menu settings. By clicking on an option, users can directly change the related configuration and see the effect immediately.** + + + +## Supported Web Pages + +🌐 **Applicable to All Web Pages** — Supports all web pages, allowing convenient link preview and opening functionality anytime, anywhere. + + + +## Script Highlights: + +- **Acrylic Effect**: Adds a beautiful background effect to the small window. +- **Link Pre-read**: Accelerates loading using Edge's technology. +- **Configurable Options**: + - Adjustable blur effect intensity. + - Customizable small window size. + + + +## Notes: + +- Clicking or scrolling on the page can automatically close the small window. +- Experience it now! + 🚀 **Enhance Browsing Efficiency** — Install the script to enjoy intelligent link previews and aesthetically pleasing small windows! + + + +![1.png](https://greasyfork.s3.us-east-2.amazonaws.com/45120umjmiqk1lfkh0116ad6pnui) + + +## Original Author + +[hiisme](https://greasyfork.org/zh-CN/scripts/504567) + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/Script details/popup-window/popup-window.user.js b/popup-window/popup-window.user.js similarity index 98% rename from Script details/popup-window/popup-window.user.js rename to popup-window/popup-window.user.js index 6b831dc2a..e998bd9de 100644 --- a/Script details/popup-window/popup-window.user.js +++ b/popup-window/popup-window.user.js @@ -78,7 +78,7 @@ // @description:fr-CA Ouvrir le lien dans la fenêtre contextuelle lorsque vous faites glisser le lien,et fournir un aperçu avant l’ouverture,utiliser Edge technologie de pré-lecture。Ajoutez par la même occasion un effet acrylique derrière la petite fenêtre lorsqu’elle est ouverte.。 // @description Drag a link to open it in a popup window with a preview before opening, using Edge's prerendering technology. Also, add an acrylic effect behind the window when it's open. // @version 2.5.1.4 -// @author 人民的勤务员 & hiisme +// @author hiisme & 人民的勤务员 // @match *://*/* // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand @@ -120,7 +120,7 @@ dragTimeOut: 'Drag timeout duration', settings: '⚙️ Settings', saveBtn: 'Save', - cancelBtn: 'Cancel', + cancelBtn: 'Cancel' }, 'zh-CN,zh,zh-SG': { actionMode: '选择触发方式', @@ -169,7 +169,7 @@ showCountdown: '顯示倒數計時進度條', saveWindowConfig: '記錄窗口位置', showCountdowndrag: '顯示拖曳逾時進度條', - dragTimeOut: '拖曳逾時時間', + dragTimeOut: '拖曳逾時時間' }, 'ja': { actionMode: 'トリガーモードの選択', @@ -190,7 +190,7 @@ showCountdown: 'カウントダウン進行状況を表示', saveWindowConfig: 'ウィンドウの位置を記録', showCountdowndrag: 'ドラッグタイムアウトの進行状況バーを表示', - dragTimeOut: 'ドラッグタイムアウト時間', + dragTimeOut: 'ドラッグタイムアウト時間' }, 'vi': { actionMode: 'Chọn chế độ kích hoạt', @@ -211,29 +211,29 @@ showCountdown: 'Hiển thị thanh tiến trình đếm ngược', saveWindowConfig: 'Ghi lại vị trí cửa sổ', showCountdowndrag: 'Hiển thị thanh tiến trình quá hạn khi kéo thả', - dragTimeOut: 'Thời gian quá hạn khi kéo thả', + dragTimeOut: 'Thời gian quá hạn khi kéo thả' } } const getTranslations = (lang) => { for (const key in translations) { - if (key === lang || key.split(",").includes(lang)) { + if (key === lang || key.split(',').includes(lang)) { return translations[key] } } - return translations["en"] + return translations['en'] } const translate = new Proxy( function (key) { const lang = userLang const strings = getTranslations(lang) - return strings[key] || translations["en"][key] + return strings[key] || translations['en'][key] }, { get(target, prop) { const lang = userLang const strings = getTranslations(lang) - return strings[prop] || translations["en"][prop] - }, + return strings[prop] || translations['en'][prop] + } } ) 'use strict' @@ -245,7 +245,7 @@ progressBar: null, dragprogressBar: null, dragintervalId: null, - startTime: null, + startTime: null } function getWindowConfig() { const windowConfigs = GM_getValue('SitewindowConfigs', [ @@ -330,7 +330,7 @@ reWindowConfig() function openSettings() { Swal.fire({ - imageUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEYklEQVR4nO3VW0yTZxzH8QI9ACbb4g3J3OR2Zm64uaVXu/BChkMUhAotUlrKUQUqqLhDRnDJLnZQoLvYxRLneQSB0tLSw1ugnE9KC7y05QwFVDxBdt/fUhhb2dS97+sLvEv4J89NE5rP98mfpzze9mzP9rxwxNe84shLrjnRhQFfUHE/gov6EFzUg+Az3QhRdyGksAMhBe3g57eBn28H/3QL+KeaIThpgyCPgCDXCmGuGcIcE4TZjRBlGSDKbIBIpYdIVY/QDC1ClXUIVdQgLP0OwuTVCJNXITztN7ymrPJFFusXPv6uNYbHZMS3vOLQr5y+oHMDCDp7F5sdEH7iNsJTb+INxW3f/m9bxbQDdl92z/HOO7DVATtkNxBZpPPSDhB+OejjSsDr8ls+2gG8Eie4ErBDeh20/V+MLONzchkXyCWUDC+hZOgZzg89xbnBpzg7+ATFzicocjxeOWcGHkE98AiF9xZRcG8R+XcfIr//IU73P8Cpvgc42Xcfeb33kduzsHJyuueR3T2PrK45ZHbOQdXpharDi4yOWSjbZ6Fom0F62zTSW6chb51Cmn2KfgCX8CdaJukHrMc/21J8KpMArtx8asskZM0TDAI4hJcxCeASXto0Tj+AS/gUG4MALuGTbWP0A7iEP04wCOASXkKMMgvgCl5iZRDAJXySxUM/gEv4RCYBXMIfM7vpB3AJn8Ak4J/4vJ555HTOIrt9ZuVktU0js20aqtYpZNinoLRPQtkyCUXLBNLtk6zi400uBgGBN9+7ALlpCOKfDfjoJx32a1bPh5p6fFD599n35zlwlUCqhWQNH88kIHBtcrq8OHTTDoFaQ/kc+JVAWvM4K/ijjSP0A9btfPc8MppGEVVeSzlgX6UWqbYxVvBHjAwC/vUP2zUHhc2DqApqEVEVWsiIUVbwcUaSfsBzX5tOL+RWN/ZeqqEQUAcpMcoK/rCBQcDznkpV+yxkRgd2f3ODUkCK1cMKPtYwzCyAKd5/3i9fDWADH9swRD/gVfBrAckWNyv4z/QMAl4FvxpQi+NmNyv4Q/pB+gFreKnBgbcvXn8pdlfZNez5vnrdZ+9droXE7GIFH6NjEKBqn6F087vKriJB2w+JwYl3f7yzLiDJ5GIF/6nOST9AanD8TuXmj2n7ILWNQtY0DkmDA3t+qP7rdyDRNMIKPrreuURPn18hivj6yiJl/NpTSYwhUT+AT36xIK62F0kWNxt4HNQ6qqjjS0uF/EKNjsrarMMHvDZJFhckFg8r+Git43FMjfOtTcOztfMHtc5l/82ziheoK0280iuhgX+WQkxEJNvGSNr4hmHPEa3rTeqrsQH4wAiJ1UP+L/GBEYlmN7m5eB6Px1dr6v7jV9Xof5WofFccMRGRYHaRm4b3D1+tmWEDvzZxxGBEvMlFbgreP8KiyncEhZoFJmvzsoijjSPkhuNfHMEcvzYS0/DOw0byYqyBLIs2De/kbfQICsr3+teJX1hZS3dttnL+AHpvNumR+ceNAAAAAElFTkSuQmCC", + imageUrl: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEYklEQVR4nO3VW0yTZxzH8QI9ACbb4g3J3OR2Zm64uaVXu/BChkMUhAotUlrKUQUqqLhDRnDJLnZQoLvYxRLneQSB0tLSw1ugnE9KC7y05QwFVDxBdt/fUhhb2dS97+sLvEv4J89NE5rP98mfpzze9mzP9rxwxNe84shLrjnRhQFfUHE/gov6EFzUg+Az3QhRdyGksAMhBe3g57eBn28H/3QL+KeaIThpgyCPgCDXCmGuGcIcE4TZjRBlGSDKbIBIpYdIVY/QDC1ClXUIVdQgLP0OwuTVCJNXITztN7ymrPJFFusXPv6uNYbHZMS3vOLQr5y+oHMDCDp7F5sdEH7iNsJTb+INxW3f/m9bxbQDdl92z/HOO7DVATtkNxBZpPPSDhB+OejjSsDr8ls+2gG8Eie4ErBDeh20/V+MLONzchkXyCWUDC+hZOgZzg89xbnBpzg7+ATFzicocjxeOWcGHkE98AiF9xZRcG8R+XcfIr//IU73P8Cpvgc42Xcfeb33kduzsHJyuueR3T2PrK45ZHbOQdXpharDi4yOWSjbZ6Fom0F62zTSW6chb51Cmn2KfgCX8CdaJukHrMc/21J8KpMArtx8asskZM0TDAI4hJcxCeASXto0Tj+AS/gUG4MALuGTbWP0A7iEP04wCOASXkKMMgvgCl5iZRDAJXySxUM/gEv4RCYBXMIfM7vpB3AJn8Ak4J/4vJ555HTOIrt9ZuVktU0js20aqtYpZNinoLRPQtkyCUXLBNLtk6zi400uBgGBN9+7ALlpCOKfDfjoJx32a1bPh5p6fFD599n35zlwlUCqhWQNH88kIHBtcrq8OHTTDoFaQ/kc+JVAWvM4K/ijjSP0A9btfPc8MppGEVVeSzlgX6UWqbYxVvBHjAwC/vUP2zUHhc2DqApqEVEVWsiIUVbwcUaSfsBzX5tOL+RWN/ZeqqEQUAcpMcoK/rCBQcDznkpV+yxkRgd2f3ODUkCK1cMKPtYwzCyAKd5/3i9fDWADH9swRD/gVfBrAckWNyv4z/QMAl4FvxpQi+NmNyv4Q/pB+gFreKnBgbcvXn8pdlfZNez5vnrdZ+9droXE7GIFH6NjEKBqn6F087vKriJB2w+JwYl3f7yzLiDJ5GIF/6nOST9AanD8TuXmj2n7ILWNQtY0DkmDA3t+qP7rdyDRNMIKPrreuURPn18hivj6yiJl/NpTSYwhUT+AT36xIK62F0kWNxt4HNQ6qqjjS0uF/EKNjsrarMMHvDZJFhckFg8r+Git43FMjfOtTcOztfMHtc5l/82ziheoK0280iuhgX+WQkxEJNvGSNr4hmHPEa3rTeqrsQH4wAiJ1UP+L/GBEYlmN7m5eB6Px1dr6v7jV9Xof5WofFccMRGRYHaRm4b3D1+tmWEDvzZxxGBEvMlFbgreP8KiyncEhZoFJmvzsoijjSPkhuNfHMEcvzYS0/DOw0byYqyBLIs2De/kbfQICsr3+teJX1hZS3dttnL+AHpvNumR+ceNAAAAAElFTkSuQmCC', imageWidth: 48, imageHeight: 48, title: translate.settings, @@ -540,7 +540,7 @@ } catch (error) { console.warn('访问跨源窗口属性失败,让弹出窗口自己设置窗口大小...:') const message = { - type: "qinwuyuan", + type: 'qinwuyuan', hostname: window.location.hostname } state.popupWindow.postMessage(message, '*') @@ -723,7 +723,7 @@ { label: translate('windowHeight') + ` (${config.windowHeight})`, action: () => { setWindowSize('height') } },//!SECTION -已无实际意义,脚本不会使用 */ { label: translate('showCountdown') + ` (${config.showCountdown ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdown') } }, { label: translate('showCountdowndrag') + ` (${config.showCountdowndrag ? '✅' : '❌'})`, action: () => { toggleSwitch('showCountdowndrag') } }, - { label: translate('saveWindowConfig') + ` (${config.saveWindowConfig ? '✅' : '❌'})`, action: () => { toggleSwitch('saveWindowConfig') } }, + { label: translate('saveWindowConfig') + ` (${config.saveWindowConfig ? '✅' : '❌'})`, action: () => { toggleSwitch('saveWindowConfig') } } ] for (const label in registeredMenuCommands) { GM_unregisterMenuCommand(registeredMenuCommands[label]) @@ -826,7 +826,7 @@ background: `linear-gradient(to right, ${colorStart}, ${colorEnd})`, borderRadius: '3px', boxShadow: '0 2px 5px rgba(0, 0, 0, 0.3)', - zIndex: '9999', + zIndex: '9999' }) document.body.appendChild(progressBar) return progressBar diff --git a/Script details/popup-window/preview/1.png b/popup-window/preview/1.png similarity index 100% rename from Script details/popup-window/preview/1.png rename to popup-window/preview/1.png diff --git a/Script details/popup-window/preview/video.mp4 b/popup-window/preview/video.mp4 similarity index 100% rename from Script details/popup-window/preview/video.mp4 rename to popup-window/preview/video.mp4 diff --git a/Script details/popup-window/preview/view.mp4 b/popup-window/preview/view.mp4 similarity index 100% rename from Script details/popup-window/preview/view.mp4 rename to popup-window/preview/view.mp4 diff --git a/pythonscr/merge-change-history/main-bak.py b/pythonscr/merge-change-history/main-bak.py deleted file mode 100644 index 382ae22e2..000000000 --- a/pythonscr/merge-change-history/main-bak.py +++ /dev/null @@ -1,121 +0,0 @@ -import os -import json -import re -import markdown # 确保导入 markdown 模块 -import subprocess -import time - - -def is_file_updated_more_than(file_path, timeout_minutes): - try: - # 使用 git log 获取文件的最后提交时间(Unix 时间戳) - result = subprocess.run( - ['git', 'log', '-1', '--format=%ct', file_path], - capture_output=True, text=True, check=True - ) - last_commit_time = int(result.stdout.strip()) - - # 获取当前时间的 Unix 时间戳 - current_time = int(time.time()) - - # 计算时间差(分钟) - time_diff_minutes = (current_time - last_commit_time) / 60 - - # 检查文件是否在超时时间之前被更新 - return time_diff_minutes > timeout_minutes - except subprocess.CalledProcessError as e: - print(f"错误: 无法获取提交时间 - {file_path}") - return None -# 定义分隔符和 JSON 文件路径 -SEPARATOR = 'https://media.chatgptautorefresh.com/images/separators/gradient-aqua.png?latest">' -json_file_path = 'docs/ScriptsPath.json' - -def md_to_html(md_file): - # 检查 Markdown 文件是否存在 - if not os.path.isfile(md_file): - print(f"文件 {md_file} 不存在。") - return None - - # 读取 Markdown 文件内容 - with open(md_file, 'r', encoding='utf-8') as f: - md_text = f.read() - - # 将 Markdown 转换为 HTML - html_text = markdown.markdown(md_text, extensions=['tables']) - - # 返回 HTML 文本字符串 - return html_text - -# 读取 JSON 文件 -with open(json_file_path, 'r', encoding='utf-8') as json_file: - data = json.load(json_file) - -# 遍历 JSON 数据中的每个脚本信息 -for script in data['scripts']: - backuppath = script.get('backuppath', '') - name = script.get('name', '') - description = script.get('description', '') - greasyfork_id = script.get('GreasyFork', '') - - # 检查 Change history/README.md 文件是否存在并转化为 HTML - readme_path = os.path.join(backuppath, "Change history", "README.md") - - readme_html = '' - if os.path.isfile(readme_path): - if is_file_updated_more_than(readme_path, 5): - print(f"合并历史:更新日志没有修改!跳过文件 {readme_path} ") - continue - readme_html = "
          更新记录"+md_to_html(readme_path)+"
          " - - # 检查 preview 图片是否存在 - img_path = os.path.join(backuppath, "preview", "statshistory.png") - img_tag = '' - isAddImage = True#添加历史安装图片 - if isAddImage:#if os.path.exists(img_path): - # img_tag = f'' - img_tag = f'' - #img_tag = f'' - # ?t=1861894861 - - # 准备要添加或替换的 HTML 代码 - html_content = f""" -
          -

          {name}

          -

          「 {description} 」

          - Views -

          Download:Github | ⭐Greasy - Fork

          {readme_html} - {img_tag} -
          -""" - - # 检查 backuppath 是否存在 - if backuppath and os.path.exists(backuppath): - # 遍历 backuppath 目录下的所有 .md 文件 - for file_name in os.listdir(backuppath): - if file_name.lower().endswith('.md'): - file_path = os.path.join(backuppath, file_name) - with open(file_path, 'r', encoding='utf-8') as file: - content = file.read() - - if SEPARATOR in content: - # 找到分隔符位置 - separator_index = content.index(SEPARATOR) + len(SEPARATOR) - after_separator = content[separator_index:] - - # 使用正则表达式匹配
          .*?
          - match = re.search(r'
          .*?
          ', after_separator, re.DOTALL) - - if match: - # 如果匹配成功,替换匹配的内容为新的 HTML 代码 - content = content[:separator_index] + re.sub(r'
          .*?
          ', html_content.strip(), after_separator, flags=re.DOTALL) - print(f"文档头部描述已替换: {file_path}") - else: - # 如果没有匹配成功,在分隔符下添加新的 HTML 代码 - content = content[:separator_index] + "\n" + html_content.strip() + after_separator - print(f"文档头部描述已添加: {file_path}") - - # 将修改后的内容写回文件 - with open(file_path, 'w', encoding='utf-8') as file: - file.write(content) diff --git a/pythonscr/translate-force-chinese-to-lang/Load.txt b/pythonscr/translate-force-chinese-to-lang/Load.txt deleted file mode 100644 index 4b017922f..000000000 --- a/pythonscr/translate-force-chinese-to-lang/Load.txt +++ /dev/null @@ -1 +0,0 @@ -translate_readme.py \ No newline at end of file diff --git a/pythonscr/translate-force-chinese-to-lang/table_all.json b/pythonscr/translate-force-chinese-to-lang/table_all.json deleted file mode 100644 index 197e2c278..000000000 --- a/pythonscr/translate-force-chinese-to-lang/table_all.json +++ /dev/null @@ -1,1154 +0,0 @@ -[ - { - "value": "---", - "nation": "---", - "code": "N/A", - "translated": false - }, - { - "value": "1", - "nation": "Afar", - "code": "aa", - "translated": false - }, - { - "value": "2", - "nation": "аҧсуа бызшәа", - "code": "ab", - "translated": false - }, - { - "value": "3", - "nation": "Avestan", - "code": "ae", - "translated": false - }, - { - "value": "4", - "nation": "Afrikaans", - "code": "af", - "translated": false - }, - { - "value": "5", - "nation": "Akan", - "code": "ak", - "translated": false - }, - { - "value": "6", - "nation": "አማርኛ", - "code": "am", - "translated": false - }, - { - "value": "7", - "nation": "العربية", - "code": "ar", - "translated": true - }, - { - "value": "8", - "nation": "Assamese", - "code": "as", - "translated": false - }, - { - "value": "9", - "nation": "Asturian", - "code": "ast", - "translated": false - }, - { - "value": "10", - "nation": "Avar", - "code": "av", - "translated": false - }, - { - "value": "11", - "nation": "Aymara", - "code": "ay", - "translated": false - }, - { - "value": "12", - "nation": "azərbaycan", - "code": "az", - "translated": false - }, - { - "value": "13", - "nation": "Bashkir", - "code": "ba", - "translated": false - }, - { - "value": "14", - "nation": "Беларуская", - "code": "be", - "translated": false - }, - { - "value": "15", - "nation": "Български", - "code": "bg", - "translated": true - }, - { - "value": "16", - "nation": "Bihari", - "code": "bh", - "translated": false - }, - { - "value": "17", - "nation": "Bislama", - "code": "bi", - "translated": false - }, - { - "value": "18", - "nation": "Bamanankan", - "code": "bm", - "translated": false - }, - { - "value": "19", - "nation": "Bengali", - "code": "bn", - "translated": false - }, - { - "value": "20", - "nation": "Tibetan", - "code": "bo", - "translated": false - }, - { - "value": "21", - "nation": "Breton", - "code": "br", - "translated": false - }, - { - "value": "22", - "nation": "Bosanski", - "code": "bs", - "translated": false - }, - { - "value": "23", - "nation": "Català", - "code": "ca", - "translated": false - }, - { - "value": "24", - "nation": "Chechen", - "code": "ce", - "translated": false - }, - { - "value": "25", - "nation": "Cebuano", - "code": "ceb", - "translated": false - }, - { - "value": "26", - "nation": "Chamorro", - "code": "ch", - "translated": false - }, - { - "value": "27", - "nation": "Cherokee", - "code": "chr", - "translated": false - }, - { - "value": "28", - "nation": "Corsican", - "code": "co", - "translated": false - }, - { - "value": "29", - "nation": "Cree", - "code": "cr", - "translated": false - }, - { - "value": "30", - "nation": "Čeština", - "code": "cs", - "translated": true - }, - { - "value": "31", - "nation": "Old Slavonic", - "code": "cu", - "translated": false - }, - { - "value": "32", - "nation": "Chuvash", - "code": "cv", - "translated": false - }, - { - "value": "33", - "nation": "Cymraeg", - "code": "cy", - "translated": false - }, - { - "value": "34", - "nation": "Dansk", - "code": "da", - "translated": true - }, - { - "value": "35", - "nation": "Deutsch", - "code": "de", - "translated": true - }, - { - "value": "36", - "nation": "Maldivian", - "code": "dv", - "translated": false - }, - { - "value": "37", - "nation": "Bhutani", - "code": "dz", - "translated": false - }, - { - "value": "38", - "nation": "Ɛʋɛ", - "code": "ee", - "translated": false - }, - { - "value": "39", - "nation": "Ελληνικά", - "code": "el", - "translated": true - }, - { - "value": "40", - "nation": "English", - "code": "en", - "translated": true - }, - { - "value": "41", - "nation": "Esperanto", - "code": "eo", - "translated": true - }, - { - "value": "42", - "nation": "Español", - "code": "es", - "translated": true - }, - { - "value": "43", - "nation": "Eesti", - "code": "et", - "translated": false - }, - { - "value": "44", - "nation": "Euskera", - "code": "eu", - "translated": false - }, - { - "value": "45", - "nation": "فارسی", - "code": "fa", - "translated": false - }, - { - "value": "46", - "nation": "Fulfulde", - "code": "ff", - "translated": false - }, - { - "value": "47", - "nation": "Suomi", - "code": "fi", - "translated": true - }, - { - "value": "48", - "nation": "Filipino", - "code": "fil", - "translated": false - }, - { - "value": "49", - "nation": "Fiji", - "code": "fj", - "translated": false - }, - { - "value": "50", - "nation": "Faeroese", - "code": "fo", - "translated": false - }, - { - "value": "51", - "nation": "Français", - "code": "fr", - "translated": true - }, - { - "value": "52", - "nation": "Frysk", - "code": "fy", - "translated": false - }, - { - "value": "53", - "nation": "Gaeilge", - "code": "ga", - "translated": false - }, - { - "value": "54", - "nation": "Scots Gaelic", - "code": "gd", - "translated": false - }, - { - "value": "55", - "nation": "Galego", - "code": "gl", - "translated": false - }, - { - "value": "56", - "nation": "Guarani", - "code": "gn", - "translated": false - }, - { - "value": "57", - "nation": "Swiss German", - "code": "gsw-berne", - "translated": false - }, - { - "value": "58", - "nation": "Gujarati", - "code": "gu", - "translated": false - }, - { - "value": "59", - "nation": "Manx", - "code": "gv", - "translated": false - }, - { - "value": "60", - "nation": "Hausa", - "code": "ha", - "translated": false - }, - { - "value": "61", - "nation": "עברית", - "code": "he", - "translated": true - }, - { - "value": "62", - "nation": "हिन्दी", - "code": "hi", - "translated": false - }, - { - "value": "63", - "nation": "Hmong", - "code": "hmn", - "translated": false - }, - { - "value": "64", - "nation": "Hiri Motu", - "code": "ho", - "translated": false - }, - { - "value": "65", - "nation": "Hrvatski", - "code": "hr", - "translated": true - }, - { - "value": "66", - "nation": "Haitian Creole", - "code": "ht", - "translated": false - }, - { - "value": "67", - "nation": "Magyar", - "code": "hu", - "translated": true - }, - { - "value": "68", - "nation": "Հայերեն", - "code": "hy", - "translated": false - }, - { - "value": "69", - "nation": "Herero", - "code": "hz", - "translated": false - }, - { - "value": "70", - "nation": "Interlingua", - "code": "ia", - "translated": false - }, - { - "value": "71", - "nation": "Bahasa Indonesia", - "code": "id", - "translated": true - }, - { - "value": "72", - "nation": "Interlingue", - "code": "ie", - "translated": false - }, - { - "value": "73", - "nation": "Igbo", - "code": "ig", - "translated": false - }, - { - "value": "74", - "nation": "Inupiak", - "code": "ik", - "translated": false - }, - { - "value": "75", - "nation": "Íslenska", - "code": "is", - "translated": false - }, - { - "value": "76", - "nation": "Italiano", - "code": "it", - "translated": true - }, - { - "value": "77", - "nation": "Inuktitut", - "code": "iu", - "translated": false - }, - { - "value": "78", - "nation": "日本語", - "code": "ja", - "translated": true - }, - { - "value": "79", - "nation": "Javanese", - "code": "jv", - "translated": false - }, - { - "value": "80", - "nation": "Georgian", - "code": "ka", - "translated": true - }, - { - "value": "81", - "nation": "Kongo", - "code": "kg", - "translated": false - }, - { - "value": "82", - "nation": "Kikuyu", - "code": "ki", - "translated": false - }, - { - "value": "83", - "nation": "Kwanyama", - "code": "kj", - "translated": false - }, - { - "value": "84", - "nation": "Қазақ", - "code": "kk", - "translated": false - }, - { - "value": "85", - "nation": "Greenlandic", - "code": "kl", - "translated": false - }, - { - "value": "86", - "nation": "Cambodian", - "code": "km", - "translated": false - }, - { - "value": "87", - "nation": "ಕನ್ನಡ", - "code": "kn", - "translated": false - }, - { - "value": "88", - "nation": "한국어", - "code": "ko", - "translated": true - }, - { - "value": "89", - "nation": "Kanuri", - "code": "kr", - "translated": false - }, - { - "value": "90", - "nation": "Kashmiri", - "code": "ks", - "translated": false - }, - { - "value": "91", - "nation": "Kurdî", - "code": "ku", - "translated": false - }, - { - "value": "92", - "nation": "Komi", - "code": "kv", - "translated": false - }, - { - "value": "93", - "nation": "Cornish", - "code": "kw", - "translated": false - }, - { - "value": "94", - "nation": "Кыргызча", - "code": "ky", - "translated": false - }, - { - "value": "95", - "nation": "Latina", - "code": "la", - "translated": false - }, - { - "value": "96", - "nation": "Luxembourgish", - "code": "lb", - "translated": false - }, - { - "value": "97", - "nation": "Luganda", - "code": "lg", - "translated": false - }, - { - "value": "98", - "nation": "Limbu", - "code": "lif", - "translated": false - }, - { - "value": "99", - "nation": "Lingala", - "code": "ln", - "translated": false - }, - { - "value": "100", - "nation": "Laothian", - "code": "lo", - "translated": false - }, - { - "value": "101", - "nation": "Lietuvių", - "code": "lt", - "translated": false - }, - { - "value": "102", - "nation": "Latviešu", - "code": "lv", - "translated": false - }, - { - "value": "103", - "nation": "Malagasy", - "code": "mg", - "translated": false - }, - { - "value": "104", - "nation": "Marshallese", - "code": "mh", - "translated": false - }, - { - "value": "105", - "nation": "Māori", - "code": "mi", - "translated": false - }, - { - "value": "106", - "nation": "Македонски", - "code": "mk", - "translated": false - }, - { - "value": "107", - "nation": "മലയാളം", - "code": "ml", - "translated": false - }, - { - "value": "108", - "nation": "Mongolian", - "code": "mn", - "translated": false - }, - { - "value": "109", - "nation": "Moldavian", - "code": "mo", - "translated": false - }, - { - "value": "110", - "nation": "Marathi", - "code": "mr", - "translated": false - }, - { - "value": "111", - "nation": "Bahasa Melayu", - "code": "ms", - "translated": false - }, - { - "value": "112", - "nation": "Malti", - "code": "mt", - "translated": false - }, - { - "value": "113", - "nation": "Burmese", - "code": "my", - "translated": false - }, - { - "value": "114", - "nation": "Nauru", - "code": "na", - "translated": false - }, - { - "value": "115", - "nation": "North Ndebele", - "code": "nd", - "translated": false - }, - { - "value": "116", - "nation": "Nepali", - "code": "ne", - "translated": false - }, - { - "value": "117", - "nation": "Ndonga", - "code": "ng", - "translated": false - }, - { - "value": "118", - "nation": "Nederlands", - "code": "nl", - "translated": true - }, - { - "value": "119", - "nation": "Bokmål", - "code": "nb", - "translated": true - }, - { - "value": "120", - "nation": "Nynorsk", - "code": "nn", - "translated": false - }, - { - "value": "121", - "nation": "South Ndebele", - "code": "nr", - "translated": false - }, - { - "value": "122", - "nation": "Navajo", - "code": "nv", - "translated": false - }, - { - "value": "123", - "nation": "Chichewa", - "code": "ny", - "translated": false - }, - { - "value": "124", - "nation": "Occitan", - "code": "oc", - "translated": false - }, - { - "value": "125", - "nation": "Oromo", - "code": "om", - "translated": false - }, - { - "value": "126", - "nation": "Oriya", - "code": "or", - "translated": false - }, - { - "value": "127", - "nation": "Ossetian", - "code": "os", - "translated": false - }, - { - "value": "128", - "nation": "Punjabi", - "code": "pa", - "translated": false - }, - { - "value": "129", - "nation": "Pali", - "code": "pi", - "translated": false - }, - { - "value": "130", - "nation": "Polski", - "code": "pl", - "translated": true - }, - { - "value": "131", - "nation": "پښتو", - "code": "ps", - "translated": false - }, - { - "value": "132", - "nation": "Portuguese, International", - "code": "pt", - "translated": false - }, - { - "value": "133", - "nation": "Português", - "code": "pt-PT", - "translated": false - }, - { - "value": "134", - "nation": "Português do Brasil", - "code": "pt-BR", - "translated": true - }, - { - "value": "135", - "nation": "Quechua", - "code": "qu", - "translated": false - }, - { - "value": "136", - "nation": "Rhaeto-Romance", - "code": "rm", - "translated": false - }, - { - "value": "137", - "nation": "Kirundi", - "code": "rn", - "translated": false - }, - { - "value": "138", - "nation": "Română", - "code": "ro", - "translated": true - }, - { - "value": "139", - "nation": "Русский", - "code": "ru", - "translated": true - }, - { - "value": "140", - "nation": "Kinyarwanda", - "code": "rw", - "translated": false - }, - { - "value": "141", - "nation": "Sanskrit", - "code": "sa", - "translated": false - }, - { - "value": "142", - "nation": "Sardinian", - "code": "sc", - "translated": false - }, - { - "value": "143", - "nation": "Scots", - "code": "sco", - "translated": false - }, - { - "value": "144", - "nation": "Sindhi", - "code": "sd", - "translated": false - }, - { - "value": "145", - "nation": "Northern Sami", - "code": "se", - "translated": false - }, - { - "value": "146", - "nation": "Sango", - "code": "sg", - "translated": false - }, - { - "value": "147", - "nation": "Serbo-Croatian", - "code": "sh", - "translated": false - }, - { - "value": "148", - "nation": "සිංහල", - "code": "si", - "translated": false - }, - { - "value": "149", - "nation": "Slovenčina", - "code": "sk", - "translated": true - }, - { - "value": "150", - "nation": "Slovenščina", - "code": "sl", - "translated": false - }, - { - "value": "151", - "nation": "Samoan", - "code": "sm", - "translated": false - }, - { - "value": "152", - "nation": "Shona", - "code": "sn", - "translated": false - }, - { - "value": "153", - "nation": "Somali", - "code": "so", - "translated": false - }, - { - "value": "154", - "nation": "Shqip", - "code": "sq", - "translated": false - }, - { - "value": "155", - "nation": "Српски", - "code": "sr", - "translated": true - }, - { - "value": "156", - "nation": "Siswati", - "code": "ss", - "translated": false - }, - { - "value": "157", - "nation": "Sesotho", - "code": "st", - "translated": false - }, - { - "value": "158", - "nation": "Sudanese", - "code": "su", - "translated": false - }, - { - "value": "159", - "nation": "Svenska", - "code": "sv", - "translated": true - }, - { - "value": "160", - "nation": "Kiswahili", - "code": "sw", - "translated": false - }, - { - "value": "161", - "nation": "Syriac", - "code": "syr", - "translated": false - }, - { - "value": "162", - "nation": "தமிழ்", - "code": "ta", - "translated": false - }, - { - "value": "163", - "nation": "తెలుగు", - "code": "te", - "translated": false - }, - { - "value": "164", - "nation": "Tajik", - "code": "tg", - "translated": false - }, - { - "value": "165", - "nation": "ภาษาไทย", - "code": "th", - "translated": true - }, - { - "value": "166", - "nation": "Tigrinya", - "code": "ti", - "translated": false - }, - { - "value": "167", - "nation": "Turkmen", - "code": "tk", - "translated": false - }, - { - "value": "168", - "nation": "Tagalog", - "code": "tl", - "translated": false - }, - { - "value": "169", - "nation": "Setswana", - "code": "tn", - "translated": false - }, - { - "value": "170", - "nation": "Tonga", - "code": "to", - "translated": false - }, - { - "value": "171", - "nation": "Türkçe", - "code": "tr", - "translated": true - }, - { - "value": "172", - "nation": "Tsonga", - "code": "ts", - "translated": false - }, - { - "value": "173", - "nation": "Tatarça", - "code": "tt", - "translated": false - }, - { - "value": "174", - "nation": "Twi", - "code": "tw", - "translated": false - }, - { - "value": "175", - "nation": "Tahitian", - "code": "ty", - "translated": false - }, - { - "value": "176", - "nation": "ئۇيغۇرچە", - "code": "ug", - "translated": true - }, - { - "value": "177", - "nation": "Українська", - "code": "uk", - "translated": true - }, - { - "value": "178", - "nation": "اردو", - "code": "ur", - "translated": false - }, - { - "value": "179", - "nation": "o'zbek", - "code": "uz", - "translated": false - }, - { - "value": "180", - "nation": "Venda", - "code": "ve", - "translated": false - }, - { - "value": "181", - "nation": "Tiếng Việt", - "code": "vi", - "translated": true - }, - { - "value": "182", - "nation": "Wolof", - "code": "wo", - "translated": false - }, - { - "value": "183", - "nation": "isiXhosa", - "code": "xh", - "translated": false - }, - { - "value": "184", - "nation": "Yiddish", - "code": "yi", - "translated": false - }, - { - "value": "185", - "nation": "Yorùbá", - "code": "yo", - "translated": false - }, - { - "value": "186", - "nation": "Zhuang", - "code": "za", - "translated": false - }, - { - "value": "187", - "nation": "简体中文", - "code": "zh-CN", - "translated": false - }, - { - "value": "188", - "nation": "繁體中文", - "code": "zh-TW", - "translated": true - }, - { - "value": "189", - "nation": "isiZulu", - "code": "zu", - "translated": false - }, - { - "value": "190", - "nation": "Français canadien", - "code": "fr-CA", - "translated": true - }, - { - "value": "191", - "nation": "کوردیی ناوەندی", - "code": "ckb", - "translated": true - } -] \ No newline at end of file diff --git a/pythonscr/translate-force-chinese-to-lang/table_gf.json b/pythonscr/translate-force-chinese-to-lang/table_gf.json deleted file mode 100644 index 61707a740..000000000 --- a/pythonscr/translate-force-chinese-to-lang/table_gf.json +++ /dev/null @@ -1,1154 +0,0 @@ -[ - { - "value": "1", - "nation": "Afar", - "code": "aa", - "translated": false - }, - { - "value": "2", - "nation": "аҧсуа бызшәа", - "code": "ab", - "translated": false - }, - { - "value": "3", - "nation": "Avestan", - "code": "ae", - "translated": false - }, - { - "value": "4", - "nation": "Afrikaans", - "code": "af", - "translated": false - }, - { - "value": "5", - "nation": "Akan", - "code": "ak", - "translated": false - }, - { - "value": "6", - "nation": "አማርኛ", - "code": "am", - "translated": false - }, - { - "value": "7", - "nation": "العربية", - "code": "ar", - "translated": true - }, - { - "value": "8", - "nation": "Assamese", - "code": "as", - "translated": false - }, - { - "value": "9", - "nation": "Asturian", - "code": "ast", - "translated": false - }, - { - "value": "10", - "nation": "Avar", - "code": "av", - "translated": false - }, - { - "value": "11", - "nation": "Aymara", - "code": "ay", - "translated": false - }, - { - "value": "12", - "nation": "azərbaycan", - "code": "az", - "translated": false - }, - { - "value": "13", - "nation": "Bashkir", - "code": "ba", - "translated": false - }, - { - "value": "14", - "nation": "Беларуская", - "code": "be", - "translated": false - }, - { - "value": "15", - "nation": "Български", - "code": "bg", - "translated": true - }, - { - "value": "16", - "nation": "Bihari", - "code": "bh", - "translated": false - }, - { - "value": "17", - "nation": "Bislama", - "code": "bi", - "translated": false - }, - { - "value": "18", - "nation": "Bamanankan", - "code": "bm", - "translated": false - }, - { - "value": "19", - "nation": "Bengali", - "code": "bn", - "translated": false - }, - { - "value": "20", - "nation": "Tibetan", - "code": "bo", - "translated": false - }, - { - "value": "21", - "nation": "Breton", - "code": "br", - "translated": false - }, - { - "value": "22", - "nation": "Bosanski", - "code": "bs", - "translated": false - }, - { - "value": "23", - "nation": "Català", - "code": "ca", - "translated": false - }, - { - "value": "24", - "nation": "Chechen", - "code": "ce", - "translated": false - }, - { - "value": "25", - "nation": "Cebuano", - "code": "ceb", - "translated": false - }, - { - "value": "26", - "nation": "Chamorro", - "code": "ch", - "translated": false - }, - { - "value": "27", - "nation": "Cherokee", - "code": "chr", - "translated": false - }, - { - "value": "28", - "nation": "Corsican", - "code": "co", - "translated": false - }, - { - "value": "29", - "nation": "Cree", - "code": "cr", - "translated": false - }, - { - "value": "30", - "nation": "Čeština", - "code": "cs", - "translated": true - }, - { - "value": "31", - "nation": "Old Slavonic", - "code": "cu", - "translated": false - }, - { - "value": "32", - "nation": "Chuvash", - "code": "cv", - "translated": false - }, - { - "value": "33", - "nation": "Cymraeg", - "code": "cy", - "translated": false - }, - { - "value": "34", - "nation": "Dansk", - "code": "da", - "translated": true - }, - { - "value": "35", - "nation": "Deutsch", - "code": "de", - "translated": true - }, - { - "value": "36", - "nation": "Maldivian", - "code": "dv", - "translated": false - }, - { - "value": "37", - "nation": "Bhutani", - "code": "dz", - "translated": false - }, - { - "value": "38", - "nation": "Ɛʋɛ", - "code": "ee", - "translated": false - }, - { - "value": "39", - "nation": "Ελληνικά", - "code": "el", - "translated": true - }, - { - "value": "40", - "nation": "English", - "code": "en", - "translated": true - }, - { - "value": "41", - "nation": "Esperanto", - "code": "eo", - "translated": true - }, - { - "value": "42", - "nation": "Español", - "code": "es", - "translated": true - }, - { - "value": "43", - "nation": "Eesti", - "code": "et", - "translated": false - }, - { - "value": "44", - "nation": "Euskera", - "code": "eu", - "translated": false - }, - { - "value": "45", - "nation": "فارسی", - "code": "fa", - "translated": false - }, - { - "value": "46", - "nation": "Fulfulde", - "code": "ff", - "translated": false - }, - { - "value": "47", - "nation": "Suomi", - "code": "fi", - "translated": true - }, - { - "value": "48", - "nation": "Filipino", - "code": "fil", - "translated": false - }, - { - "value": "49", - "nation": "Fiji", - "code": "fj", - "translated": false - }, - { - "value": "50", - "nation": "Faeroese", - "code": "fo", - "translated": false - }, - { - "value": "51", - "nation": "Français", - "code": "fr", - "translated": true - }, - { - "value": "52", - "nation": "Frysk", - "code": "fy", - "translated": false - }, - { - "value": "53", - "nation": "Gaeilge", - "code": "ga", - "translated": false - }, - { - "value": "54", - "nation": "Scots Gaelic", - "code": "gd", - "translated": false - }, - { - "value": "55", - "nation": "Galego", - "code": "gl", - "translated": false - }, - { - "value": "56", - "nation": "Guarani", - "code": "gn", - "translated": false - }, - { - "value": "57", - "nation": "Swiss German", - "code": "gsw-berne", - "translated": false - }, - { - "value": "58", - "nation": "Gujarati", - "code": "gu", - "translated": false - }, - { - "value": "59", - "nation": "Manx", - "code": "gv", - "translated": false - }, - { - "value": "60", - "nation": "Hausa", - "code": "ha", - "translated": false - }, - { - "value": "61", - "nation": "עברית", - "code": "he", - "translated": true - }, - { - "value": "62", - "nation": "हिन्दी", - "code": "hi", - "translated": false - }, - { - "value": "63", - "nation": "Hmong", - "code": "hmn", - "translated": false - }, - { - "value": "64", - "nation": "Hiri Motu", - "code": "ho", - "translated": false - }, - { - "value": "65", - "nation": "Hrvatski", - "code": "hr", - "translated": true - }, - { - "value": "66", - "nation": "Haitian Creole", - "code": "ht", - "translated": false - }, - { - "value": "67", - "nation": "Magyar", - "code": "hu", - "translated": true - }, - { - "value": "68", - "nation": "Հայերեն", - "code": "hy", - "translated": false - }, - { - "value": "69", - "nation": "Herero", - "code": "hz", - "translated": false - }, - { - "value": "70", - "nation": "Interlingua", - "code": "ia", - "translated": false - }, - { - "value": "71", - "nation": "Bahasa Indonesia", - "code": "id", - "translated": true - }, - { - "value": "72", - "nation": "Interlingue", - "code": "ie", - "translated": false - }, - { - "value": "73", - "nation": "Igbo", - "code": "ig", - "translated": false - }, - { - "value": "74", - "nation": "Inupiak", - "code": "ik", - "translated": false - }, - { - "value": "75", - "nation": "Íslenska", - "code": "is", - "translated": false - }, - { - "value": "76", - "nation": "Italiano", - "code": "it", - "translated": true - }, - { - "value": "77", - "nation": "Inuktitut", - "code": "iu", - "translated": false - }, - { - "value": "78", - "nation": "日本語", - "code": "ja", - "translated": true - }, - { - "value": "79", - "nation": "Javanese", - "code": "jv", - "translated": false - }, - { - "value": "80", - "nation": "Georgian", - "code": "ka", - "translated": true - }, - { - "value": "81", - "nation": "Kongo", - "code": "kg", - "translated": false - }, - { - "value": "82", - "nation": "Kikuyu", - "code": "ki", - "translated": false - }, - { - "value": "83", - "nation": "Kwanyama", - "code": "kj", - "translated": false - }, - { - "value": "84", - "nation": "Қазақ", - "code": "kk", - "translated": false - }, - { - "value": "85", - "nation": "Greenlandic", - "code": "kl", - "translated": false - }, - { - "value": "86", - "nation": "Cambodian", - "code": "km", - "translated": false - }, - { - "value": "87", - "nation": "ಕನ್ನಡ", - "code": "kn", - "translated": false - }, - { - "value": "88", - "nation": "한국어", - "code": "ko", - "translated": true - }, - { - "value": "89", - "nation": "Kanuri", - "code": "kr", - "translated": false - }, - { - "value": "90", - "nation": "Kashmiri", - "code": "ks", - "translated": false - }, - { - "value": "91", - "nation": "Kurdî", - "code": "ku", - "translated": false - }, - { - "value": "92", - "nation": "Komi", - "code": "kv", - "translated": false - }, - { - "value": "93", - "nation": "Cornish", - "code": "kw", - "translated": false - }, - { - "value": "94", - "nation": "Кыргызча", - "code": "ky", - "translated": false - }, - { - "value": "95", - "nation": "Latina", - "code": "la", - "translated": false - }, - { - "value": "96", - "nation": "Luxembourgish", - "code": "lb", - "translated": false - }, - { - "value": "97", - "nation": "Luganda", - "code": "lg", - "translated": false - }, - { - "value": "98", - "nation": "Limbu", - "code": "lif", - "translated": false - }, - { - "value": "99", - "nation": "Lingala", - "code": "ln", - "translated": false - }, - { - "value": "100", - "nation": "Laothian", - "code": "lo", - "translated": false - }, - { - "value": "101", - "nation": "Lietuvių", - "code": "lt", - "translated": false - }, - { - "value": "102", - "nation": "Latviešu", - "code": "lv", - "translated": false - }, - { - "value": "103", - "nation": "Malagasy", - "code": "mg", - "translated": false - }, - { - "value": "104", - "nation": "Marshallese", - "code": "mh", - "translated": false - }, - { - "value": "105", - "nation": "Māori", - "code": "mi", - "translated": false - }, - { - "value": "106", - "nation": "Македонски", - "code": "mk", - "translated": false - }, - { - "value": "107", - "nation": "മലയാളം", - "code": "ml", - "translated": false - }, - { - "value": "108", - "nation": "Mongolian", - "code": "mn", - "translated": false - }, - { - "value": "109", - "nation": "Moldavian", - "code": "mo", - "translated": false - }, - { - "value": "110", - "nation": "Marathi", - "code": "mr", - "translated": false - }, - { - "value": "111", - "nation": "Bahasa Melayu", - "code": "ms", - "translated": false - }, - { - "value": "112", - "nation": "Malti", - "code": "mt", - "translated": false - }, - { - "value": "113", - "nation": "Burmese", - "code": "my", - "translated": false - }, - { - "value": "114", - "nation": "Nauru", - "code": "na", - "translated": false - }, - { - "value": "115", - "nation": "North Ndebele", - "code": "nd", - "translated": false - }, - { - "value": "116", - "nation": "Nepali", - "code": "ne", - "translated": false - }, - { - "value": "117", - "nation": "Ndonga", - "code": "ng", - "translated": false - }, - { - "value": "118", - "nation": "Nederlands", - "code": "nl", - "translated": true - }, - { - "value": "119", - "nation": "Bokmål", - "code": "nb", - "translated": true - }, - { - "value": "120", - "nation": "Nynorsk", - "code": "nn", - "translated": false - }, - { - "value": "121", - "nation": "South Ndebele", - "code": "nr", - "translated": false - }, - { - "value": "122", - "nation": "Navajo", - "code": "nv", - "translated": false - }, - { - "value": "123", - "nation": "Chichewa", - "code": "ny", - "translated": false - }, - { - "value": "124", - "nation": "Occitan", - "code": "oc", - "translated": false - }, - { - "value": "125", - "nation": "Oromo", - "code": "om", - "translated": false - }, - { - "value": "126", - "nation": "Oriya", - "code": "or", - "translated": false - }, - { - "value": "127", - "nation": "Ossetian", - "code": "os", - "translated": false - }, - { - "value": "128", - "nation": "Punjabi", - "code": "pa", - "translated": false - }, - { - "value": "129", - "nation": "Pali", - "code": "pi", - "translated": false - }, - { - "value": "130", - "nation": "Polski", - "code": "pl", - "translated": true - }, - { - "value": "131", - "nation": "پښتو", - "code": "ps", - "translated": false - }, - { - "value": "132", - "nation": "Portuguese, International", - "code": "pt", - "translated": false - }, - { - "value": "133", - "nation": "Português", - "code": "pt-PT", - "translated": false - }, - { - "value": "134", - "nation": "Português do Brasil", - "code": "pt-BR", - "translated": true - }, - { - "value": "135", - "nation": "Quechua", - "code": "qu", - "translated": false - }, - { - "value": "136", - "nation": "Rhaeto-Romance", - "code": "rm", - "translated": false - }, - { - "value": "137", - "nation": "Kirundi", - "code": "rn", - "translated": false - }, - { - "value": "138", - "nation": "Română", - "code": "ro", - "translated": true - }, - { - "value": "139", - "nation": "Русский", - "code": "ru", - "translated": true - }, - { - "value": "140", - "nation": "Kinyarwanda", - "code": "rw", - "translated": false - }, - { - "value": "141", - "nation": "Sanskrit", - "code": "sa", - "translated": false - }, - { - "value": "142", - "nation": "Sardinian", - "code": "sc", - "translated": false - }, - { - "value": "143", - "nation": "Scots", - "code": "sco", - "translated": false - }, - { - "value": "144", - "nation": "Sindhi", - "code": "sd", - "translated": false - }, - { - "value": "145", - "nation": "Northern Sami", - "code": "se", - "translated": false - }, - { - "value": "146", - "nation": "Sango", - "code": "sg", - "translated": false - }, - { - "value": "147", - "nation": "Serbo-Croatian", - "code": "sh", - "translated": false - }, - { - "value": "148", - "nation": "සිංහල", - "code": "si", - "translated": false - }, - { - "value": "149", - "nation": "Slovenčina", - "code": "sk", - "translated": true - }, - { - "value": "150", - "nation": "Slovenščina", - "code": "sl", - "translated": false - }, - { - "value": "151", - "nation": "Samoan", - "code": "sm", - "translated": false - }, - { - "value": "152", - "nation": "Shona", - "code": "sn", - "translated": false - }, - { - "value": "153", - "nation": "Somali", - "code": "so", - "translated": false - }, - { - "value": "154", - "nation": "Shqip", - "code": "sq", - "translated": false - }, - { - "value": "155", - "nation": "Српски", - "code": "sr", - "translated": true - }, - { - "value": "156", - "nation": "Siswati", - "code": "ss", - "translated": false - }, - { - "value": "157", - "nation": "Sesotho", - "code": "st", - "translated": false - }, - { - "value": "158", - "nation": "Sudanese", - "code": "su", - "translated": false - }, - { - "value": "159", - "nation": "Svenska", - "code": "sv", - "translated": true - }, - { - "value": "160", - "nation": "Kiswahili", - "code": "sw", - "translated": false - }, - { - "value": "161", - "nation": "Syriac", - "code": "syr", - "translated": false - }, - { - "value": "162", - "nation": "தமிழ்", - "code": "ta", - "translated": false - }, - { - "value": "163", - "nation": "తెలుగు", - "code": "te", - "translated": false - }, - { - "value": "164", - "nation": "Tajik", - "code": "tg", - "translated": false - }, - { - "value": "165", - "nation": "ภาษาไทย", - "code": "th", - "translated": true - }, - { - "value": "166", - "nation": "Tigrinya", - "code": "ti", - "translated": false - }, - { - "value": "167", - "nation": "Turkmen", - "code": "tk", - "translated": false - }, - { - "value": "168", - "nation": "Tagalog", - "code": "tl", - "translated": false - }, - { - "value": "169", - "nation": "Setswana", - "code": "tn", - "translated": false - }, - { - "value": "170", - "nation": "Tonga", - "code": "to", - "translated": false - }, - { - "value": "171", - "nation": "Türkçe", - "code": "tr", - "translated": true - }, - { - "value": "172", - "nation": "Tsonga", - "code": "ts", - "translated": false - }, - { - "value": "173", - "nation": "Tatarça", - "code": "tt", - "translated": false - }, - { - "value": "174", - "nation": "Twi", - "code": "tw", - "translated": false - }, - { - "value": "175", - "nation": "Tahitian", - "code": "ty", - "translated": false - }, - { - "value": "176", - "nation": "ئۇيغۇرچە", - "code": "ug", - "translated": true - }, - { - "value": "177", - "nation": "Українська", - "code": "uk", - "translated": true - }, - { - "value": "178", - "nation": "اردو", - "code": "ur", - "translated": false - }, - { - "value": "179", - "nation": "o'zbek", - "code": "uz", - "translated": false - }, - { - "value": "180", - "nation": "Venda", - "code": "ve", - "translated": false - }, - { - "value": "181", - "nation": "Tiếng Việt", - "code": "vi", - "translated": true - }, - { - "value": "182", - "nation": "Wolof", - "code": "wo", - "translated": false - }, - { - "value": "183", - "nation": "isiXhosa", - "code": "xh", - "translated": false - }, - { - "value": "184", - "nation": "Yiddish", - "code": "yi", - "translated": false - }, - { - "value": "185", - "nation": "Yorùbá", - "code": "yo", - "translated": false - }, - { - "value": "186", - "nation": "Zhuang", - "code": "za", - "translated": false - }, - { - "value": "187", - "nation": "简体中文", - "code": "zh-CN", - "translated": false - }, - { - "value": "188", - "nation": "繁體中文", - "code": "zh-TW", - "translated": true - }, - { - "value": "188", - "nation": "繁體中文", - "code": "zh-HK", - "translated": true - }, - { - "value": "189", - "nation": "isiZulu", - "code": "zu", - "translated": false - }, - { - "value": "190", - "nation": "Français canadien", - "code": "fr-CA", - "translated": true - }, - { - "value": "191", - "nation": "کوردیی ناوەندی", - "code": "t", - "translated": false - } -] \ No newline at end of file diff --git a/pythonscr/translate-force-chinese-to-lang/translate_readme.json b/pythonscr/translate-force-chinese-to-lang/translate_readme.json deleted file mode 100644 index 34b1cda41..000000000 --- a/pythonscr/translate-force-chinese-to-lang/translate_readme.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "translatelist": [ - { - "foldpath": "", - "translatefile": "docs/README.md", - "translatedto": [ - "en", - "ko", - "vi", - "ja", - "zh-TW" - ], - "translated": true - }, - { - "foldpath": "Script details/GreasyFork User Control Panel Button/", - "translatefile": "README.md", - "translatedto": [ - "zh-TW" - ], - "translated": false - }, - { - "foldpath": "Script details/移除链接下划线/", - "translatefile": "README.md", - "translatedto": [ - "fr", - "es", - "de", - "it", - "bh", - "ko", - "th", - "sr", - "sv", - "vi", - "ru", - "de", - "id", - "hu", - "he", - "eo" - ], - "translated": false - }, - { - "foldpath": "Script details/糊裱匠/", - "translatefile": "README_zh-CN.md", - "translatedto": [ - "fr", - "vi", - "it", - "bh", - "ko", - "th", - "sr", - "sv", - "vi", - "ru", - "de", - "id", - "hu", - "he", - "eo" - ], - "translated": false - }, - { - "foldpath": "Script details/ChatGPT+/", - "translatefile": "README.md", - "translatedto": [ - "vi" - ], - "translated": false - } - ] -} \ No newline at end of file diff --git a/pythonscr/update-all-script/main.py b/pythonscr/update-all-script/main.py deleted file mode 100644 index 042764c8b..000000000 --- a/pythonscr/update-all-script/main.py +++ /dev/null @@ -1,75 +0,0 @@ -import json -import os -import sys -sys.dont_write_bytecode = True -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from content_snippet import get_file_description -from writer import process_markdown -# 读取JSON文件 -def read_json(file_path): - with open(file_path, 'r', encoding='utf-8') as file: - return json.load(file) -# 根据relatedscripts的id找到对应的脚本 -def find_script_by_greasyfork_id(scripts, greasyfork_id): - for script in scripts: - if str(script.get('GreasyFork')) == str(greasyfork_id): - return script - return None -# 生成描述信息,仅针对当前脚本的relatedscripts -def generate_description(all_scripts): - related_scripts_map = {} - # 遍历所有脚本,收集相同 relatedscripts 的脚本信息 - for script in all_scripts: - relatedscripts_category = script.get('relatedscripts') - if relatedscripts_category: - if relatedscripts_category not in related_scripts_map: - related_scripts_map[relatedscripts_category] = [] - greasyfork_id = script.get('GreasyFork', '未知ID') - name = script.get('name', '未知名称') - description = script.get('description', '无描述') - # 存储相关脚本的信息 - related_scripts_map[relatedscripts_category].append({ - 'name': name, - 'description': description, - 'link': f"https://greasyfork.org/scripts/{greasyfork_id}" - }) - # 生成描述信息 - descriptions = [] - for category, scripts in related_scripts_map.items(): - descriptions.append( - f'\n\n\n> ### 🔍你可能在找 {category}') - for script in scripts: - link = f"[**{script['name']}**]({script['link']})" - descriptions.append(f"> - {link}: {script['description']}") - return "\n".join(descriptions) + "\n\n" - -def main(): - json_path = 'docs/ScriptsPath.json' - # 读取并解析JSON - data = read_json(json_path) - scripts = data.get('scripts', []) - # 遍历每个脚本,处理它的backuppath - for script in scripts: - backuppath = script.get('backuppath', '') - if backuppath and os.path.isdir(backuppath): - descriptions = generate_description(scripts) - cnfile_path = os.path.join(backuppath, "README.md") - start_tag = "" - end_tag = "" - new_content = f'\n \n\n### 查看所有发布脚本 \n\n'+descriptions+f'\n
          \n\n' - olddescriptions = get_file_description( - cnfile_path, start_tag, end_tag) - if "\n"+olddescriptions+"\n\n" == new_content:#换行符添加上,就这样了能用就行 - print(f"----[{script.get('name', '')}]\033[91m 所有相关脚本未变化,当前脚本目录MD文件不会执行替换。\033[0m") - continue - else: - print(f"----\033[94m[{script.get('name', '')}]\033[0m\033[92m 所有相关脚本变化,执行替换\033[0m") - for file in os.listdir(backuppath): - if file.endswith('.md'): - file_path = os.path.join(backuppath, file) - # 针对所有脚本 - target_file = file_path - - process_markdown(new_content,target_file,start_tag,end_tag, 'tail' ,False,'docs/ScriptsPath.json') -if __name__ == "__main__": - main() diff --git a/pythonscr/update-help/HELP.md b/pythonscr/update-help/HELP.md deleted file mode 100644 index 0e2219e68..000000000 --- a/pythonscr/update-help/HELP.md +++ /dev/null @@ -1,16 +0,0 @@ - - - -## 使用帮助 - - 推荐浏览器和脚本管理器: -* **Greasemonkey + Waterfox** -* **Tampermonkey/Violentmonkey + Firefox** -* **Tampermonkey/Violentmonkey + Chrome** -* **Userscripts + ios Safari** -* **Violentmonkey/KiWiBrowser + Android** - - **如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** - -

          更多用户脚本 / -回到顶部↑

          diff --git a/pythonscr/update-help/main.py b/pythonscr/update-help/main.py deleted file mode 100644 index e3ec76528..000000000 --- a/pythonscr/update-help/main.py +++ /dev/null @@ -1,23 +0,0 @@ -import os -import sys -sys.dont_write_bytecode = True -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from writer import process_markdown -script_dir = os.path.dirname(os.path.abspath(__file__)) -NEW_CONTENT_PATH = os.path.join(script_dir, 'HELP.md') -def get_new_content(): - with open(NEW_CONTENT_PATH, 'r', encoding='utf-8') as file: - return file.read() -def main(): - new_content = get_new_content() - for root, dirs, files in os.walk('./Script details/'): - for file_name in files: - if file_name.lower().endswith('.md'): - file_path = os.path.join(root, file_name) - if "Change history" in file_path: - continue - start_tag = "" - end_tag = "" - process_markdown(new_content,file_path,start_tag,end_tag, 'tail' ,False,NEW_CONTENT_PATH) -if __name__ == '__main__': - main() diff --git a/pythonscr/update-script-list/update-script-list.py b/pythonscr/update-script-list/update-script-list.py deleted file mode 100644 index 14c8dfc4a..000000000 --- a/pythonscr/update-script-list/update-script-list.py +++ /dev/null @@ -1,104 +0,0 @@ -import json -import os -import sys -sys.dont_write_bytecode = True -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from writer import process_file -# 读取 JSON 文件 -def read_json(file_path): - with open(file_path, 'r', encoding='utf-8') as file: - return json.load(file) -# 根据 relatedscripts 的 ID 找到对应的脚本 -def find_script_by_greasyfork_id(scripts, greasyfork_id): - for script in scripts: - if str(script.get('GreasyFork')) == str(greasyfork_id): - return script - return None -# 生成描述信息,仅针对当前脚本的 relatedscripts -def generate_description(all_scripts, single_group=False): - related_scripts_map = {} - if single_group: - related_scripts_map['所有脚本'] = all_scripts - else: - for script in all_scripts: - relatedscript = script.get('relatedscripts') - if relatedscript not in related_scripts_map: - related_scripts_map[relatedscript] = [] - related_scripts_map[relatedscript].append(script) - return related_scripts_map -# 生成 HTML 表格 -def generate_html_table(scripts): - html_table = ''' - - - - - - - - - - - - - - ''' - for script in scripts: - html_table += f''' - - - - - - - - - - ''' - html_table += ''' -
          脚本名称脚本说明GitHubGreasyfork发布时间更新时间最新版本首次创建
          - - {script.get("name")}
          - - GitHub - - 详细 - -
          {script.get("description")} - - size -
          安装 -
          -
          - - -
          安装 -
          -
          {script.get("created_at")}{script.get("code_updated_at")}{script.get("version")}{script.get("local_created_at")}
          ''' - return html_table -def generate_grouped_html(related_scripts_map, use_details=True,center=False): - html_output = "" - center_o='' - center_c='' - if center: - center_o='
          ' - center_c='
          ' - for related_id, scripts in related_scripts_map.items(): - if use_details: - html_output += f'{center_o}
          {related_id}' - else: - html_output += f"

          {related_id}

          " - html_output += generate_html_table(scripts) - if use_details: - print(center_c) - html_output += f"{center_c}
          " - return html_output -# 主程序 -json_file_path = 'docs/ScriptsPath.json' -data = read_json(json_file_path) -# 按 relatedscripts 分类脚本 -related_scripts_map = generate_description(data.get('scripts', [])) -html_output = generate_grouped_html(related_scripts_map, True) -# 读取 README.md 文件并替换表格 -readme_path = 'docs/README.md' -process_file(readme_path, html_output, "", "", "head") diff --git a/pythonscr/update-shields/111 b/pythonscr/update-shields/111 deleted file mode 100644 index 9e6faa5ca..000000000 --- a/pythonscr/update-shields/111 +++ /dev/null @@ -1,58 +0,0 @@ -
          - UserScripts - -

          人民的勤务员/UserScriptsGithub:@ChinaGodMan

          -
          脚本来自互联网广大网友,本人仅是做了些许改动.感谢网友 -如有侵权,联系必删,勤务员的脚本可供随意修改.
          - - Gmail - -
          - -[![GreasyFork][GreasyFork-logo]](https://greasyfork.org/users/1169082-%E4%BA%BA%E6%B0%91%E7%9A%84%E5%8B%A4%E5%8A%A1%E5%91%98?per_page=200) -![Total Installs][Total-Installs] -![Total Daily Installs][Total-Daily-Installs] -![Scripts Count][Scripts-Count] -![Good Ratings][Good-Ratings] -![Ok Ratings][Ok-Ratings] -![Bad Ratings][Bad-Ratings] - -[![forks][forks-logo]][Github-UserScripts] -[![Issue][Issue-logo]](https://github.com/ChinaGodMan/UserScripts/issues) - -![CopyRight][CopyRight-logo] - ---- - -[![stars][stars-logo]][Github-UserScripts] -⭐[Star Me][Github-UserScripts] -⭐[请给我点星][Github-UserScripts] - -**给勤务员加鸡腿** [![](https://img.shields.io/badge/Crazy%20Thur.-V%20me%2050-red?logo=kfc)](https://img.xwyue.com/i/2024/08/02/66ac586a44530.png) - -[GreasyFork-logo]: https://img.shields.io/static/v1?label=%20&message=GreasyFork&logo=greasyfork&logoColor=white&labelColor=%23670000&color=%23670000&style=for-the-badge -[Total-Installs]: https://img.shields.io/badge/dynamic/json?&label=所有脚本总安装数&query=$.totalInstalls&logo=greasyfork&logoColor=white&labelColor=%23670000&color=blue&style=for-the-badge&url=https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/total_installs.json - -[Total-Daily-Installs]: https://img.shields.io/badge/dynamic/json?&label=今日所有脚本安装数&query=$.totalDailyInstalls&logo=greasyfork&logoColor=white&labelColor=%23670000&color=blue&style=for-the-badge&url=https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/total_installs.json -[Scripts-Count]: https://img.shields.io/badge/dynamic/json?&label=脚本数量&query=$.numScripts&logo=greasyfork&logoColor=white&labelColor=%23670000&color=%23670000&style=for-the-badge&url=https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/total_installs.json -[Good-Ratings]: https://img.shields.io/badge/dynamic/json?&label=所有好评&query=$.totalGoodRatings&logo=greasyfork&logoColor=white&labelColor=%23670000&color=4CAF50&style=for-the-badge&url=https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/total_installs.json -[Ok-Ratings]: https://img.shields.io/badge/dynamic/json?&label=所有一般&query=$.totalOkRatings&logo=greasyfork&logoColor=white&labelColor=%23670000&color=FF9800&style=for-the-badge&url=https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/total_installs.json -[Bad-Ratings]: https://img.shields.io/badge/dynamic/json?label=所有差评&query=$.totalBadRatings&logo=greasyfork&logoColor=white&labelColor=%23670000&color=F44336&style=for-the-badge&url=https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/total_installs.json - - -[Github-UserScripts]:https://github.com/ChinaGodMan/UserScripts -[Github-logo]: https://img.shields.io/badge/Github-100000?svg&logo=github&logoColor=white - -[forks-logo]: https://img.shields.io/github/forks/ChinaGodMan/UserScripts?label=复刻&logo=github&logoColor=white&labelColor=black&color=grey&style=for-the-badge "复刻" - - -[stars-logo]: https://img.shields.io/github/stars/ChinaGodMan/UserScripts?label=星标&logo=github&logoColor=white&labelColor=black&color=gold&style=for-the-badge "如果觉得不错,请给我点亮星星" -[Issue-logo]: https://img.shields.io/github/issues/ChinaGodMan/UserScripts?label=问题&logo=github&logoColor=white&labelColor=black&style=for-the-badge "问题" -[license-logo]: https://img.shields.io/github/license/ChinaGodMan/UserScripts?svg&style=flat-square&color=4285dd&logo=github "许可" -[CopyRight-logo]: https://img.shields.io/badge/CopyRight-PeopleOfTheWorld🌏-4285dd?labelColor=FFD700&color=FF69B4 "CopyRight people" - - - - md的都转换为html代码放在联系" alt="Gmail" /> -的下面 \ No newline at end of file diff --git a/pythonscr/update-shields/main.py b/pythonscr/update-shields/main.py deleted file mode 100644 index a99d445ce..000000000 --- a/pythonscr/update-shields/main.py +++ /dev/null @@ -1,23 +0,0 @@ -import os -import sys -sys.dont_write_bytecode = True -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from writer import process_markdown -script_dir = os.path.dirname(os.path.abspath(__file__)) -NEW_CONTENT_PATH = os.path.join(script_dir, 'SHIELDS.md') -def get_new_content(): - with open(NEW_CONTENT_PATH, 'r', encoding='utf-8') as file: - return file.read() -def main(): - new_content = get_new_content() - for root, dirs, files in os.walk('./Script details/'): - for file_name in files: - if file_name.lower().endswith('.md'): - file_path = os.path.join(root, file_name) - if "Change history" in file_path: - continue - start_tag = "" - end_tag = "" - process_markdown(new_content,file_path,start_tag,end_tag, 'tail' ,False,NEW_CONTENT_PATH) -if __name__ == '__main__': - main() diff --git a/pythonscr/writer.py b/pythonscr/writer.py deleted file mode 100644 index 655efbd54..000000000 --- a/pythonscr/writer.py +++ /dev/null @@ -1,153 +0,0 @@ -import os -import subprocess -from datetime import datetime, timedelta -def is_first_commit(file_path): - try: - # 获取文件的提交次数 - result = subprocess.run( - ['git', 'rev-list', '--count', 'HEAD', '--', file_path], - capture_output=True, text=True, check=True - ) - commit_count = int(result.stdout.strip()) - return commit_count == 1 - except subprocess.CalledProcessError as e: - print(f"错误: 无法获取提交次数 - {file_path}") - return False -def get_last_git_commit_time(file_path): - """获取文件的最后一次 git 提交时间""" - try: - result = subprocess.run( - ['git', 'log', '-1', '--format=%ct', file_path], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True - ) - timestamp = int(result.stdout.strip()) - return datetime.fromtimestamp(timestamp) - except subprocess.CalledProcessError: - print(f"无法获取文件的 Git 提交时间: {file_path}") - return None -def process_file(file_path, new_content, start_tag, end_tag, insert_position): - """处理指定文件,将新内容插入到标记之间""" - with open(file_path, 'r', encoding='utf-8') as file: - lines = file.readlines() - start_index = -1 - end_index = -1 - # 查找开始和结束标记的位置 - for i, line in enumerate(lines): - if start_tag in line: - start_index = i - elif end_tag in line: - end_index = i - break - # 如果找到了这两个标记,删除中间的内容并插入新的内容 - if start_index != -1 and end_index != -1 and start_index < end_index: - new_lines = lines[:start_index + 1] # 保留开始标记之前的内容(包括开始标记) - new_lines.append(new_content + '\n') # 添加新的内容 - new_lines.extend(lines[end_index:]) # 保留结束标记之后的内容 - else: - # 如果没有找到标记,根据参数选择插入到头部还是尾部 - if insert_position == 'head': - new_lines = [f"{start_tag}\n", new_content + - '\n', f"{end_tag}\n"] + lines - else: - new_lines = lines - if start_index == -1: # 如果开始标记没有找到 - new_lines.append(f"\n{start_tag}\n") - new_lines.append(new_content + '\n') - if end_index == -1: # 如果结束标记没有找到 - new_lines.append(f"{end_tag}\n") - # 写回文件 - with open(file_path, 'w', encoding='utf-8') as file: - file.writelines(new_lines) - print(f"Processed {file_path}") -def is_md_empty(file_path, start_tag, end_tag): - """判断 md 文件中 start_tag 和 end_tag 之间是否有内容。 - 参数: - file_path: 要检查的文件路径 - start_tag: 开始标签 - end_tag: 结束标签 - 返回: - 如果没有内容,返回 True;否则返回 False。 - """ - try: - with open(file_path, 'r', encoding='utf-8') as f: - content = f.read() - # 使用 start_tag 和 end_tag 来查找内容 - start_index = content.find(start_tag) - end_index = content.find(end_tag, start_index) - if start_index == -1 or end_index == -1: - # 如果找不到任一标签,认为没有内容 - return True - # 获取 start_tag 和 end_tag 之间的内容 - content_between_tags = content[start_index + len(start_tag):end_index].strip() - # 判断内容是否为空 - if not content_between_tags: - return True # 没有内容 - else: - return False # 有内容 - except FileNotFoundError: - print(f"文件未找到: {file_path}") - return True - except Exception as e: - print(f"发生错误: {e}") - return True -def should_process_file(file_path, skip_time_check, writer_path, history_true, start_tag, end_tag): - if skip_time_check: - return True - """判断文件是否需要处理 - file_path,需要检查的文件,update-shields和help遍历了所有md这里做个修复, - 因为他们传递进来的检查文件是SHIELDS.md,所以我们还要传递一下writer_path用于检查当前是否是更新日志. - history_true ,当前为更新日志,直接检查,放在顶端执行,防止在下面被跳过, - start_tag end_tag 用来检查writer_path文件内标志之间是否是空白,如是空白内容直接添加. - """ - # 获取当前时间 - # 获取文件的最后一次 Git 提交时间 - last_commit_time = get_last_git_commit_time(file_path) - current_time = datetime.now() - if history_true: - print(f"\033[93m history_true 为真,执行时间检查...\033[0m") - if current_time - last_commit_time > timedelta(minutes=5): - print( - f"\033[91m history_true文件被跳过: {file_path}(最后一次提交时间大于5分钟)\033[0m",) - return False - else: - return True # 提交时间在 5 分钟以内,继续处理文件 - # 检查文件名是否包含 "Change history" - if "Change history" in file_path: - print(f"\033[91m 文件被跳过: {file_path}(包含 'Change history')\033[0m") - return False - if "Change history" in writer_path: - print(f"\033[91m 文件被跳过: {writer_path}(包含 'Change history')\033[0m") - return False - if is_first_commit(writer_path): - print(f"\033[91m 首次提交,直接添加........。...\033[0m") - return True - if is_md_empty(writer_path, start_tag, end_tag): - print(f"\033[91m 标志之间无内容直接添加.\033[0m") - return True # 没有内容,返回 True - # 如果指定了跳过时间检查,直接处理文件 - if skip_time_check: - return True - if last_commit_time is None: - return True # 如果无法获取提交时间,默认继续处理 - # 如果最后一次提交时间距离现在大于 5 分钟,跳过处理 - if current_time - last_commit_time > timedelta(minutes=5): - print(f"\033[91m 文件被跳过: {file_path}(最后一次提交时间大于5分钟)\033[0m") - return False - return True -def process_markdown(new_content, target_file, start_tag, end_tag, insert_position='tail', skip_time_check=False, check_file=None, history_true=False): - """ - 修改 Markdown 文件内容模块。 - :param new_content: 要插入的内容字符串 - :param target_file: 要修改的目标文件路径 - :param start_tag: 标记头的开始标记 - :param end_tag: 标记头的结束标记 - :param insert_position: 如果找不到标记,内容插入在头部还是尾部 (head/tail),默认是 'tail' - :param skip_time_check: 是否跳过时间检查,默认是 False - :param check_file: 用于检查的文件路径,如果未指定,则使用 target_file - :param history_true: 用于 merge-change-history,仅用于检查时间,不修改 history 文件 - """ - # 选择检查的文件(如果没有传递 check_file,则使用 target_file) - file_to_check = check_file if check_file else target_file - # 判断是否需要处理该文件 - if os.path.isfile(target_file) and should_process_file(file_to_check, skip_time_check, target_file, history_true, start_tag, end_tag): - process_file(target_file, new_content, start_tag, end_tag, insert_position) diff --git "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/README.md" "b/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/README.md" deleted file mode 100644 index 17c0dfdd3..000000000 --- "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/README.md" +++ /dev/null @@ -1 +0,0 @@ -用于翻译脚本头部声明罢了 \ No newline at end of file diff --git "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/main-2.py" "b/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/main-2.py" deleted file mode 100644 index d819b48d0..000000000 --- "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/main-2.py" +++ /dev/null @@ -1,135 +0,0 @@ -import os -import json -import re -import threading -from urllib.parse import urlencode -from urllib.request import urlopen - -# 正则表达式匹配中文字符 -chinese_pattern = re.compile(r'[\u4e00-\u9fff]+') - -# 全局翻译缓存字典 -translation_cache = { - "复刻": ("Fork", False), - "问题": ("issues", False), - # 可以继续添加其他常见的翻译 -} - -# 翻译函数 - - -def translate_text(text, target_lang): - text = text.replace( - "// @name:zh-CN", '').replace("// @description:zh-CN", '') - if text in translation_cache: - cached_translation, needs_api_translation = translation_cache[text] - if not needs_api_translation: - return cached_translation - api_url = 'https://translate.googleapis.com/translate_a/single' - params = { - 'client': 'gtx', - 'dt': 't', - 'sl': 'auto', - 'tl': target_lang, - 'q': text - } - full_url = api_url + '?' + urlencode(params) - try: - response = urlopen(full_url) - data = response.read().decode('utf-8') - translated_text = ''.join( - item[0] for item in json.loads(data.replace("'", "\u2019"))[0]) - return translated_text - except Exception as e: - print(f"翻译错误:{e}") - return None - - -# 翻译锁,确保多个线程不会同时修改 translations -translation_lock = threading.Lock() - -# 用于保存翻译结果的线程函数 - - -def translate_worker(chinese_texts, translations, lang): - for idx, chinese_text in chinese_texts: - translated_text = translate_text(chinese_text, lang) - if translated_text: - with translation_lock: - translations[(idx, chinese_text)] = translated_text - -# 翻译并返回翻译结果 - - -def translate_and_collect(lines, chinese_texts, lang): - translations = {} - threads = [] - chunk_size = len(chinese_texts) // 5 or 1 - for i in range(0, len(chinese_texts), chunk_size): - chunk = chinese_texts[i:i + chunk_size] - thread = threading.Thread( - target=translate_worker, args=(chunk, translations, lang)) - threads.append(thread) - thread.start() - - for thread in threads: - thread.join() - - # 收集翻译结果,保存在字符串中 - translation_output = "" - for line_number, chinese_text, translated_text in [(ln, ct, translations.get((ln, ct), None)) for ln, ct in chinese_texts if (ln, ct) in translations]: - if line_number == 0: # 假设第一行是标题 - translation_output += f'// @name:{lang} {translated_text}\n' - else: - translation_output += f'// @description:{lang} {translated_text}' - - return translation_output - -# 读取文件并查找中文文本 - - -def read_file_to_memory(file_path): - with open(file_path, 'r', encoding='utf-8') as f_in: - content = f_in.read() - lines = content.splitlines() - return lines - -# 主函数,处理翻译逻辑 - - -# 主函数,处理翻译逻辑 -def translate_readme(readme_path, target_langs): - # 读取 readme 文件内容 - lines = read_file_to_memory(readme_path) - - # 保存整行包含中文文本的位置信息 - chinese_texts = [] - for line_number, line in enumerate(lines): - if chinese_pattern.search(line): # 整行匹配中文文本 - chinese_texts.append((line_number, line)) - - # 遍历 target_langs 中的语言 - for lang_code in target_langs: - print(f"开始翻译 {lang_code} ...") - translation_output = translate_and_collect( - lines, chinese_texts, lang_code) - - # 每次翻译完成后立即将结果追加到文件末尾 - with open(readme_path, 'a', encoding='utf-8') as f_out: - f_out.write("\n" + translation_output) - - print(f"{lang_code} 翻译完成,已追加到 '{readme_path}' 文件。") - - -# target_langs = ['af', 'am', 'ar', 'az', 'be', 'bem', 'bg', 'bn', 'bo', 'bs', 'ca', 'ceb', 'cs', 'cy', 'da', 'de', 'dv', 'dz', 'el', 'en', 'en-GB', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fo', 'fr', 'gd', 'gl', 'gu', 'haw', 'he', 'hi', 'hr', 'ht', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ka', 'kab', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'la', 'lb', 'lo', 'lt', 'lv', 'mg', 'mi', 'mk', 'ml', 'mn', 'ms', 'mt', 'my', 'ne', 'nl', 'no', 'ny', 'pa', 'pap', 'pl', 'ps', 'pt', 'ro', 'ru', 'rw', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tn', 'to', 'tpi', 'tr', 'uk', 'ur', 'uz', 'vi', 'xh', 'yi', 'zh', 'zh-HK', 'zh-SG', 'zh-TW', 'zu'] - -# GreasyFork支持的国家语言. -target_langs = ['ar', 'bg', 'cs', 'da', 'de', 'el', 'en', 'eo', 'es', 'fi', 'fr', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'ka', - 'ko', 'nl', 'nb', 'pl', 'pt-BR', 'ro', 'ru', 'sk', 'sr', 'sv', 'th', 'tr', 'ug', 'uk', 'vi', 'zh-SG', 'zh', 'zh-TW', 'zh-HK', 'fr-CA'] -# target_langs = ['zh-TW', 'zh-HK', 'zh'] -# 示例文件路径 -script_dir = os.path.dirname(os.path.abspath(__file__)) -README_PATH = os.path.join(script_dir, 'read.md') - -# 开始翻译并将结果逐步追加到 read.md 文件 -translate_readme(README_PATH, target_langs) diff --git "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/main.py" "b/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/main.py" deleted file mode 100644 index 2826a91f8..000000000 --- "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/main.py" +++ /dev/null @@ -1,108 +0,0 @@ -import json -import os -import re -from urllib.parse import urlencode -from urllib.request import urlopen -import time - -# 读取 translate_table.json 文件中的翻译表 -script_dir = os.path.dirname(os.path.abspath(__file__)) -NEW_CONTENT_PATH = os.path.join(script_dir, 'translate_table.json') -with open(NEW_CONTENT_PATH, 'r', encoding='utf-8') as f: - translate_table = json.load(f) - -# 提取翻译目标语言的国家代码 -target_languages = [item['code'] for item in translate_table if item.get('translated', False)] - -# 读取 JSON 文件中的翻译文件 -NEW_CONTENT_PATH = os.path.join(script_dir, 'translate_readme.json') -with open(NEW_CONTENT_PATH, 'r', encoding='utf-8') as f: - data = json.load(f) - -# 正则表达式匹配中文字符 -chinese_pattern = re.compile(r'[\u4e00-\u9fff]+') - -# 函数来请求翻译API -def translate_text(text, target_lang): - api_url = 'https://translate.googleapis.com/translate_a/single' - params = { - 'client': 'gtx', - 'dt': 't', - 'sl': 'auto', - 'tl': target_lang, - 'q': text - } - full_url = api_url + '?' + urlencode(params) - try: - response = urlopen(full_url) - data = response.read().decode('utf-8') - translated_text = json.loads(data.replace("'", "\u2019"))[0][0][0] - return translated_text - except Exception as e: - print(f"翻译错误:{target_lang} {e}") - return None - -# 遍历 translatelist 中的每个条目 -for item in data['translatelist']: - if not item.get('translated', False): # 检查 translated 的值,如果为 False 则跳过 - print(f"条目 {item['foldpath']} 的 translated 为 false,跳过翻译。") - continue - - foldpath = item['foldpath'] - translatefile = item['translatefile'] - - # 读取要翻译的 README 文件 - readme_path = os.path.join(foldpath, translatefile) - if not os.path.exists(readme_path): - print(f'文件 {readme_path} 不存在,跳过翻译。') - continue - - with open(readme_path, 'r', encoding='utf-8') as f_in: - lines = f_in.readlines() - - # 遍历目标语言并进行翻译 - for lang in target_languages: - # 修改文件内容 - updated_lines = [] - for line in lines: - if '@name' in line or '@description' in line: - # 找到 @name 或 @description 后,将目标语言代码插入到内容末尾 - updated_line = re.sub(r'(@name|@description):[a-zA-Z-]+', r'\1:' + lang, line) - updated_lines.append(updated_line) - else: - updated_lines.append(line) - - # 创建目标文件的路径 - output_path = os.path.join(foldpath, f'README_{lang}.md') - - # 存储中文文本的位置和对应的翻译 - translations = [] - - for line_number, line in enumerate(updated_lines): - # 查找所有中文文本 - for match in chinese_pattern.finditer(line): - chinese_text = match.group() - # 翻译中文文本 - translated_text = translate_text(chinese_text, lang) - if translated_text is not None: - # 记录中文文本的位置和翻译 - translations.append((line_number, chinese_text, translated_text)) - - # 替换文本中的中文部分为翻译后的文本 - new_lines = [] - for line_number, line in enumerate(updated_lines): - # 将翻译后的中文文本替换为目标语言的翻译 - for original_text, translated_text in [(text, trans) for ln, text, trans in translations if ln == line_number]: - line = line.replace(original_text, translated_text) - new_lines.append(line) # 添加翻译后的行内容 - - # 新建或覆盖目标文件并保存翻译后的内容 - if translations: - with open(readme_path, 'a', encoding='utf-8') as f_out: - f_out.writelines(new_lines) - - print(f"翻译完成,已将 {lang} 语言的结果写入 '{output_path}' 等待2秒继续。") - else: - print(f"跳过写入 {output_path},因为没有有效翻译。") - - #time.sleep(2) diff --git "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/translate_readme.json" "b/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/translate_readme.json" deleted file mode 100644 index 9cbfda573..000000000 --- "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/translate_readme.json" +++ /dev/null @@ -1,119 +0,0 @@ -{ - "translatelist": [ - { - "foldpath": "pythonscr/小小的翻译器/", - "translatefile": "read.md", - "translated": true - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "chatgpt-regional-support-checker.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "github-folder-downloader.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "github-raw-file-plus.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "github-repo-size-view.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "github-sort-by-date.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "google-advanced-search.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-discussion-watcher.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-markdown-toolbar.user.md", - "translated": true - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-ranks.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-search.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-user-control-panel-button.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-utility-toolkit.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "greasyfork-webhook-sync-enhanced.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "highlight-keywords-mini.user.md", - "translated": true - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "jable-auto-login-helper.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "missav-auto-login-helper.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "popup-window.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "remove-link-underlines.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "script-finder-plus.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "scroll-button.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "scroll-to-top-button.user.md", - "translated": false - }, - { - "foldpath": "pythonscr/油猴全球语言/", - "translatefile": "thisav-auto-login-helper.user.md", - "translated": false - } - ] -} \ No newline at end of file diff --git "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/translate_table.json" "b/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/translate_table.json" deleted file mode 100644 index 61707a740..000000000 --- "a/pythonscr/\345\260\217\345\260\217\347\232\204\347\277\273\350\257\221\345\231\250/translate_table.json" +++ /dev/null @@ -1,1154 +0,0 @@ -[ - { - "value": "1", - "nation": "Afar", - "code": "aa", - "translated": false - }, - { - "value": "2", - "nation": "аҧсуа бызшәа", - "code": "ab", - "translated": false - }, - { - "value": "3", - "nation": "Avestan", - "code": "ae", - "translated": false - }, - { - "value": "4", - "nation": "Afrikaans", - "code": "af", - "translated": false - }, - { - "value": "5", - "nation": "Akan", - "code": "ak", - "translated": false - }, - { - "value": "6", - "nation": "አማርኛ", - "code": "am", - "translated": false - }, - { - "value": "7", - "nation": "العربية", - "code": "ar", - "translated": true - }, - { - "value": "8", - "nation": "Assamese", - "code": "as", - "translated": false - }, - { - "value": "9", - "nation": "Asturian", - "code": "ast", - "translated": false - }, - { - "value": "10", - "nation": "Avar", - "code": "av", - "translated": false - }, - { - "value": "11", - "nation": "Aymara", - "code": "ay", - "translated": false - }, - { - "value": "12", - "nation": "azərbaycan", - "code": "az", - "translated": false - }, - { - "value": "13", - "nation": "Bashkir", - "code": "ba", - "translated": false - }, - { - "value": "14", - "nation": "Беларуская", - "code": "be", - "translated": false - }, - { - "value": "15", - "nation": "Български", - "code": "bg", - "translated": true - }, - { - "value": "16", - "nation": "Bihari", - "code": "bh", - "translated": false - }, - { - "value": "17", - "nation": "Bislama", - "code": "bi", - "translated": false - }, - { - "value": "18", - "nation": "Bamanankan", - "code": "bm", - "translated": false - }, - { - "value": "19", - "nation": "Bengali", - "code": "bn", - "translated": false - }, - { - "value": "20", - "nation": "Tibetan", - "code": "bo", - "translated": false - }, - { - "value": "21", - "nation": "Breton", - "code": "br", - "translated": false - }, - { - "value": "22", - "nation": "Bosanski", - "code": "bs", - "translated": false - }, - { - "value": "23", - "nation": "Català", - "code": "ca", - "translated": false - }, - { - "value": "24", - "nation": "Chechen", - "code": "ce", - "translated": false - }, - { - "value": "25", - "nation": "Cebuano", - "code": "ceb", - "translated": false - }, - { - "value": "26", - "nation": "Chamorro", - "code": "ch", - "translated": false - }, - { - "value": "27", - "nation": "Cherokee", - "code": "chr", - "translated": false - }, - { - "value": "28", - "nation": "Corsican", - "code": "co", - "translated": false - }, - { - "value": "29", - "nation": "Cree", - "code": "cr", - "translated": false - }, - { - "value": "30", - "nation": "Čeština", - "code": "cs", - "translated": true - }, - { - "value": "31", - "nation": "Old Slavonic", - "code": "cu", - "translated": false - }, - { - "value": "32", - "nation": "Chuvash", - "code": "cv", - "translated": false - }, - { - "value": "33", - "nation": "Cymraeg", - "code": "cy", - "translated": false - }, - { - "value": "34", - "nation": "Dansk", - "code": "da", - "translated": true - }, - { - "value": "35", - "nation": "Deutsch", - "code": "de", - "translated": true - }, - { - "value": "36", - "nation": "Maldivian", - "code": "dv", - "translated": false - }, - { - "value": "37", - "nation": "Bhutani", - "code": "dz", - "translated": false - }, - { - "value": "38", - "nation": "Ɛʋɛ", - "code": "ee", - "translated": false - }, - { - "value": "39", - "nation": "Ελληνικά", - "code": "el", - "translated": true - }, - { - "value": "40", - "nation": "English", - "code": "en", - "translated": true - }, - { - "value": "41", - "nation": "Esperanto", - "code": "eo", - "translated": true - }, - { - "value": "42", - "nation": "Español", - "code": "es", - "translated": true - }, - { - "value": "43", - "nation": "Eesti", - "code": "et", - "translated": false - }, - { - "value": "44", - "nation": "Euskera", - "code": "eu", - "translated": false - }, - { - "value": "45", - "nation": "فارسی", - "code": "fa", - "translated": false - }, - { - "value": "46", - "nation": "Fulfulde", - "code": "ff", - "translated": false - }, - { - "value": "47", - "nation": "Suomi", - "code": "fi", - "translated": true - }, - { - "value": "48", - "nation": "Filipino", - "code": "fil", - "translated": false - }, - { - "value": "49", - "nation": "Fiji", - "code": "fj", - "translated": false - }, - { - "value": "50", - "nation": "Faeroese", - "code": "fo", - "translated": false - }, - { - "value": "51", - "nation": "Français", - "code": "fr", - "translated": true - }, - { - "value": "52", - "nation": "Frysk", - "code": "fy", - "translated": false - }, - { - "value": "53", - "nation": "Gaeilge", - "code": "ga", - "translated": false - }, - { - "value": "54", - "nation": "Scots Gaelic", - "code": "gd", - "translated": false - }, - { - "value": "55", - "nation": "Galego", - "code": "gl", - "translated": false - }, - { - "value": "56", - "nation": "Guarani", - "code": "gn", - "translated": false - }, - { - "value": "57", - "nation": "Swiss German", - "code": "gsw-berne", - "translated": false - }, - { - "value": "58", - "nation": "Gujarati", - "code": "gu", - "translated": false - }, - { - "value": "59", - "nation": "Manx", - "code": "gv", - "translated": false - }, - { - "value": "60", - "nation": "Hausa", - "code": "ha", - "translated": false - }, - { - "value": "61", - "nation": "עברית", - "code": "he", - "translated": true - }, - { - "value": "62", - "nation": "हिन्दी", - "code": "hi", - "translated": false - }, - { - "value": "63", - "nation": "Hmong", - "code": "hmn", - "translated": false - }, - { - "value": "64", - "nation": "Hiri Motu", - "code": "ho", - "translated": false - }, - { - "value": "65", - "nation": "Hrvatski", - "code": "hr", - "translated": true - }, - { - "value": "66", - "nation": "Haitian Creole", - "code": "ht", - "translated": false - }, - { - "value": "67", - "nation": "Magyar", - "code": "hu", - "translated": true - }, - { - "value": "68", - "nation": "Հայերեն", - "code": "hy", - "translated": false - }, - { - "value": "69", - "nation": "Herero", - "code": "hz", - "translated": false - }, - { - "value": "70", - "nation": "Interlingua", - "code": "ia", - "translated": false - }, - { - "value": "71", - "nation": "Bahasa Indonesia", - "code": "id", - "translated": true - }, - { - "value": "72", - "nation": "Interlingue", - "code": "ie", - "translated": false - }, - { - "value": "73", - "nation": "Igbo", - "code": "ig", - "translated": false - }, - { - "value": "74", - "nation": "Inupiak", - "code": "ik", - "translated": false - }, - { - "value": "75", - "nation": "Íslenska", - "code": "is", - "translated": false - }, - { - "value": "76", - "nation": "Italiano", - "code": "it", - "translated": true - }, - { - "value": "77", - "nation": "Inuktitut", - "code": "iu", - "translated": false - }, - { - "value": "78", - "nation": "日本語", - "code": "ja", - "translated": true - }, - { - "value": "79", - "nation": "Javanese", - "code": "jv", - "translated": false - }, - { - "value": "80", - "nation": "Georgian", - "code": "ka", - "translated": true - }, - { - "value": "81", - "nation": "Kongo", - "code": "kg", - "translated": false - }, - { - "value": "82", - "nation": "Kikuyu", - "code": "ki", - "translated": false - }, - { - "value": "83", - "nation": "Kwanyama", - "code": "kj", - "translated": false - }, - { - "value": "84", - "nation": "Қазақ", - "code": "kk", - "translated": false - }, - { - "value": "85", - "nation": "Greenlandic", - "code": "kl", - "translated": false - }, - { - "value": "86", - "nation": "Cambodian", - "code": "km", - "translated": false - }, - { - "value": "87", - "nation": "ಕನ್ನಡ", - "code": "kn", - "translated": false - }, - { - "value": "88", - "nation": "한국어", - "code": "ko", - "translated": true - }, - { - "value": "89", - "nation": "Kanuri", - "code": "kr", - "translated": false - }, - { - "value": "90", - "nation": "Kashmiri", - "code": "ks", - "translated": false - }, - { - "value": "91", - "nation": "Kurdî", - "code": "ku", - "translated": false - }, - { - "value": "92", - "nation": "Komi", - "code": "kv", - "translated": false - }, - { - "value": "93", - "nation": "Cornish", - "code": "kw", - "translated": false - }, - { - "value": "94", - "nation": "Кыргызча", - "code": "ky", - "translated": false - }, - { - "value": "95", - "nation": "Latina", - "code": "la", - "translated": false - }, - { - "value": "96", - "nation": "Luxembourgish", - "code": "lb", - "translated": false - }, - { - "value": "97", - "nation": "Luganda", - "code": "lg", - "translated": false - }, - { - "value": "98", - "nation": "Limbu", - "code": "lif", - "translated": false - }, - { - "value": "99", - "nation": "Lingala", - "code": "ln", - "translated": false - }, - { - "value": "100", - "nation": "Laothian", - "code": "lo", - "translated": false - }, - { - "value": "101", - "nation": "Lietuvių", - "code": "lt", - "translated": false - }, - { - "value": "102", - "nation": "Latviešu", - "code": "lv", - "translated": false - }, - { - "value": "103", - "nation": "Malagasy", - "code": "mg", - "translated": false - }, - { - "value": "104", - "nation": "Marshallese", - "code": "mh", - "translated": false - }, - { - "value": "105", - "nation": "Māori", - "code": "mi", - "translated": false - }, - { - "value": "106", - "nation": "Македонски", - "code": "mk", - "translated": false - }, - { - "value": "107", - "nation": "മലയാളം", - "code": "ml", - "translated": false - }, - { - "value": "108", - "nation": "Mongolian", - "code": "mn", - "translated": false - }, - { - "value": "109", - "nation": "Moldavian", - "code": "mo", - "translated": false - }, - { - "value": "110", - "nation": "Marathi", - "code": "mr", - "translated": false - }, - { - "value": "111", - "nation": "Bahasa Melayu", - "code": "ms", - "translated": false - }, - { - "value": "112", - "nation": "Malti", - "code": "mt", - "translated": false - }, - { - "value": "113", - "nation": "Burmese", - "code": "my", - "translated": false - }, - { - "value": "114", - "nation": "Nauru", - "code": "na", - "translated": false - }, - { - "value": "115", - "nation": "North Ndebele", - "code": "nd", - "translated": false - }, - { - "value": "116", - "nation": "Nepali", - "code": "ne", - "translated": false - }, - { - "value": "117", - "nation": "Ndonga", - "code": "ng", - "translated": false - }, - { - "value": "118", - "nation": "Nederlands", - "code": "nl", - "translated": true - }, - { - "value": "119", - "nation": "Bokmål", - "code": "nb", - "translated": true - }, - { - "value": "120", - "nation": "Nynorsk", - "code": "nn", - "translated": false - }, - { - "value": "121", - "nation": "South Ndebele", - "code": "nr", - "translated": false - }, - { - "value": "122", - "nation": "Navajo", - "code": "nv", - "translated": false - }, - { - "value": "123", - "nation": "Chichewa", - "code": "ny", - "translated": false - }, - { - "value": "124", - "nation": "Occitan", - "code": "oc", - "translated": false - }, - { - "value": "125", - "nation": "Oromo", - "code": "om", - "translated": false - }, - { - "value": "126", - "nation": "Oriya", - "code": "or", - "translated": false - }, - { - "value": "127", - "nation": "Ossetian", - "code": "os", - "translated": false - }, - { - "value": "128", - "nation": "Punjabi", - "code": "pa", - "translated": false - }, - { - "value": "129", - "nation": "Pali", - "code": "pi", - "translated": false - }, - { - "value": "130", - "nation": "Polski", - "code": "pl", - "translated": true - }, - { - "value": "131", - "nation": "پښتو", - "code": "ps", - "translated": false - }, - { - "value": "132", - "nation": "Portuguese, International", - "code": "pt", - "translated": false - }, - { - "value": "133", - "nation": "Português", - "code": "pt-PT", - "translated": false - }, - { - "value": "134", - "nation": "Português do Brasil", - "code": "pt-BR", - "translated": true - }, - { - "value": "135", - "nation": "Quechua", - "code": "qu", - "translated": false - }, - { - "value": "136", - "nation": "Rhaeto-Romance", - "code": "rm", - "translated": false - }, - { - "value": "137", - "nation": "Kirundi", - "code": "rn", - "translated": false - }, - { - "value": "138", - "nation": "Română", - "code": "ro", - "translated": true - }, - { - "value": "139", - "nation": "Русский", - "code": "ru", - "translated": true - }, - { - "value": "140", - "nation": "Kinyarwanda", - "code": "rw", - "translated": false - }, - { - "value": "141", - "nation": "Sanskrit", - "code": "sa", - "translated": false - }, - { - "value": "142", - "nation": "Sardinian", - "code": "sc", - "translated": false - }, - { - "value": "143", - "nation": "Scots", - "code": "sco", - "translated": false - }, - { - "value": "144", - "nation": "Sindhi", - "code": "sd", - "translated": false - }, - { - "value": "145", - "nation": "Northern Sami", - "code": "se", - "translated": false - }, - { - "value": "146", - "nation": "Sango", - "code": "sg", - "translated": false - }, - { - "value": "147", - "nation": "Serbo-Croatian", - "code": "sh", - "translated": false - }, - { - "value": "148", - "nation": "සිංහල", - "code": "si", - "translated": false - }, - { - "value": "149", - "nation": "Slovenčina", - "code": "sk", - "translated": true - }, - { - "value": "150", - "nation": "Slovenščina", - "code": "sl", - "translated": false - }, - { - "value": "151", - "nation": "Samoan", - "code": "sm", - "translated": false - }, - { - "value": "152", - "nation": "Shona", - "code": "sn", - "translated": false - }, - { - "value": "153", - "nation": "Somali", - "code": "so", - "translated": false - }, - { - "value": "154", - "nation": "Shqip", - "code": "sq", - "translated": false - }, - { - "value": "155", - "nation": "Српски", - "code": "sr", - "translated": true - }, - { - "value": "156", - "nation": "Siswati", - "code": "ss", - "translated": false - }, - { - "value": "157", - "nation": "Sesotho", - "code": "st", - "translated": false - }, - { - "value": "158", - "nation": "Sudanese", - "code": "su", - "translated": false - }, - { - "value": "159", - "nation": "Svenska", - "code": "sv", - "translated": true - }, - { - "value": "160", - "nation": "Kiswahili", - "code": "sw", - "translated": false - }, - { - "value": "161", - "nation": "Syriac", - "code": "syr", - "translated": false - }, - { - "value": "162", - "nation": "தமிழ்", - "code": "ta", - "translated": false - }, - { - "value": "163", - "nation": "తెలుగు", - "code": "te", - "translated": false - }, - { - "value": "164", - "nation": "Tajik", - "code": "tg", - "translated": false - }, - { - "value": "165", - "nation": "ภาษาไทย", - "code": "th", - "translated": true - }, - { - "value": "166", - "nation": "Tigrinya", - "code": "ti", - "translated": false - }, - { - "value": "167", - "nation": "Turkmen", - "code": "tk", - "translated": false - }, - { - "value": "168", - "nation": "Tagalog", - "code": "tl", - "translated": false - }, - { - "value": "169", - "nation": "Setswana", - "code": "tn", - "translated": false - }, - { - "value": "170", - "nation": "Tonga", - "code": "to", - "translated": false - }, - { - "value": "171", - "nation": "Türkçe", - "code": "tr", - "translated": true - }, - { - "value": "172", - "nation": "Tsonga", - "code": "ts", - "translated": false - }, - { - "value": "173", - "nation": "Tatarça", - "code": "tt", - "translated": false - }, - { - "value": "174", - "nation": "Twi", - "code": "tw", - "translated": false - }, - { - "value": "175", - "nation": "Tahitian", - "code": "ty", - "translated": false - }, - { - "value": "176", - "nation": "ئۇيغۇرچە", - "code": "ug", - "translated": true - }, - { - "value": "177", - "nation": "Українська", - "code": "uk", - "translated": true - }, - { - "value": "178", - "nation": "اردو", - "code": "ur", - "translated": false - }, - { - "value": "179", - "nation": "o'zbek", - "code": "uz", - "translated": false - }, - { - "value": "180", - "nation": "Venda", - "code": "ve", - "translated": false - }, - { - "value": "181", - "nation": "Tiếng Việt", - "code": "vi", - "translated": true - }, - { - "value": "182", - "nation": "Wolof", - "code": "wo", - "translated": false - }, - { - "value": "183", - "nation": "isiXhosa", - "code": "xh", - "translated": false - }, - { - "value": "184", - "nation": "Yiddish", - "code": "yi", - "translated": false - }, - { - "value": "185", - "nation": "Yorùbá", - "code": "yo", - "translated": false - }, - { - "value": "186", - "nation": "Zhuang", - "code": "za", - "translated": false - }, - { - "value": "187", - "nation": "简体中文", - "code": "zh-CN", - "translated": false - }, - { - "value": "188", - "nation": "繁體中文", - "code": "zh-TW", - "translated": true - }, - { - "value": "188", - "nation": "繁體中文", - "code": "zh-HK", - "translated": true - }, - { - "value": "189", - "nation": "isiZulu", - "code": "zu", - "translated": false - }, - { - "value": "190", - "nation": "Français canadien", - "code": "fr-CA", - "translated": true - }, - { - "value": "191", - "nation": "کوردیی ناوەندی", - "code": "t", - "translated": false - } -] \ No newline at end of file diff --git "a/pythonscr/\350\277\230\345\216\237\344\270\213\350\275\275\351\223\276\346\216\245/\350\277\230\345\216\237\344\270\213\350\275\275\351\223\276\346\216\245.py" "b/pythonscr/\350\277\230\345\216\237\344\270\213\350\275\275\351\223\276\346\216\245/\350\277\230\345\216\237\344\270\213\350\275\275\351\223\276\346\216\245.py" deleted file mode 100644 index b0078ec12..000000000 --- "a/pythonscr/\350\277\230\345\216\237\344\270\213\350\275\275\351\223\276\346\216\245/\350\277\230\345\216\237\344\270\213\350\275\275\351\223\276\346\216\245.py" +++ /dev/null @@ -1,196 +0,0 @@ -import os -from html import escape -from urllib.parse import quote - -# GitHub 仓库的原始文件 URL -repo_url = 'https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/' - -def read_gitignore(directory): - gitignore_path = os.path.join(directory, '.gitignore') - ignore_patterns = [] - - if os.path.isfile(gitignore_path): - with open(gitignore_path, 'r', encoding='utf-8') as f: - ignore_patterns = [line.strip() for line in f if line.strip() and not line.startswith('#')] - - return ignore_patterns - -def matches_ignore_patterns(filename, patterns): - from fnmatch import fnmatch - return any(fnmatch(filename, pattern) for pattern in patterns) - -def generate_tree(dir_path, relative_path='', level=0, search_query=None, ignore_patterns=None): - # 定义层级颜色 - background_colors = ['#CCE5FF', '#D4EDDA', '#FFF3CD', '#F8D7DA'] - title_colors = ['#0033cc', '#006400', '#ffcc00', '#cc0000'] - - bg_color = background_colors[level % len(background_colors)] - title_color = title_colors[level % len(title_colors)] - - html = f'
            ' - files = [] - with os.scandir(dir_path) as entries: - for entry in entries: - if entry.is_dir() and entry.name != '.git': - if not matches_ignore_patterns(entry.name, ignore_patterns): - subtree_html = generate_tree(entry.path, os.path.join(relative_path, entry.name), level + 1, search_query, ignore_patterns) - if subtree_html: - html += f''' -
          • -
            - {escape(entry.name)} - {subtree_html} -
            -
          • - ''' - elif entry.is_file(): - if not matches_ignore_patterns(entry.name, ignore_patterns): - file_relative_path = os.path.join(relative_path, entry.name) - file_link = f'{repo_url}{quote(file_relative_path.replace(os.path.sep, "/"))}' - if search_query is None or search_query.lower() in entry.name.lower(): - files.append(f''' - - {escape(entry.name)} - - - 路径: {escape(file_relative_path)} - - ''') - - if files: - html += '
          • ' - html += '' - html += '' - html += ''.join(files) - html += '
            文件名复制链接打开链接绝对路径
          • ' - html += '
          ' - return html - -def generate_html_tree(directory, html_file): - ignore_patterns = read_gitignore(directory) - - tree_html = ''' - - - Folder Tree - - - - -
          -
          - ''' + generate_tree(directory, '', 0, None, ignore_patterns) + ''' -
          -
          - -
          -
          -
          - - - ''' - - with open(html_file, 'w', encoding='utf-8') as f: - f.write(tree_html) - -# 使用示例 -script_dir = os.path.dirname(os.path.abspath(__file__)) -output_file = os.path.join(script_dir, 'folder_tree.html') -generate_html_tree('./',output_file) diff --git a/remove-link-underlines/README.md b/remove-link-underlines/README.md new file mode 100644 index 000000000..1a640895d --- /dev/null +++ b/remove-link-underlines/README.md @@ -0,0 +1,275 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          移除链接下划线

          +

          「 移除所有网站上的链接下划线,并动态处理新链接 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + +# Remove Link Underlines + + + +## Description + +This userscript removes underlines from all links on any website and dynamically handles new links. It ensures a cleaner and more visually appealing browsing experience. + + + +## Description in Multiple Languages + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + +### 中文(简体) + +这个用户脚本移除所有网站上的链接下划线,并动态处理新链接。它确保了更干净和更有视觉吸引力的浏览体验。 + + + +### 中文(繁体) + +这个使用者脚本移除所有网站上的连结底线,并动态处理新连结。它确保了更干净和更有视觉吸引力的浏览体验。 + + + +### Français + +Ce script utilisateur supprime les soulignements de tous les liens sur n'importe quel site Web et gère dynamiquement les nouveaux liens. Il assure une expérience de navigation plus propre et plus attrayante visuellement. + + + +### 日本语 + +このユーザースクリプトは、任意のWebサイト上のすべてのリンクの下线を削除し、新しいリンクを动的に処理します。これにより、よりクリーンで视覚的に魅力的なブラウジング体験が保証されます。 + + + +### Deutsch + +Dieses Benutzerskript entfernt die Unterstreichungen aller Links auf jeder Website und behandelt neue Links dynamisch. Es sorgt für ein saubereres und optisch ansprechenderes Surferlebnis. + + + +### 한국어 + +이 사용자 스크립트는 모든 웹사이트에서 모든 링크의 밑줄을 제거하고 새 링크를 동적으로 처리합니다. 이는 더 깨끗하고 시각적으로 매력적인 브라우징 경험을 보장합니다. + + + +### Tiếng Việt + +Tập lệnh người dùng này xóa gạch chân khỏi tất cả các liên kết trên bất kỳ trang web nào và xử lý động các liên kết mới. Nó đảm bảo trải nghiệm duyệt web sạch hơn và hấp dẫn hơn về mặt hình ảnh. + + + +### العربية + +يقوم هذا النص البرمجي للمستخدم بإزالة التسطير من جميع الروابط على أي موقع ويب والتعامل ديناميكيًا مع الروابط الجديدة. يضمن تجربة تصفح أنظف وأكثر جاذبية بصريًا. + + + +### हिंदी + +यह उपयोगकर्ता स्क्रिप्ट किसी भी वेबसाइट पर सभी लिंक से रेखांकन हटा देती है और नए लिंक को गतिशील रूप से संभालती है। यह एक क्लीनर और अधिक आकर्षक ब्राउज़िंग अनुभव सुनिश्चित करता है। + + + +### Español + +Este script de usuario elimina los subrayados de todos los enlaces en cualquier sitio web y maneja dinámicamente los nuevos enlaces. Garantiza una experiencia de navegación más limpia y visualmente atractiva. + + + +## Author + +人民的勤务员 (Servant of the People) & ChatGPT +[toniaiwanowskiskr47@gmail.com](mailto:toniaiwanowskiskr47@gmail.com) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/remove-link-underlines.user.js b/remove-link-underlines/remove-link-underlines.user.js similarity index 98% rename from remove-link-underlines.user.js rename to remove-link-underlines/remove-link-underlines.user.js index e2ce17192..190e8f2db 100644 --- a/remove-link-underlines.user.js +++ b/remove-link-underlines/remove-link-underlines.user.js @@ -27,7 +27,7 @@ // @name:he הסר קו תחתון של הקישור // @description:he הסר קווי תחתון של קישורים בכל האתרים,ולטפל בקישורים חדשים באופן דינמי // @name:hr Ukloni vezu podvučeno -// @description:hr Uklonite podcrtane veze na svim stranicama,i dinamički obrađivati ​​nove veze +// @description:hr Uklonite podcrtane veze na svim stranicama,i dinamički obrađivati nove veze // @name:hu Távolítsa el a hivatkozás aláhúzását // @description:hu Távolítsa el a hivatkozás aláhúzásokat az összes webhelyről,és dinamikusan kezeli az új hivatkozásokat // @name:id Hapus tautan yang digarisbawahi @@ -77,7 +77,7 @@ // @namespace https://github.com/ChinaGodMan/UserScripts // @version 1.2.0.63 // @description Remove underlines from all links on any website and dynamically handle new links -// @author 人民的勤务员 +// @author 人民的勤务员 // @match *://*/* // @run-at document-body // @license MIT diff --git a/script-finder-plus.user.js b/script-finder-plus.user.js deleted file mode 100644 index 5a1bfc906..000000000 --- a/script-finder-plus.user.js +++ /dev/null @@ -1,721 +0,0 @@ -// ==UserScript== -// @name Script Finder+ -// @name:zh-CN Script Finder 油猴脚本查找 -// @description:zh-CN Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 -// @name:ar Script Finder البحث عن نص قرد الشحوم -// @description:ar Script Finder ابحث في أي موقع ويب ينطبق على هذا الموقع سيناريو القرد الشحوم。 -// @name:bg Script Finder Търсене на скрипт на GreasyFork -// @description:bg Script Finder Намерете във всеки уебсайт, който се отнася за този уебсайт GreasyFork Script。 -// @name:cs Script Finder Vyhledávání skriptů GreasyFork -// @description:cs Script Finder Vyhledejte na libovolném webu, který se tohoto webu týká GreasyFork Script。 -// @name:da Script Finder GreasyFork Script-opslag -// @description:da Script Finder Find på ethvert websted, der gælder for det pågældende websted GreasyFork Script。 -// @name:de Script Finder Nachschlagen von GreasyFork-Skripten -// @description:de Script Finder Finden Sie auf jeder Website, die für diese Website gilt GreasyFork-Skript。 -// @name:el Script Finder Αναζήτηση σεναρίου GreasyFork -// @description:el Script Finder Βρείτε σε οποιονδήποτε ιστότοπο που ισχύει για αυτόν τον ιστότοπο Σενάριο GreasyFork。 -// @name:en Script Finder GreasyFork Script Lookup -// @description:en Script Finder Find on any website that applies to that website GreasyFork Script。 -// @name:eo Script Finder GreasyFork Skripto Serĉo -// @description:eo Script Finder Trovu en iu ajn retejo kiu validas por tiu retejo GreasyFork Skripto。 -// @name:es Script Finder Búsqueda de guiones de GreasyFork -// @description:es Script Finder Busque en cualquier sitio web que se aplique a ese sitio web. Guión del mono de grasa。 -// @name:fi Script Finder GreasyFork Script Lookup -// @description:fi Script Finder Etsi miltä tahansa verkkosivustoa, joka koskee kyseistä verkkosivustoa GreasyFork Script。 -// @name:fr Script Finder Recherche de script GreasyFork -// @description:fr Script Finder Rechercher sur n’importe quel site Web qui s’applique à ce site Web Script de GreasyFork。 -// @name:he Script Finder בדיקת סקריפט של גריז קוף -// @description:he Script Finder מצא בכל אתר הרלוונטי לאותו אתר סקריפט גריז קוף。 -// @name:hr Script Finder Traženje skripte GreasyFork -// @description:hr Script Finder Pronađite na bilo kojoj web stranici koja se odnosi na tu web stranicu GreasyFork Script。 -// @name:hu Script Finder GreasyFork Script Lookup -// @description:hu Script Finder Keresse meg az adott webhelyre vonatkozó bármely webhelyet GreasyFork Script。 -// @name:id Script Finder Pencarian Skrip GreasyFork -// @description:id Script Finder Temukan di situs web mana pun yang berlaku untuk situs web tersebut Naskah Monyet Gemuk。 -// @name:it Script Finder Ricerca script GreasyFork -// @description:it Script Finder Trova su qualsiasi sito Web che si applica a quel sito Web Sceneggiatura della scimmia grassa。 -// @name:ja Script Finder GreasyFork スクリプトの検索 -// @description:ja Script Finder その Web サイトに該当する Web サイトを検索する グリース モンキー スクリプト。 -// @name:ka Script Finder GreasyFork სკრიპტის ძიება -// @description:ka Script Finder იპოვეთ ნებისმიერ ვებსაიტზე, რომელიც ეხება ამ ვებსაიტს GreasyFork Script。 -// @name:ko Script Finder 그리스 원숭이 스크립트 조회 -// @description:ko Script Finder 해당 웹사이트에 적용되는 웹사이트를 찾으세요. 그리스 원숭이 스크립트。 -// @name:nl Script Finder GreasyFork-script opzoeken -// @description:nl Script Finder Zoek op elke website wat op die website van toepassing is GreasyFork-script。 -// @name:nb Script Finder GreasyFork Script Lookup -// @description:nb Script Finder Finn på et hvilket som helst nettsted som gjelder for det nettstedet GreasyFork Script。 -// @name:pl Script Finder Wyszukiwanie skryptu GreasyFork -// @description:pl Script Finder Znajdź na dowolnej stronie internetowej, która dotyczy tej witryny Smaruj skrypt małpy。 -// @name:pt-BR Script Finder Pesquisa de script do GreasyFork -// @description:pt-BR Script Finder Encontre em qualquer site que se aplique a esse site Script do Macaco Graxa。 -// @name:ro Script Finder Căutare Script GreasyFork -// @description:ro Script Finder Găsiți pe orice site care se aplică acelui site GreasyFork Script。 -// @name:ru Script Finder Поиск сценария GreasyFork -// @description:ru Script Finder Найти на любом веб-сайте, который относится к этому веб-сайту Сценарий GreasyFork。 -// @name:sk Script Finder Vyhľadávanie skriptov GreasyFork -// @description:sk Script Finder Nájdite na ľubovoľnej webovej lokalite, ktorá sa týka danej webovej lokality GreasyFork Script。 -// @name:sr Script Finder Греасе Монкеи Сцрипт Лоокуп -// @description:sr Script Finder Пронађите на било којој веб локацији која се односи на ту веб локацију Греасе Монкеи Сцрипт。 -// @name:sv Script Finder GreasyFork Script Lookup -// @description:sv Script Finder Hitta på vilken webbplats som helst som gäller den webbplatsen GreasyFork Script。 -// @name:th Script Finder ค้นหาสคริปต์ GreasyFork -// @description:th Script Finder ค้นหาบนเว็บไซต์ใด ๆ ที่ใช้กับเว็บไซต์นั้น สคริปต์ลิงจาระบี。 -// @name:tr Script Finder GreasyFork Komut Dosyası Arama -// @description:tr Script Finder Söz konusu web sitesi için geçerli olan herhangi bir web sitesinde bulun GreasyFork Komut Dosyası。 -// @name:ug Script Finder مايمۇن قوليازمىسىنى ئىزدەش -// @description:ug Script Finder شۇ تور بېكەتكە ماس كېلىدىغان ھەرقانداق تور بەتنى ئىزدەڭ مايمۇن قوليازمىسى。 -// @name:uk Script Finder Пошук сценарію GreasyFork -// @description:uk Script Finder Знайдіть на будь-якому веб-сайті, який стосується цього веб-сайту Сценарій GreasyFork。 -// @name:vi Script Finder Tra cứu tập lệnh GreasyFork -// @description:vi Script Finder Tìm trên bất kỳ trang web nào áp dụng cho trang web đó Kịch bản khỉ mỡ。 -// @name:zh-TW Script Finder 油猴腳本查找 -// @description:zh-TW Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 -// @name:zh-HK Script Finder 油猴腳本查找 -// @description:zh-HK Script Finder 在任何網站上找到適用於該網站的 油猴腳本。 -// @name:fr-CA Script Finder Recherche de script GreasyFork -// @description:fr-CA Script Finder Rechercher sur n’importe quel site Web qui s’applique à ce site Web Script de GreasyFork。 -// @description Script Finder allows you to find userscripts from greasyfork on any website. - -// @namespace https://github.com/ChinaGodMan/UserScripts -// @version 0.1.6.80 -// @author shiquda & 人民的勤务员 -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @match *://*/* -// @connect greasyfork.org -// @icon data:image/png;base64,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 -// @iconbak https://github.com/ChinaGodMan/UserScripts/raw/main/docs/icon/Scripts%20Icons/Finder.jpg -// @grant GM_xmlhttpRequest -// @grant GM_addStyle -// @license MIT - -// ==/UserScript== -const translate = (function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const strings = { - 'en': { - Author: 'Author', - Installs: 'Installs', - DailyInstalls: 'Daily Installs', - Created: 'Created', - Updated: 'Updated', - Rating: 'Rating', - LoadingScripts: 'Loading scripts...', - LoadMore: 'Load more', - AllScriptsLoaded: 'All scripts loaded', - SearchPlaceholder: 'Search scripts...', - ViewOnGreasyfork: 'View on Greasyfork', - errorMessage: 'Failed to retrieve script information or there are no available scripts for this domain.', - Loading: 'Loading...', - Scripts: 'Scripts' - }, - 'zh-CN': { - Author: '作者', - Installs: '安装数量', - DailyInstalls: '每日安装', - Created: '创建日期', - Updated: '更新时间', - Rating: '评分', - LoadingScripts: '正在加载脚本...', - LoadMore: '加载更多', - AllScriptsLoaded: '所有脚本已加载', - SearchPlaceholder: '搜索脚本...', - ViewOnGreasyfork: '在Greasyfork查看', - errorMessage: '无法检索脚本信息或该域没有可用的脚本。', - Loading: '载入中...', - Scripts: '脚本' - - }, - 'zh-TW': { - Author: '作者', - Installs: '安裝數量', - DailyInstalls: '每日安裝', - Created: '創建日期', - Updated: '更新日期', - Rating: '評分', - LoadingScripts: '正在載入腳本...', - LoadMore: '載入更多', - AllScriptsLoaded: '所有腳本已載入', - SearchPlaceholder: '搜尋腳本...', - ViewOnGreasyfork: '在Greasyfork查看', - errorMessage: '無法檢索腳本信息或該域沒有可用的腳本。', - Loading: '載入中...', - Scripts: '腳本' - }, - 'ja': { - Author: '著者', - Installs: 'インストール数', - DailyInstalls: '日次インストール数', - Created: '作成日', - Updated: '更新日', - Rating: '評価', - LoadingScripts: 'スクリプトを読み込んでいます...', - LoadMore: 'もっと読む', - AllScriptsLoaded: 'すべてのスクリプトが読み込まれました', - SearchPlaceholder: 'スクリプトを検索...', - ViewOnGreasyfork: 'Greasyforkで見る', - errorMessage: 'スクリプト情報の取得に失敗するか、またはこのドメインには利用可能なスクリプトがありません。', - Loading: '読み込み中...', - Scripts: 'スクリプト' - }, - 'vi': { - Author: 'Tác giả', - Installs: 'Số lượt cài đặt', - DailyInstalls: 'Cài đặt hàng ngày', - Created: 'Ngày tạo', - Updated: 'Ngày cập nhật', - Rating: 'Đánh giá', - LoadingScripts: 'Đang tải các tập lệnh...', - LoadMore: 'Tải thêm', - AllScriptsLoaded: 'Đã tải tất cả các tập lệnh', - SearchPlaceholder: 'Tìm kiếm tập lệnh...', - ViewOnGreasyfork: 'Xem trên Greasyfork', - errorMessage: 'Không thể truy xuất thông tin tập lệnh hoặc không có tập lệnh nào có sẵn cho miền này.', - Loading: 'Đang tải...', - Scripts: 'Tập lệnh' - } - } - // 返回翻译函数 - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } -}()); -(function () { - const domainParts = window.location.hostname.split('.').slice(-2) - const domain = domainParts.join('.') - const errorMessage = translate('errorMessage') - let neverLoadedScripts = true - let collapsed = true - let loadedPages = 0 - - function getScriptsInfo(domain, page = 1) { - var url = `https://greasyfork.org/scripts/by-site/${domain}?filter_locale=0&sort=updated&page=${page}` - - GM_xmlhttpRequest({ - method: "GET", - url: url, - onload: (response) => { - // 解析结果 - const parser = new DOMParser() - const doc = parser.parseFromString(response.responseText, "text/html") - const scripts = doc.querySelector("#browse-script-list")?.querySelectorAll('[data-script-id]') - let scriptsInfo = [] - - if (!scripts) { - scriptsInfo = errorMessage - } else { - for (var i = 0; i < scripts.length; i++) { - scriptsInfo.push(parseScriptInfo(scripts[i])) - } - } - - // 处理对象 - const loadMoreButton = document.querySelector('.load-more') - console.log(doc.querySelector('.next_page')) - if (doc.querySelector('.next_page') == null || doc.querySelector('.next_page')?.getAttribute('aria-disabled') === 'true') { - loadedPages = 'max' - loadMoreButton.disabled = true - loadMoreButton.textContent = translate('AllScriptsLoaded') - } else { - loadMoreButton.disabled = false - loadMoreButton.textContent = translate('LoadMore') - } - // console.log(scriptsInfo); - document.querySelector('.wait-loading').style.display = 'none' - loadMoreButton.style.display = 'block' - appendScriptsInfo(scriptsInfo) - updateMatches() - - typeof (loadedPages) === 'number' ? loadedPages += 1 : loadedPages = loadedPages - // console.log(loadedPages) - }, - onerror: () => { - console.log("Some error occurred!") - if (loadedPages === 0) { - appendScriptsInfo(scriptsInfo) - } - const scriptsInfo = errorMessage - document.querySelector('.wait-loading').style.display = 'none' - } - }) - } - - // 解析脚本信息 - function parseScriptInfo(script) { - return { - id: script.getAttribute('data-script-id'), - name: script.getAttribute('data-script-name'), - author: script.querySelector("dd.script-list-author").textContent, - description: script.querySelector(".script-description").textContent, - version: script.getAttribute('data-script-version'), - url: 'https://greasyfork.org/scripts/' + script.getAttribute('data-script-id'), - createDate: script.getAttribute('data-script-created-date'), - updateDate: script.getAttribute('data-script-updated-date'), - installs: script.getAttribute('data-script-total-installs'), - dailyInstalls: script.getAttribute('data-script-daily-installs'), - ratingScore: script.getAttribute('data-script-rating-score') - } - } - - // 插入脚本 - function appendScriptsInfo(scriptsInfo) { - const infoList = document.querySelector('.info-list') - if (scriptsInfo === errorMessage) { - // infoList.innerHTML = errorMessage; - const loadMoreButton = document.querySelector('.load-more') - loadMoreButton.disabled = true - loadMoreButton.textContent = translate('AllScriptsLoaded') - loadMoreButton.innerHTML = errorMessage - } else { - for (var i = 0; i < scriptsInfo.length; i++) { - var script = scriptsInfo[i] - var listItem = document.createElement('li') - listItem.className = 'info-item' - - var scriptContainer = document.createElement('div') - scriptContainer.className = 'script-container' - - var nameElement = document.createElement('a') - nameElement.className = 'mscript-link' - nameElement.innerText = script.name - nameElement.href = script.url - nameElement.target = '_blank' - - var descriptionElement = document.createElement('p') - descriptionElement.className = 'script-description' - descriptionElement.innerHTML = script.description - - var detailsContainer = document.createElement('div') - detailsContainer.className = 'details-container' - - // 创建一键安装按钮 - var installButton = document.createElement('a') - installButton.className = 'install-button' - installButton.innerText = `Install ${script.version}` - installButton.href = `https://greasyfork.org/scripts/${script.id}/code/script.user.js` - - const details = [ - { key: translate('Author'), value: script.author }, - { key: translate('Installs'), value: script.installs }, - { key: translate('DailyInstalls'), value: script.dailyInstalls }, - { key: translate('Created'), value: script.createDate }, - { key: translate('Updated'), value: script.updateDate }, - { key: translate('Rating'), value: script.ratingScore } - ] - - for (let i = 0; i < details.length; i++) { - const spanElement = document.createElement('span') - spanElement.className = 'script-details' - spanElement.innerText = `${details[i].key}:\n${details[i].value}` - detailsContainer.appendChild(spanElement) - } - - scriptContainer.appendChild(nameElement) - scriptContainer.appendChild(descriptionElement) - scriptContainer.appendChild(detailsContainer) - scriptContainer.appendChild(installButton) - - listItem.appendChild(scriptContainer) - listItem.scriptId = script.id - infoList.appendChild(listItem) - } - } - } - - function setupUI() { - GM_addStyle(` - scrbutton.script-button { - position: fixed; - bottom: 20%; - right: -50px; - transform: translateY(50%); - padding: 20px; - font-size: 16px; - border: none; - border-radius: 4px; - background-color: #1e90ff; - color: #ffffff; - cursor: pointer; - transition: right 0.3s; - z-index: 9999999999999999; - } - div.info-container { - display: none; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 650px; - padding: 12px; - background-color: #ffffff; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); - border-radius: 4px; - opacity: 0; - transition: opacity 0.3s; - z-index: 9999; - max-height: 80vh; - overflow-y: auto; -} - ul.info-list { - list-style: none; - margin: 0; - padding: 0; - } - li.info-item { - margin-bottom: 15px; - padding: 12px; - padding-bottom: 22px; - display: flex; - flex-direction: column; - border: 1px solid #1e90ff; - border-radius: 5px; - } - .div.script-container { - display: flex; - flex-direction: column; - } - a.mscript-link { - font-size: 18px !important; - font-weight: bold !important; - margin-bottom: 5px !important; - color: #1e90ff !important; - } - p.script-description { - color: black !important; - margin-top: 2px; - margin-bottom: 5px; - font-size: 16px; - } - div.details-container { - font-size: 15px; - font-weight: bold; - display: flex; - justify-content: space-between; - margin-bottom: 15px; - } - span.script-details { - font: !important; - color: black !important; - flex-grow: 1 !important; - text-align: center !important; - border: 1px solid #1e90ff !important; - border-radius: 5px !important; - margin: 4px !important; - } - div.table-header { - color: #1e90ff !important; - font-size: 25px; - font-weight: bold; - } - input.script-search-input { - width: 96% !important; - padding: 10px !important; - font-size: 18px !important; - border: 1px solid #1e90ff !important; - border-radius: 4px !important; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3) !important; - margin-bottom: 15px !important; - margin-top: 20px !important; - } - a.install-button { - font-size: 20px; - background-color: green; - color: white; - padding: 12px; - } - button.to-greasyfork { - position: absolute; - top: 12px; - right: 12px; - border-radius: 4px; - padding: 8px; - font-size: 16px; - border: none; - background-color: #1e90ff; - color: #ffffff; - cursor: pointer; - } - span.match-count { - background-color: #1e90ff; - font-size: 25px; - font-weight: bold; - color: white; - padding: 6px; - position: absolute; - right: 50%; - border-radius: 12px; - top: 10px; - } - div.wait-loading { - font-size: 20px; - font-weight: bold; - color: #1e90ff; - animation: blink 1s infinite; - } - @keyframes fadeInOut { - 0% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - } - } - @keyframes blink { - 0%, 100% { - opacity: 0; - } - 50% { - opacity: 1; - } - } - button.load-more { - border-radius: 4px; - padding: 8px; - font-size: 16px; - border: none; - background-color: #1e90ff; - color: #ffffff; - cursor: pointer; - position: relative; - bottom: 5px; - left: 50%; - transform: translateX(-50%); - } - button.load-more:disabled { - background-color: #cccccc; - cursor: not-allowed; - } - - /* Mobile styles */ - @media (max-width: 600px) { - scrbutton.script-button { - right: -30px; - padding: 8px; - font-size: 14px; - } - span.script-details { - font-size: 10px !important; - margin: 2px !important; - padding: 2px !important; - } - span.match-count { - font-size: 20px; - padding: 4px; - } - - button.to-greasyfork { - padding: 6px; - font-size: 14px; - } - - a.install-button { - font-size: 12px; - padding: 8px; - } - div.table-header { - font-size: 20px; - } - div.script-container { - padding: 10px; - } -div.info-container { - top: 10%; - left: 5%; - right: 5%; - transform: none; - width: calc(90% - 10px); /* 自适应宽度,保持左右边距 */ - max-width: 100%; /* 确保不超出屏幕宽度 */ - } - a.mscript-link { - font-size: 16px !important; - } - p.script-description { - font-size: 14px; - } - { - - input.script-search-input { - width: 92% !important; - padding: 8px !important; - font-size: 16px !important; - } - span.match-count { - font-size: 20px; - padding: 4px; - } - button.load-more { - font-size: 14px; - padding: 6px; - } - } -`) - - - // 创建打开列表按钮 - var button = document.createElement('scrbutton') - button.className = 'script-button' - button.innerText = translate('Scripts') - document.addEventListener('fullscreenchange', function () { - if (document.fullscreenElement) { - button.style.display = 'none' - } else { - button.style.display = 'block' - } - }) - // 创建脚本容器 - var infoContainer = document.createElement('div') - infoContainer.className = 'info-container' - - // 创建搜索框 - var searchInput = document.createElement('input') - searchInput.type = 'text' - searchInput.placeholder = translate('SearchPlaceholder') - searchInput.className = 'script-search-input' - - // 创建指向greasyfork的链接 - var toGreasyfork = document.createElement('button') - toGreasyfork.className = 'to-greasyfork' - toGreasyfork.innerText = translate('ViewOnGreasyfork') - - // 创建计数器 - var matchCount = document.createElement('span') - matchCount.className = 'match-count' - - // 创建表头 - var tableHeader = document.createElement('div') - tableHeader.className = 'table-header' - tableHeader.appendChild(document.createTextNode('Script Finder')) - tableHeader.appendChild(matchCount) - tableHeader.appendChild(searchInput) - tableHeader.appendChild(toGreasyfork) - - // 创建脚本列表 - var infoList = document.createElement('ul') - infoList.className = 'info-list' - - // 创建等待加载 - var waitLoading = document.createElement('div') - waitLoading.className = 'wait-loading' - waitLoading.innerText = translate('LoadingScripts') - - // 创建加载更多 - var loadMore = document.createElement('button') - loadMore.className = 'load-more' - loadMore.innerText = 'Load more' - loadMore.style.display = 'none' - - infoList.appendChild(waitLoading) - infoList.appendChild(loadMore) - - infoContainer.appendChild(tableHeader) - infoContainer.appendChild(infoList) - - var timeout - button.addEventListener('mouseenter', function () { - clearTimeout(timeout) - button.style.right = '10px' - }) - - button.addEventListener('mouseleave', function () { - timeout = setTimeout(function () { - button.style.right = '-50px' - }, 500) - }) - - button.addEventListener('click', function (event) { - event.stopPropagation() - if (collapsed) { - infoContainer.style.display = "block" - infoContainer.style.opacity = 1 - collapsed = false - } - else { - infoContainer.style.display = "none" - infoContainer.style.opacity = 0 - collapsed = true - } - - if (neverLoadedScripts) { - getScriptsInfo(domain, 1) - neverLoadedScripts = false - } - - }) - - infoContainer.addEventListener('click', function (event) { - event.stopPropagation() - }) - - searchInput.addEventListener('input', () => { - searchScript() - updateMatches() - }) - - toGreasyfork.addEventListener('click', function () { - window.open(`https://greasyfork.org/scripts/by-site/${domain}?q=${searchInput.value}&filter_locale=0&sort=updated`) - }) - - loadMore.addEventListener('click', () => { - if (loadedPages === 'max') { - return - } - const loadMoreButton = document.querySelector('.load-more') - loadMoreButton.disabled = true - loadMoreButton.textContent = translate('Loading') - document.querySelector('.wait-loading').style.display = 'block' - getScriptsInfo(domain, loadedPages + 1) - }) - - document.body.addEventListener('click', function () { - clearTimeout(timeout) - collapsed = true - button.style.right = '-50px' - infoContainer.style.opacity = 0 - infoContainer.style.display = "none" - }) - - document.body.appendChild(button) - - document.body.appendChild(infoContainer) - - infoContainer.addEventListener('change', () => { - updateMatches() - }) - updateMatches() - } - - function searchScript() { - const searchWord = document.querySelector('.script-search-input').value.toLowerCase() // 将要匹配的文本转换为小写 - const scriptList = document.querySelectorAll('.info-item') - for (let i = 0; i < scriptList.length; i++) { - const scriptText = scriptList[i].innerText.toLowerCase() // 将检索的文本转换为小写 - if (scriptText.includes(searchWord)) { - scriptList[i].style.display = 'block' - } else { - scriptList[i].style.display = 'none' - } - } - } - - function updateMatches() { - const matchCount = document.querySelectorAll('.info-item:not([style*="display: none"])').length - const allCount = document.querySelectorAll('.info-item').length - document.querySelector('.match-count').innerText = matchCount === allCount ? matchCount : `${matchCount}/${allCount}` - } - - function main() { - if (window.self !== window.top) { - // 在iframe中执行时,直接退出 - return - } - setupUI() - } - - main() - - -})() diff --git a/Script details/script-finder-plus/Change history/Greasyfork #253924.png b/script-finder-plus/Change history/Greasyfork #253924.png similarity index 100% rename from Script details/script-finder-plus/Change history/Greasyfork #253924.png rename to script-finder-plus/Change history/Greasyfork #253924.png diff --git a/Script details/script-finder-plus/Change history/README.md b/script-finder-plus/Change history/README.md similarity index 100% rename from Script details/script-finder-plus/Change history/README.md rename to script-finder-plus/Change history/README.md diff --git a/script-finder-plus/README.md b/script-finder-plus/README.md new file mode 100644 index 000000000..791060916 --- /dev/null +++ b/script-finder-plus/README.md @@ -0,0 +1,259 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          Script Finder 油猴脚本查找

          +

          「 Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          🛠️ Script Finder+ 更新日志

          +

          📅 2024/9/26 10:43 - Ver 0.1.6.80

          +

          修复: • CSS 样式与 GreasyFork 冲突导致放大字体

          +
          +

          📅 2024/8/28 12:01 - Ver 0.1.6.58

          +

          新增: • 网页进入全屏,隐藏右下角按钮。

          +
          +

          📅 2024/8/26 07:32 - Ver 0.1.6.54

          +

          新增: • 增加语言支持。

          +
          +

          📅 2024/8/4 14:32 - Ver 0.1.6.32

          +

          修复: • #253924 在顺丰官网 CSS 冲突,导致右下角按钮变长,横在整个页面底部。
          +修复方式: • 更改按钮类名 button.script-button 👉 scrbutton.script-button

          +
          +

          📅 2024/7/18 08:45 - Ver 0.1.6.9

          +

          优化: • 取消默认排序,改为按照更新时间排序。

          +
          +

          📅 2024/6/26 06:43 - Ver 0.1.6.1

          +

          新增: • 增加对移动设备的支持,手机也能使用啦~
          +修改: • 取消搜索出错时清空列表的操作。

          +
          + +
          + + + + + +# Script Finder + +Script Finder 是一个用户脚本(userscript),它可以帮助你在任何网站上查找和管理用户脚本。它提供了一种方便的方式来搜索和安装来自 Greasy Fork 的用户脚本。借助 Script Finder,你可以轻松地一键将自定义脚本添加到你喜爱的网站上,从而增强你的浏览体验。 + + + +## 功能 + +- 根据网站域名搜索用户脚本 +- 查看每个脚本的详细信息,包括作者、描述、安装数量、版本和评分 +- 一键安装用户脚本 + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + +## 使用方法 + +1. 在浏览器中安装用户脚本管理器,例如 Tampermonkey 或 Greasemonkey +2. 访问 Greasy Fork 网站并点击 "Install" 按钮来安装 Script Finder 脚本 +3. 安装完成后,访问页面的右侧上会出现一个 "Scripts" 按钮 +4. 点击 "Scripts" 按钮打开 Script Finder 界面 +5. 可以使用搜索栏根据特定网站查找用户脚本 +6. 点击一个用户脚本以查看更多详细信息或一键安装脚本 +7. 尽情发现和使用 Script Finder 提供的新用户脚本吧! + +**注意**:该用户脚本需要在浏览器中安装用户脚本管理器才能正常使用(可在最底部查看可以使用的管理器) + + + +## 图片 + +![fi.png](https://s2.loli.net/2024/08/05/WOkL8vV2oxRASYQ.png) +![show.png](https://s2.loli.net/2024/08/05/EBsldxGySe9Kf3w.png) + + + +## 原作者 + +脚本修改自用户 **[shiquda](https://greasyfork.org/zh-CN/users/935206)** 的脚本 [Script Finder](https://greasyfork.org/scripts/472056) 感谢原作者 **[shiquda](https://greasyfork.org/zh-CN/users/935206)** 的**勤劳**与**智慧** + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/script-finder-plus/README_en.md b/script-finder-plus/README_en.md new file mode 100644 index 000000000..1ac8b7d46 --- /dev/null +++ b/script-finder-plus/README_en.md @@ -0,0 +1,268 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          Script Finder GreasyFork Script Lookup

          +

          「 Script Finder Find on any website that applies to that website GreasyFork Script。 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          Update record

          🛠️ Script Finder+ Change log

          +

          📅 2024/9/26 10:43 - Ver 0.1.6.80

          +

          repair: • CSS style with GreasyFork Conflict causes enlarged font

          +
          +

          📅 2024/8/28 12:01 - Ver 0.1.6.58

          +

          New: • Web page enters full screen,Hide bottom right button。

          +
          +

          📅 2024/8/26 07:32 - Ver 0.1.6.54

          +

          New: • Add language support。

          +
          +

          📅 2024/8/4 14:32 - Ver 0.1.6.32

          +

          repair: • #253924 On SF official website CSS conflict,Causes the button in the lower right corner to become longer,across the bottom of the page。
          +How to fix it: • Change button class name button.script-button 👉 scrbutton.script-button

          +
          +

          📅 2024/7/18 08:45 - Ver 0.1.6.9

          +

          optimization: • Cancel default sorting,Sort by update time instead。

          +
          +

          📅 2024/6/26 06:43 - Ver 0.1.6.1

          +

          New: • Add support for mobile devices,Can also be used on mobile phones~
          +Revise: • Cancel the operation of clearing the list when a search error occurs。

          +
          + +
          + + + + + +# Script Finder + +The Script Finder userscript allows you to find and manage user scripts on any website. It provides a convenient way to search and install userscripts from Greasy Fork. With Script Finder, you can easily enhance your browsing experience by adding custom scripts to your favorite websites easily. + + + +## Features + +- Search for userscripts based on website domain +- View detailed information about each script, including author, description, installs, version and rating +- Install userscripts with a single click + + + +## How to Use + +1. Install a userscript manager such as Tampermonkey or Greasemonkey in your browser +2. Install the Script Finder userscript by visiting the Greasy Fork and clicking the "Install" button +3. After installation, a "Scripts" button will appear on your browser toolbar +4. Click the "Scripts" button to open the Script Finder interface +5. Use the search bar to find userscripts for a specific website +6. Click on a userscript to view more details or install it by one-click +7. Enjoy discovering and using new userscripts with Script Finder! + +**Note**: This userscript requires a userscript manager extension to be installed in your browser. + + + +## Preview + +![fi.png](https://s2.loli.net/2024/08/05/WOkL8vV2oxRASYQ.png) +![show.png](https://s2.loli.net/2024/08/05/EBsldxGySe9Kf3w.png) + + + +## Aoriginal Author + + + +# [shiquda](https://greasyfork.org/zh-CN/scripts/472056-script-finder) + + + +## Modify content + +- Added support for mobile devices, mobile phones can also be used~ +- Cancel the operation of clearing the list when a search error occurs +- Cancel the default sorting and change to sorting by update time + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/Script details/script-finder-plus/preview/fi.png b/script-finder-plus/preview/fi.png similarity index 100% rename from Script details/script-finder-plus/preview/fi.png rename to script-finder-plus/preview/fi.png diff --git a/Script details/script-finder-plus/preview/show.png b/script-finder-plus/preview/show.png similarity index 100% rename from Script details/script-finder-plus/preview/show.png rename to script-finder-plus/preview/show.png diff --git a/Script details/script-finder-plus/script-finder-plus.user.js b/script-finder-plus/script-finder-plus.user.js similarity index 98% rename from Script details/script-finder-plus/script-finder-plus.user.js rename to script-finder-plus/script-finder-plus.user.js index 5a1bfc906..739f6f232 100644 --- a/Script details/script-finder-plus/script-finder-plus.user.js +++ b/script-finder-plus/script-finder-plus.user.js @@ -78,7 +78,7 @@ // @namespace https://github.com/ChinaGodMan/UserScripts // @version 0.1.6.80 -// @author shiquda & 人民的勤务员 +// @author shiquda & 人民的勤务员 // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts // @match *://*/* @@ -193,13 +193,13 @@ const translate = (function () { var url = `https://greasyfork.org/scripts/by-site/${domain}?filter_locale=0&sort=updated&page=${page}` GM_xmlhttpRequest({ - method: "GET", + method: 'GET', url: url, onload: (response) => { // 解析结果 const parser = new DOMParser() - const doc = parser.parseFromString(response.responseText, "text/html") - const scripts = doc.querySelector("#browse-script-list")?.querySelectorAll('[data-script-id]') + const doc = parser.parseFromString(response.responseText, 'text/html') + const scripts = doc.querySelector('#browse-script-list')?.querySelectorAll('[data-script-id]') let scriptsInfo = [] if (!scripts) { @@ -227,11 +227,11 @@ const translate = (function () { appendScriptsInfo(scriptsInfo) updateMatches() - typeof (loadedPages) === 'number' ? loadedPages += 1 : loadedPages = loadedPages + loadedPages = typeof loadedPages === 'number' ? loadedPages + 1 : 0 // console.log(loadedPages) }, onerror: () => { - console.log("Some error occurred!") + console.log('Some error occurred!') if (loadedPages === 0) { appendScriptsInfo(scriptsInfo) } @@ -246,8 +246,8 @@ const translate = (function () { return { id: script.getAttribute('data-script-id'), name: script.getAttribute('data-script-name'), - author: script.querySelector("dd.script-list-author").textContent, - description: script.querySelector(".script-description").textContent, + author: script.querySelector('dd.script-list-author').textContent, + description: script.querySelector('.script-description').textContent, version: script.getAttribute('data-script-version'), url: 'https://greasyfork.org/scripts/' + script.getAttribute('data-script-id'), createDate: script.getAttribute('data-script-created-date'), @@ -629,12 +629,12 @@ div.info-container { button.addEventListener('click', function (event) { event.stopPropagation() if (collapsed) { - infoContainer.style.display = "block" + infoContainer.style.display = 'block' infoContainer.style.opacity = 1 collapsed = false } else { - infoContainer.style.display = "none" + infoContainer.style.display = 'none' infoContainer.style.opacity = 0 collapsed = true } @@ -675,7 +675,7 @@ div.info-container { collapsed = true button.style.right = '-50px' infoContainer.style.opacity = 0 - infoContainer.style.display = "none" + infoContainer.style.display = 'none' }) document.body.appendChild(button) diff --git a/scroll-button.user.js b/scroll-button.user.js deleted file mode 100644 index 3f94272ea..000000000 --- a/scroll-button.user.js +++ /dev/null @@ -1,104 +0,0 @@ -// ==UserScript== -// @name scroll By to top/bottom -// @name:zh-CN 上下滚动按钮 -// @description:zh-CN 在页面右侧生成两个按钮用于滚动页面 -// @name:ar زر التمرير -// @description:ar قم بإنشاء زرين على الجانب الأيمن من الصفحة لتمرير الصفحة -// @name:bg бутон за превъртане -// @description:bg Генерирайте два бутона от дясната страна на страницата за превъртане на страницата -// @name:cs rolovací tlačítko -// @description:cs Na pravé straně stránky vygenerujte dvě tlačítka pro posouvání stránky -// @name:da rulleknap -// @description:da Generer to knapper i højre side af siden til at rulle siden -// @name:de Scroll-Taste -// @description:de Generieren Sie zwei Schaltflächen auf der rechten Seite der Seite zum Scrollen der Seite -// @name:el κουμπί κύλισης -// @description:el Δημιουργήστε δύο κουμπιά στη δεξιά πλευρά της σελίδας για κύλιση της σελίδας -// @name:en scroll button -// @description:en Generate two buttons on the right side of the page for scrolling the page -// @name:eo rulbutono -// @description:eo Generu du butonojn ĉe la dekstra flanko de la paĝo por rulumi la paĝon -// @name:es botón de desplazamiento -// @description:es Genere dos botones en el lado derecho de la página para desplazarse por la página -// @name:fi vierityspainike -// @description:fi Luo kaksi painiketta sivun oikealle puolelle sivun vierittämistä varten -// @name:fr bouton de défilement -// @description:fr Générez deux boutons sur le côté droit de la page pour faire défiler la page -// @name:he כפתור גלילה -// @description:he צור שני כפתורים בצד ימין של העמוד לגלילה בעמוד -// @name:hr gumb za pomicanje -// @description:hr Generirajte dva gumba na desnoj strani stranice za pomicanje stranice -// @name:hu görgető gomb -// @description:hu Az oldal görgetéséhez hozzon létre két gombot az oldal jobb oldalán -// @name:id tombol gulir -// @description:id Hasilkan dua tombol di sisi kanan halaman untuk menggulir halaman -// @name:it pulsante di scorrimento -// @description:it Genera due pulsanti sul lato destro della pagina per scorrere la pagina -// @name:ja スクロールボタン -// @description:ja ページの右側にページをスクロールするための 2 つのボタンを生成します -// @name:ka გადახვევის ღილაკი -// @description:ka შექმენით ორი ღილაკი გვერდის მარჯვენა მხარეს გვერდის გადასახვევად -// @name:ko 스크롤 버튼 -// @description:ko 페이지 스크롤을 위해 페이지 오른쪽에 두 개의 버튼을 생성합니다. -// @name:nl scroll-knop -// @description:nl Genereer twee knoppen aan de rechterkant van de pagina om door de pagina te scrollen -// @name:nb rulleknapp -// @description:nb Generer to knapper på høyre side av siden for å rulle siden -// @name:pl przycisk przewijania -// @description:pl Wygeneruj dwa przyciski po prawej stronie strony do przewijania strony -// @name:pt-BR botão de rolagem -// @description:pt-BR Gere dois botões no lado direito da página para rolar a página -// @name:ro butonul de defilare -// @description:ro Generați două butoane în partea dreaptă a paginii pentru derularea paginii -// @name:ru кнопка прокрутки -// @description:ru Создайте две кнопки в правой части страницы для прокрутки страницы. -// @name:sk rolovacie tlačidlo -// @description:sk Vygenerujte dve tlačidlá na pravej strane stránky na posúvanie stránky -// @name:sr дугме за померање -// @description:sr Генеришите два дугмета на десној страни странице за померање странице -// @name:sv rullningsknapp -// @description:sv Skapa två knappar till höger på sidan för att rulla sidan -// @name:th ปุ่มเลื่อน -// @description:th สร้างปุ่มสองปุ่มทางด้านขวาของหน้าเพื่อเลื่อนหน้า -// @name:tr kaydırma düğmesi -// @description:tr Sayfayı kaydırmak için sayfanın sağ tarafında iki düğme oluşturun -// @name:ug سىيرىلما كۇنۇپكا -// @description:ug بەتنىڭ ئوڭ تەرىپىدە ئىككى كۇنۇپكا ھاسىل قىلىڭ -// @name:uk кнопка прокручування -// @description:uk Згенеруйте дві кнопки в правій частині сторінки для прокручування сторінки -// @name:vi nút cuộn -// @description:vi Tạo hai nút ở bên phải trang để cuộn trang -// @name:zh-TW 上下滾動按鈕 -// @description:zh-TW 在頁面右側產生兩個按鈕用於滾動頁面 -// @name:zh-HK 上下滾動按鈕 -// @description:zh-HK 在頁面右側產生兩個按鈕用於滾動頁面 -// @name:fr-CA bouton de défilement -// @description:fr-CA Générez deux boutons sur le côté droit de la page pour faire défiler la page -// @namespace https://github.com/ChinaGodMan/UserScripts -// @match *://*/* -// @grant none -// @version 1.0.0.26 -// @author 人民的勤务员 & d3ward -// @description Script to scrollBy to top/bottom -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEuElEQVR4nO2Y609adxzGD2LrolYsYL3bKc5enFM06+XV/oHt3bam+xPq0qxL2rSvzKJV7NY5V0WprtZ1a5w11Ch2bZ1SuRwEEUEPiOGignfhmK1vxG5+l3OyJpqVnhvCG57kk5zwPb/n9zxwuB0EiSuuuLgLIEHqCJ6vdOA3pHZcWenYwiodOC514K8IyGP71gwxq3Lg1ysdgXPEGiTWKrMF8ipmcJkUw/1SDAcmVGC4TzqDN5RPBXKjHrzK/Je4whZor7AFQhXTQeCELRAqnw7IP3T8KYpK+DLbxsXyqc1guTUAEWVqM/iBNXjhwIJXmeFQmWVTUWbZhINlo+0jNSRGOPxycqlpXfX+xAZEBdP6ILFnhMLDoVLj2lCpcR2iyWnjmioir8QpdFVxyrAGseCkYbWdU/gS7ernJ/WrEEtOoGtfsAp/GvUJSzQrgRPaFWBLyQsfCScPzUqwRL0sZv7sv1hqLxlbAra893QOPlE74ePRWfKYk9eYX84ofLHanydR+0PFaj+wQfLECV+Oe+DV7i78vbsLX5u85GPFoz52fqP+naLh5QLaBSQjPplkxAdsKFLNQjXqJsO/FlnC6CVnkj8WWflKRnwyeulrIKHw+YK/aHgRmFI44IBq1LUv/N4SVwwe8pyi5wuMvYuGF5aJbJT5j/8+f77w2QIw5d1+O1Tr3xx+fwk3eW7h03nmezzznqUuMDR/4/iTeWBCgRKDS9q3h3+tf3YBrujd5JrjQ15m+wx5r1EWyFd5lAUqL9Alv28GLmnohd9b4iudm1xbMOihv9egt4+yQN6AB8sf8AAd8h5hcFnrIi8NpiLWXNa6SA+6++UPuG2UBXIeu/DcfjdQ8tgF2T9PwNLLbWAr/8tt0oPworVnvztAWSBb6drJUbqADtk9GGR1myDr/h7uoWEDE7N953abSA/a+yldIeoCfXM72X1zwJbMe+NhCxAzLt5Zj5zblAUye514Vq8T2HKs0xC2ADHj4p35m5P6EsromcWO9cwCW8R3w19CxIyLd0aPg/pNLP7Vrsx46AC2iNr1YQsQMy7e4od26o9R0QPsuvgXO7BFKNeFLUDMuHiLHtivUhYQdjnOCbsxYEt6izZsAWLGxVt4HztDWQAB4B3tml442jUDbBDc0YQtQMzY+qZ3TfuIbNQFEAQRdNoa0n+aBjakNY+FLUDM2PoKOm0NtMKTl1HbVK7grjUk6LABU9KatYD6t/4XXu/HyRkbT0GHdVvUOZmDMNERxZT8iMIKjGmzQGqTBlJvq/fTpCFnrDwV1haEqdI6MGGK3LKZSgSKISnyyWCqwsz8Tz2h1BbLpymtkxBTWiwXES5K/tHclnzHDLFhohXhrN5eflLzhPKd5gmIKj+YVEiNOkI3eRXm5KQmkyqpyQRR4XvTILEnElHVqBMPf2tsP/ydEQ6W8dbIPfNvUEKj4UJi43gw8dY4RBZDgH/L+BkSFdUbRXwZKufL0BBfZgBONBi2+TK0BbmNCpGoqw7N5d1EZQn1el9CPQqMuIku8urRBqRRx+wb9kBE3DH7RnMWqdVd49Xq+3i1OhuvThfk1ep2eHW60H/HNmKG1OmuInXoGdo/zOKKKy7kbfoXB/L+M6aLQpIAAAAASUVORK5CYII= - -// ==/UserScript== -//Variable to set how much to scroll -var sH = (window.innerHeight) - 50 - -//top button -var topBtn = document.createElement('span') -topBtn.innerHTML = '' -topBtn.style.cssText = 'text-align:center;background:#191919;border-radius:8px;color:#000000;cursor:pointer;position:fixed;bottom:50%;width:36px;height:36px;right:10px;z-index:9999' -topBtn.addEventListener('click', function () { window.scrollBy({ top: -sH, behavior: 'smooth' }) }, false) -document.body.appendChild(topBtn) - -//bottom button -var bottomBtn = document.createElement('span') -bottomBtn.innerHTML = '' -bottomBtn.style.cssText = 'text-align:center;background:#191919;border-radius:8px;color:#000000;cursor:pointer;position:fixed;bottom:45%;width:36px;height:36px;right:10px;z-index:9999'//top:52%; -bottomBtn.addEventListener('click', function () { window.scrollBy({ top: sH, behavior: 'smooth' }) }, false) -document.body.appendChild(bottomBtn) diff --git a/scroll-button/README.md b/scroll-button/README.md new file mode 100644 index 000000000..a57175188 --- /dev/null +++ b/scroll-button/README.md @@ -0,0 +1,198 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          上下滚动按钮

          +

          「 在页面右侧生成两个按钮用于滚动页面 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + +在每个网页的右侧添加上下按钮,方便滚动。 +![1.png](https://s2.loli.net/2024/08/24/nOVbHuZzvmdtRUc.png) + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/Script details/scroll-button/preview/1.png b/scroll-button/preview/1.png similarity index 100% rename from Script details/scroll-button/preview/1.png rename to scroll-button/preview/1.png diff --git a/Script details/scroll-button/scroll-button.user.js b/scroll-button/scroll-button.user.js similarity index 99% rename from Script details/scroll-button/scroll-button.user.js rename to scroll-button/scroll-button.user.js index 3f94272ea..13173c178 100644 --- a/Script details/scroll-button/scroll-button.user.js +++ b/scroll-button/scroll-button.user.js @@ -78,7 +78,7 @@ // @match *://*/* // @grant none // @version 1.0.0.26 -// @author 人民的勤务员 & d3ward +// @author 人民的勤务员 & d3ward // @description Script to scrollBy to top/bottom // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts diff --git a/Script details/scroll-to-top-button/Change history/README.md b/scroll-to-top-button/Change history/README.md similarity index 57% rename from Script details/scroll-to-top-button/Change history/README.md rename to scroll-to-top-button/Change history/README.md index e596f0b9b..67406bf0a 100644 --- a/Script details/scroll-to-top-button/Change history/README.md +++ b/scroll-to-top-button/Change history/README.md @@ -1,7 +1,8 @@ -# **🛠️ 一键置顶和置底按钮 更新日志** +# **🛠️ 一键置顶和置底按钮 更新日志** ### **📅 2024/8/26 1:28 - Ver 1.2.0.48** + **请求**: -• [#257324](https://greasyfork.org/zh-CN/scripts/500255/discussions/257324) 添加绑定热键。 +• [#257324](https://greasyfork.org/zh-CN/scripts/500255/discussions/257324) 添加绑定热键。 --- diff --git a/scroll-to-top-button/README.md b/scroll-to-top-button/README.md new file mode 100644 index 000000000..6960582b3 --- /dev/null +++ b/scroll-to-top-button/README.md @@ -0,0 +1,212 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          置顶和置底按钮

          +

          「 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          🛠️ 一键置顶和置底按钮 更新日志

          +

          📅 2024/8/26 1:28 - Ver 1.2.0.48

          +

          请求:
          +• #257324 添加绑定热键。

          +
          + +
          + + + +该脚本修改自 [金衍丞](https://greasyfork.org/scripts/498420/) + + +## 修改说明: + +- **处于网页底部时,自动关闭滚动。** +- **处于滚动时,向下的按钮变成绿色。** + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + +![set.png](https://s2.loli.net/2024/08/26/3Et6ghaqMSo54KF.png) +![c.png](https://s2.loli.net/2024/08/26/UrwMu2lphEia3Q7.png) + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/scroll-to-top-button/README_en.md b/scroll-to-top-button/README_en.md new file mode 100644 index 000000000..83e77bc2c --- /dev/null +++ b/scroll-to-top-button/README_en.md @@ -0,0 +1,212 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          Pin to top and bottom buttons

          +

          「 Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          Update record

          🛠️ One-touch top and bottom buttons Change log

          +

          📅 2024/8/26 1:28 - Ver 1.2.0.48

          +

          ask:
          +• #257324 Add binding hotkey。

          +
          + +
          + + + +This script is modified from [Kim Yong-jo](https://greasyfork.org/scripts/498420/) + + +## Modification instructions: + +- **at the bottom of the page,Automatically turn off scrolling。** +- **While scrolling,The down button turns green。** + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + +![set.png](https://s2.loli.net/2024/08/26/3Et6ghaqMSo54KF.png) +![c.png](https://s2.loli.net/2024/08/26/UrwMu2lphEia3Q7.png) + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/Script details/scroll-to-top-button/preview/c.png b/scroll-to-top-button/preview/c.png similarity index 100% rename from Script details/scroll-to-top-button/preview/c.png rename to scroll-to-top-button/preview/c.png diff --git a/Script details/scroll-to-top-button/preview/set.png b/scroll-to-top-button/preview/set.png similarity index 100% rename from Script details/scroll-to-top-button/preview/set.png rename to scroll-to-top-button/preview/set.png diff --git a/scroll-to-top-button.user.js b/scroll-to-top-button/scroll-to-top-button.user.js similarity index 95% rename from scroll-to-top-button.user.js rename to scroll-to-top-button/scroll-to-top-button.user.js index f77ef907b..70a22a7e4 100644 --- a/scroll-to-top-button.user.js +++ b/scroll-to-top-button/scroll-to-top-button.user.js @@ -77,6 +77,7 @@ // @description Generate two buttons on all pages, one for smoothly scrolling back to the top and one for continuous scrolling to the bottom. Click again to stop scrolling to the bottom. // @version 1.2.0.72 // @run-at document-end +// @author 人民的勤务员 // @match *://*/* // @license MIT // @grant GM_registerMenuCommand @@ -91,10 +92,10 @@ (function () { 'use strict' let isScrollingToBottom = false - let buttonTopKey = GM_getValue("buttonTopKey", "") - let buttonBottomKey = GM_getValue("buttonBottomKey", "") + let buttonTopKey = GM_getValue('buttonTopKey', '') + let buttonBottomKey = GM_getValue('buttonBottomKey', '') var style = document.createElement('style') - GM_registerMenuCommand("SetHotkey", showHotkeyModal) + GM_registerMenuCommand('SetHotkey', showHotkeyModal) function showHotkeyModal() { let modalHtml = `
          @@ -115,36 +116,36 @@ let modalDiv = document.createElement('div') modalDiv.innerHTML = modalHtml document.body.appendChild(modalDiv) - document.getElementById("hotkeyInput1").addEventListener("keydown", function (event) { + document.getElementById('hotkeyInput1').addEventListener('keydown', function (event) { event.preventDefault() buttonTopKey = event.key this.value = buttonTopKey }) - document.getElementById("hotkeyInput2").addEventListener("keydown", function (event) { + document.getElementById('hotkeyInput2').addEventListener('keydown', function (event) { event.preventDefault() buttonBottomKey = event.key this.value = buttonBottomKey }) - document.getElementById("saveHotkeys").addEventListener("click", function () { - GM_setValue("buttonTopKey", buttonTopKey) - GM_setValue("buttonBottomKey", buttonBottomKey) + document.getElementById('saveHotkeys').addEventListener('click', function () { + GM_setValue('buttonTopKey', buttonTopKey) + GM_setValue('buttonBottomKey', buttonBottomKey) closeModal() }) - document.getElementById("closeModal").addEventListener("click", closeModal) + document.getElementById('closeModal').addEventListener('click', closeModal) } function closeModal() { - let modal = document.getElementById("hotkeyModal") + let modal = document.getElementById('hotkeyModal') if (modal) { modal.remove() } } - document.addEventListener("keydown", function (event) { + document.addEventListener('keydown', function (event) { if (event.target.matches('input, textarea, [contenteditable="true"]')) { return } - if (event.key === GM_getValue("buttonTopKey")) { + if (event.key === GM_getValue('buttonTopKey')) { goToTop() - } else if (event.key === GM_getValue("buttonBottomKey")) { + } else if (event.key === GM_getValue('buttonBottomKey')) { isScrollingToBottom = toggleScrolling(buttonBottom, isScrollingToBottom) } }) diff --git a/thisav-auto-login-helper.user.js b/thisav-auto-login-helper.user.js deleted file mode 100644 index d4c68a96c..000000000 --- a/thisav-auto-login-helper.user.js +++ /dev/null @@ -1,249 +0,0 @@ -// ==UserScript== -// @name ThisAV Automatic login -// @name:zh-CN ThisAV 自动登录 -// @description:zh-CN 检测 ThisAV 状态,并且在未登录时自动登录 -// @name:ar ThisAV تسجيل الدخول التلقائي -// @description:ar كشف ThisAV ولاية,وتسجيل الدخول تلقائيًا في حالة عدم تسجيل الدخول -// @name:bg ThisAV Автоматично влизане -// @description:bg Откриване ThisAV състояние,и автоматично влизане, когато не сте влезли -// @name:cs ThisAV Automatické přihlášení -// @description:cs Detekce ThisAV stát,a automaticky se přihlásit, když nejste přihlášeni -// @name:da ThisAV Automatisk login -// @description:da Opdagelse ThisAV tilstand,og logger automatisk på, når du ikke er logget ind -// @name:de ThisAV Automatische Anmeldung -// @description:de Erkennung ThisAV Zustand,und melden Sie sich automatisch an, wenn Sie nicht angemeldet sind -// @name:el ThisAV Αυτόματη σύνδεση -// @description:el Ανίχνευση ThisAV κατάσταση,και αυτόματα συνδέεστε όταν δεν είστε συνδεδεμένοι -// @name:en ThisAV Automatic login -// @description:en Detection ThisAV state,and automatically log in when not logged in -// @name:eo ThisAV Aŭtomata ensaluto -// @description:eo Detekto ThisAV stato,kaj aŭtomate ensalutu kiam ne ensalutinta -// @name:es ThisAV Inicio de sesión automático -// @description:es Detección ThisAV estado,e iniciar sesión automáticamente cuando no haya iniciado sesión -// @name:fi ThisAV Automaattinen sisäänkirjautuminen -// @description:fi Havaitseminen ThisAV osavaltio,ja kirjaudu sisään automaattisesti, kun et ole kirjautunut sisään -// @name:fr ThisAV Connexion automatique -// @description:fr Détection ThisAV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté -// @name:he ThisAV כניסה אוטומטית -// @description:he איתור ThisAV מְדִינָה,והתחבר אוטומטית כאשר לא מחובר -// @name:hr ThisAV Automatska prijava -// @description:hr Otkrivanje ThisAV stanje,i automatski se prijavite kada niste prijavljeni -// @name:hu ThisAV Automatikus bejelentkezés -// @description:hu Érzékelés ThisAV állami,és automatikusan bejelentkezik, ha nincs bejelentkezve -// @name:id ThisAV Masuk otomatis -// @description:id Deteksi ThisAV negara,dan secara otomatis login ketika tidak login -// @name:it ThisAV Accesso automatico -// @description:it Rilevamento ThisAV stato,e accedi automaticamente quando non sei loggato -// @name:ja ThisAV 自動ログイン -// @description:ja 検出 ThisAV 州,ログインしていない場合は自動的にログインします -// @name:ka ThisAV ავტომატური შესვლა -// @description:ka გამოვლენა ThisAV სახელმწიფო,და ავტომატურად შედით სისტემაში, როდესაც არ ხართ შესული -// @name:ko ThisAV 자동 로그인 -// @description:ko 발각 ThisAV 상태,로그인하지 않으면 자동으로 로그인됩니다. -// @name:nl ThisAV Automatisch inloggen -// @description:nl Detectie ThisAV staat,en automatisch inloggen als je niet ingelogd bent -// @name:nb ThisAV Automatisk pålogging -// @description:nb Oppdagelse ThisAV tilstand,og logger automatisk på når du ikke er pålogget -// @name:pl ThisAV Automatyczne logowanie -// @description:pl Wykrywanie ThisAV państwo,i automatycznie loguj się, gdy nie jesteś zalogowany -// @name:pt-BR ThisAV Login automático -// @description:pt-BR Detecção ThisAV estado,e faça login automaticamente quando não estiver conectado -// @name:ro ThisAV Conectare automată -// @description:ro Detectare ThisAV stat,și conectați-vă automat când nu sunteți autentificat -// @name:ru ThisAV Автоматический вход -// @description:ru Обнаружение ThisAV состояние,и автоматически входить в систему, когда вы не вошли в систему -// @name:sk ThisAV Automatické prihlásenie -// @description:sk Detekcia ThisAV štátu,a automaticky sa prihlásiť, keď nie ste prihlásení -// @name:sr ThisAV Аутоматско пријављивање -// @description:sr Детецтион ThisAV држава,и аутоматски се пријављује када нисте пријављени -// @name:sv ThisAV Automatisk inloggning -// @description:sv Upptäckt ThisAV ange,och logga in automatiskt när du inte är inloggad -// @name:th ThisAV เข้าสู่ระบบอัตโนมัติ -// @description:th การตรวจจับ ThisAV สถานะ,และเข้าสู่ระบบอัตโนมัติเมื่อไม่ได้เข้าสู่ระบบ -// @name:tr ThisAV Otomatik giriş -// @description:tr Algılama ThisAV durum,ve oturum açmadığınızda otomatik olarak oturum açın -// @name:ug ThisAV ئاپتوماتىك كىرىش -// @description:ug بايقاش ThisAV ئىشتات,ھەمدە كىرمىگەندە ئاپتوماتىك كىرىدۇ -// @name:uk ThisAV Автоматичний вхід -// @description:uk виявлення ThisAV стан,і автоматично ввійти, якщо ви не ввійшли -// @name:vi ThisAV Đăng nhập tự động -// @description:vi Phát hiện ThisAV tình trạng,và tự động đăng nhập khi chưa đăng nhập -// @name:zh-TW ThisAV 自動登入 -// @description:zh-TW 偵測 ThisAV 狀態,並且在未登入時自動登入 -// @name:zh-HK ThisAV 自動登入 -// @description:zh-HK 偵測 ThisAV 狀態,並且在未登入時自動登入 -// @name:fr-CA ThisAV Connexion automatique -// @description:fr-CA Détection ThisAV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté -// @description Detection ThisAV state,and automatically log in when not logged in -// @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 -// @match https://thisav.com/* -// @grant GM_registerMenuCommand -// @grant GM_setValue -// @grant GM_getValue -// @version 1.0.1.8 -// @require https://update.greasyfork.org/scripts/498897/1404834/Toastnew.js -// @icon data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 -// @iconbak https://pic.616pic.com/ys_bnew_img/00/35/79/Gv93yQh7v6.jpg -// @supportURL https://github.com/ChinaGodMan/UserScripts/issues -// @homepageURL https://github.com/ChinaGodMan/UserScripts -// @license MIT -// ==/UserScript== - -const translate = (function () { - const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' - const strings = { - 'en': { - Accountnull: 'Error: UserEmail or UserPassword is empty.', - loginSuccess: 'Login successful, refreshing the page.', - Networkfailed: 'Status code error.', - Loginfailed: 'Login failed, incorrect email or password. Check console for error details.', - }, - 'zh-CN': { - Accountnull: '邮箱或密码为空', - loginSuccess: '登录成功,即将刷新页面。', - Networkfailed: '状态码错误', - Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。', - }, - 'zh-TW': { - Accountnull: '郵箱或密碼為空', - loginSuccess: '登錄成功,即將刷新頁面。', - Networkfailed: '狀態碼錯誤', - Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。', - }, - 'ja': { - Accountnull: 'エラー:メールアドレスまたはパスワードが空です。', - loginSuccess: 'ログイン成功、ページを更新します。', - Networkfailed: 'ステータスコードエラー', - Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。', - }, - 'vi': { - Accountnull: 'Lỗi: Email hoặc mật khẩu trống.', - loginSuccess: 'Đăng nhập thành công, đang làm mới trang.', - Networkfailed: 'Lỗi mã trạng thái.', - Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.', - } - } - - return (id, lang = '') => { - const selectedLang = lang || userLang - return (strings[selectedLang] || strings.en)[id] || strings.en[id] - } -}()); -(function () { - 'use strict' - let UserEmail = GM_getValue("UserEmail", "") - let UserPassword = GM_getValue("UserPassword", "") - var style = document.createElement('style') - GM_registerMenuCommand("Set Account", showuserInfoModal) - function showuserInfoModal() { - let modalHtml = ` -
          -

          Set Account

          -
          - - -
          -
          - - -
          -
          - - -
          -
          ` - let modalDiv = document.createElement('div') - modalDiv.innerHTML = modalHtml - document.body.appendChild(modalDiv) - document.getElementById("saveUserInfo").addEventListener("click", function () { - UserEmail = document.getElementById("UserEmail").value - UserPassword = document.getElementById("UserPassword").value - GM_setValue("UserEmail", UserEmail) - GM_setValue("UserPassword", UserPassword) - closeUserModal() - }) - document.getElementById("closeUserModal").addEventListener("click", closeUserModal) - } - function closeUserModal() { - let modal = document.getElementById("userInfoModal") - if (modal) { - modal.remove() - } - } - function login(email, password) { - if (!email || !password) { - Toast(translate('Accountnull'), 2000, '#FF0000', '#ffffff', 'top') - return - } - fetch('https://thisav.com/cn/api/login', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - email: email, - password: password, - remember: true, - }), - }) - .then(response => { - if (!response.ok) { - return response.text().then(text => { - console.error('Login error:', { - status: response.status, - statusText: response.statusText, - responseText: text, - }) - Toast('Login failed: ' + text, 2000, '#FF0000', '#ffffff', 'top') - throw new Error(translate('Networkfailed')) - }) - } - if (response.headers.get('Content-Type')?.includes('application/json')) { - return response.json() - } else { - return response.text().then(text => { - console.error(translate('Loginfailed'), { - status: response.status, - statusText: response.statusText, - responseText: text, - }) - Toast(translate('Loginfailed'), 2000, '#FF0000', '#ffffff', 'top') - throw new Error(translate('Loginfailed')) - }) - } - }) - .then(data => { - console.log('Success:', data) - Toast(translate('loginSuccess'), 2000, 'rgb(18, 187, 2)', '#ffffff', 'top') - location.reload() - }) - .catch(error => { - Toast('An error occurred: ' + error.message, 2000, '#FF0000', '#ffffff', 'top') - }) - } - function check() { - const url = 'https://thisav.com/api/actresses/1016525/view' - fetch(url, { - method: 'GET' - }) - .then(response => { - if (response.ok) { - return response.json() - } else { - throw new Error('Network response was not ok.') - } - }) - .then(data => { - if (data) { - if (data.user === null) { - login(UserEmail, UserPassword) - } else { - // 已经登录 - } - } - }) - .catch(error => console.error('Error:', error)) - } - check() -})() diff --git a/thisav-auto-login-helper/Change history/README.md b/thisav-auto-login-helper/Change history/README.md new file mode 100644 index 000000000..c5a0b5e66 --- /dev/null +++ b/thisav-auto-login-helper/Change history/README.md @@ -0,0 +1 @@ +初始版本,欢迎使用 diff --git a/thisav-auto-login-helper/README.md b/thisav-auto-login-helper/README.md new file mode 100644 index 000000000..badbc1d26 --- /dev/null +++ b/thisav-auto-login-helper/README.md @@ -0,0 +1,222 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          ThisAV 自动登录

          +

          「 检测 ThisAV 状态,并且在未登录时自动登录 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          更新记录

          初始版本,欢迎使用

          + +
          + + + + + +# ThisAV AutoLogin Helper + +这是一个用于ThisAV管理用户账户的脚本,主要功能自动登录以及检测用户是否已登录。 + + + +## 功能 + +- **设置账户**: 通过弹出模态框允许用户设置电子邮件和密码。 +- **登录功能**: 使用用户提供的电子邮件和密码进行登录,并处理登录错误。 +- **用户检测**: 检测用户是否已登录,如果未登录则尝试自动登录。 + + + +## 安装和使用 + +1. **安装脚本**: + + - 将脚本复制到 Greasemonkey 或 Tampermonkey 插件中。 + - 确保脚本在你希望运行的网页上启用。 + +2. **设置账户**: + + - 点击浏览器工具栏中的 Greasemonkey/Tampermonkey 图标。 + - 选择“Set Account”选项,输入你的电子邮件和密码,然后点击“Save”。 + +3. **自动登录**: + - 脚本会自动检测用户是否已登录。如果检测到未登录状态,它将使用提供的账户信息尝试登录。 + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/thisav-auto-login-helper/README_en.md b/thisav-auto-login-helper/README_en.md new file mode 100644 index 000000000..6b2cf1b9f --- /dev/null +++ b/thisav-auto-login-helper/README_en.md @@ -0,0 +1,222 @@ + + +
          +
          + + + + + 简体中文 | + English +
          + 👆️accessGitHub Readme file on the app for a better experience。 +
          +
          + + + +
          + + + + + +
          +

          ThisAV Automatic login

          +

          「 Detection ThisAV state,and automatically log in when not logged in 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          Update record

          initial version,Welcome

          + +
          + + + + + +# ThisAV AutoLogin Helper + +This script is used for managing user accounts on ThisAV. It provides functionalities for automatic login and checking if the user is already logged in. + + + +## Features + +- **Account Setup**: Allows users to set their email and password via a popup modal. +- **Login Functionality**: Logs in using the provided email and password, and handles login errors. +- **User Detection**: Checks if the user is logged in. If not, it attempts to log in automatically. + + + +## Installation and Usage + +1. **Install the Script**: + + - Copy the script into the Greasemonkey or Tampermonkey extension. + - Ensure the script is enabled on the webpage where you want it to run. + +2. **Set Up Account**: + + - Click on the Greasemonkey/Tampermonkey icon in your browser toolbar. + - Select the “Set Account” option, enter your email and password, and then click “Save”. + +3. **Automatic Login**: + - The script will automatically check if the user is logged in. If it detects that the user is not logged in, it will attempt to log in using the provided account information. + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + +## Help + +Recommended browsers and script managers: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**If you need to know more about how to install userscripts,[click me](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)View graphic teaching!** + + + +### View all publish scripts + + + + + + +> ### 🔍you may be looking forChatGPTRelated scripts +> +> - [**ChatGPTCode font size reduced**](https://greasyfork.org/scripts/505209): ChatGPT Make code font smaller and automatically wrap +> - [**ChatGPT Chat copy code and export code buttons**](https://greasyfork.org/scripts/509598): exist chatgpt.com Add an animation in the lower right corner of the upper code block“Copy code”button and a for ChatGPT Code block in response adds export button,Prompts the user to save code to a file based on the programming language detected by the code block’s class name。 +> - [**ChatGPT Character counter limit (CCCL)**](https://greasyfork.org/scripts/506166): Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。) +> - [**ChatGPT Collapse self message and max width**](https://greasyfork.org/scripts/504901): foldChatGPTmedium and long“you”information,and set the maximum width + + + + + + +> ### 🔍You may be looking for web related scripts +> +> - [**Web page writing clip version authorization manager**](https://greasyfork.org/scripts/497403): Manage the writing behavior of web pages to the clipboard to prevent unauthorized automatic copying and disable audio and video content preloading and automatic playback. +> - [**LiftCSDNLoginCopy**](https://greasyfork.org/scripts/505207): fuck youCSDNLoginCopy,Copy without logging in +> - [**Beautify web forms with gorgeous gradients**](https://greasyfork.org/scripts/507036): Automatically apply color gradients to all columns of the table to beautify it +> - [**Highlight keywords on web pages**](https://greasyfork.org/scripts/498906): Highlight text on web pages,if it helps you,Can be modified and used at will +> - [**Web page keyword highlighting**](https://greasyfork.org/scripts/498905): Custom keyword highlighting on web pages including dynamically loaded content on scroll +> - [**Small window preview**](https://greasyfork.org/scripts/504880): Open link in popup window when dragging link,and provide a preview before opening,use Edge pre-reading technology。At the same time, add an acrylic effect behind the small window when it is opened.。 +> - [**Remove link underline**](https://greasyfork.org/scripts/498625): Remove link underlines on all sites,and handle new links dynamically +> - [**scroll button**](https://greasyfork.org/scripts/497251): Generate two buttons on the right side of the page for scrolling the page +> - [**Pin to top and bottom buttons**](https://greasyfork.org/scripts/500255): Generate two buttons on all pages,One for smoothing back to the top,One for continuous scrolling to the bottom,Click again to cancel scroll to bottom + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub Submit information display web view**](https://greasyfork.org/scripts/505830): This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。 +> - [**GitHub warehouse quick jump assistant**](https://greasyfork.org/scripts/515205): 🤠 GitHub warehouse quick jump assistant, specially designed to help users quickly access their own warehouses on GitHub. It generates a button at the top of the navigation bar. Click to expand all your repositories and easily jump to your own GitHub repository page without using GitHub’s secondary menu. +> - [**GitHub File list beautifier**](https://greasyfork.org/scripts/508047): GitHub File List Beautifier is a user script,used to enhance GitHub Display effect of files in warehouse。It can add colors to files and folders,and replace the file type icons with small images,Makes the code base easier to browse and manage。Add colors and icons to files by type,Display small images in place of file type icons in repository source tree +> - [**Github List of code languages show all**](https://greasyfork.org/scripts/509889): Expand Github List of languages on the repository,Show each language,Instead of hiding small parts in“other”Down +> - [**GitHub Automatically confirm device authorization**](https://greasyfork.org/scripts/508956): existGitHubThe authorization page automatically enters the authorization code and automatically confirms it.。 +> - [**GitHub folder downloader**](https://greasyfork.org/scripts/505496): Add a download button,Allows easy downloading of specific GitHub folder。 +> - [**Github Copy original file URL with download files**](https://greasyfork.org/scripts/505501): Add button at the end of each file line,to copy the original file URL and download files +> - [**🤠 Github enhanced assistant warehouse display size**](https://greasyfork.org/scripts/502291): 🤠 Warehouse display size: On GitHub’s code search, warehouse search, issue page, user warehouse list and repository page, the size of the warehouse will be displayed next to the warehouse name, allowing users to quickly understand the scale of the warehouse and optimize their selection. Inactive development warning: If a repository has not been updated in the past six months, the system will add a prompt at the top of the repository to remind users that the repository is inactive and display the time of the last update. This helps users determine the activity and maintenance status of the warehouse. Quick jump within the warehouse: When browsing the warehouse, the user can easily view the list of all warehouses of the user, providing an entrance to quickly jump to different warehouses. Users can quickly find and access other projects of interest, improving work efficiency. Usage scenarios: Developers: By displaying the warehouse size and active warnings, you can quickly filter out suitable libraries for development and avoid using projects that are no longer maintained. Project Manager: Through the quick jump function, it is easy to manage and coordinate multiple projects and improve work efficiency. Learners: When learning new technologies, they can more easily find relevant open source projects and quickly check the activity and scale of the projects. 🤠 +> - [**GitHub Sort by date**](https://greasyfork.org/scripts/505218): Change file sorting to descending by date,Conveniently view the latest updated files。 + + + + + + +> ### 🔍you may be looking forGoogleRelated scripts +> +> - [**Google Advanced search assistant**](https://greasyfork.org/scripts/502652): Add an advanced search form to the top of your Google search page +> - [**Block Google search site**](https://greasyfork.org/scripts/500262): existgoogleSearch and block specific sites + + + + + + +> ### 🔍you may be looking forGreasyForkRelated scripts +> +> - [**Greasy forkScript pages are suitable for URL enhancement**](https://greasyfork.org/scripts/497317): The script details page is suitable for URLs that do not jump to search by default. Convert to clickable text link and pop up prompt +> - [**GrreasyFork User-published script data visualization**](https://greasyfork.org/scripts/508968): useChart.jsObtaining and visualizing user script data,And generate a chart on the user’s personal homepage to display the detailed installation status below. +> - [**GreaysFork EnhanceWebHookSync settings**](https://greasyfork.org/scripts/506717): GreaysFork Quickly enter script synchronization information,And add language codes for multiple countries in batches,Instead of clicking the selection boxes one by one and going to the corresponding URL。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): The default format used in the forum isMarkdown,Add format help link and publish new script,Reply time toolbar with quick editing enabled +> - [**Greasyfork Script to display ratings**](https://greasyfork.org/scripts/501119): Add script rating after script name when browsing script list +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): Search using GoogleGreasyForkandSleazyForkupper script +> - [**GreasyFork: Navigation bar enhancement**](https://greasyfork.org/scripts/501880): Add user list on navigation bar,console,Collection etc... +> - [**Greasyfork Glue craftsman**](https://greasyfork.org/scripts/497346): for Greasyfork Provide various usage functions,absolute time,Web widescreen,Script page enhancements,Download extension,Panel repair and a series of operations +> - [**GreasyFork Notification Assistant**](https://greasyfork.org/scripts/506345): When there’s a new reply to your script or to a discussion you’re participating in,The script will display the latest discussion content in a modal window on the web page。 +> - [**Script Finder GreasyFork Script Lookup**](https://greasyfork.org/scripts/498904): Script Finder Find on any website that applies to that website GreasyFork Script。 + + + + + + +> ### 🔍You may be looking for adult scripts +> +> - [**MissAV Automatic login**](https://greasyfork.org/scripts/505325): Detection MissAV state,and automatically log in when not logged in +> - [**MissAvBatch backup of favorite videos**](https://greasyfork.org/scripts/497682): from currentmissavPage to obtain image files and video information,And after merging the results, the generated web page file is provided for download. +> - [**ThisAV Automatic login**](https://greasyfork.org/scripts/506528): Detection ThisAV state,and automatically log in when not logged in +> - [**JableTV Automatic login**](https://greasyfork.org/scripts/506730): Detection JableTV state,and automatically log in when not logged in + + + + + + +> ### 🔍You may be looking for automatic translation +> +> - [**foreign language terminator**](https://greasyfork.org/scripts/504890): Recognize non-Chinese characters,If the length is greater than5And the translated text does not contain Chinese,Then translate and replace the original text to Chinese +> - [**web page translation——Automatically translated to Chinese**](https://greasyfork.org/scripts/505208): Give the lower right corner of each non-Chinese web page(Can be adjusted to the lower left corner)add agoogleTranslate icon,This version is a Chinese translation version,Only translate foreign languages ​​into Chinese,Add automatic translation + + + + + + +
          + + diff --git a/Script details/thisav-auto-login-helper/thisav-auto-login-helper.user.js b/thisav-auto-login-helper/thisav-auto-login-helper.user.js similarity index 99% rename from Script details/thisav-auto-login-helper/thisav-auto-login-helper.user.js rename to thisav-auto-login-helper/thisav-auto-login-helper.user.js index d4c68a96c..6034067be 100644 --- a/Script details/thisav-auto-login-helper/thisav-auto-login-helper.user.js +++ b/thisav-auto-login-helper/thisav-auto-login-helper.user.js @@ -76,7 +76,7 @@ // @description:fr-CA Détection ThisAV État,et connectez-vous automatiquement lorsque vous n’êtes pas connecté // @description Detection ThisAV state,and automatically log in when not logged in // @namespace https://github.com/ChinaGodMan/UserScripts -// @author 人民的勤务员 +// @author 人民的勤务员 // @match https://thisav.com/* // @grant GM_registerMenuCommand // @grant GM_setValue @@ -97,31 +97,31 @@ const translate = (function () { Accountnull: 'Error: UserEmail or UserPassword is empty.', loginSuccess: 'Login successful, refreshing the page.', Networkfailed: 'Status code error.', - Loginfailed: 'Login failed, incorrect email or password. Check console for error details.', + Loginfailed: 'Login failed, incorrect email or password. Check console for error details.' }, 'zh-CN': { Accountnull: '邮箱或密码为空', loginSuccess: '登录成功,即将刷新页面。', Networkfailed: '状态码错误', - Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。', + Loginfailed: '登录失败,邮箱或密码错误,可以在控制台查看错误信息。' }, 'zh-TW': { Accountnull: '郵箱或密碼為空', loginSuccess: '登錄成功,即將刷新頁面。', Networkfailed: '狀態碼錯誤', - Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。', + Loginfailed: '登錄失敗,郵箱或密碼錯誤,可以在控制台查看錯誤信息。' }, 'ja': { Accountnull: 'エラー:メールアドレスまたはパスワードが空です。', loginSuccess: 'ログイン成功、ページを更新します。', Networkfailed: 'ステータスコードエラー', - Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。', + Loginfailed: 'ログインに失敗しました。メールアドレスまたはパスワードが間違っています。エラーの詳細はコンソールで確認できます。' }, 'vi': { Accountnull: 'Lỗi: Email hoặc mật khẩu trống.', loginSuccess: 'Đăng nhập thành công, đang làm mới trang.', Networkfailed: 'Lỗi mã trạng thái.', - Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.', + Loginfailed: 'Đăng nhập không thành công, email hoặc mật khẩu không chính xác. Xem chi tiết lỗi trên bảng điều khiển.' } } @@ -132,10 +132,10 @@ const translate = (function () { }()); (function () { 'use strict' - let UserEmail = GM_getValue("UserEmail", "") - let UserPassword = GM_getValue("UserPassword", "") + let UserEmail = GM_getValue('UserEmail', '') + let UserPassword = GM_getValue('UserPassword', '') var style = document.createElement('style') - GM_registerMenuCommand("Set Account", showuserInfoModal) + GM_registerMenuCommand('Set Account', showuserInfoModal) function showuserInfoModal() { let modalHtml = `
          @@ -156,17 +156,17 @@ const translate = (function () { let modalDiv = document.createElement('div') modalDiv.innerHTML = modalHtml document.body.appendChild(modalDiv) - document.getElementById("saveUserInfo").addEventListener("click", function () { - UserEmail = document.getElementById("UserEmail").value - UserPassword = document.getElementById("UserPassword").value - GM_setValue("UserEmail", UserEmail) - GM_setValue("UserPassword", UserPassword) + document.getElementById('saveUserInfo').addEventListener('click', function () { + UserEmail = document.getElementById('UserEmail').value + UserPassword = document.getElementById('UserPassword').value + GM_setValue('UserEmail', UserEmail) + GM_setValue('UserPassword', UserPassword) closeUserModal() }) - document.getElementById("closeUserModal").addEventListener("click", closeUserModal) + document.getElementById('closeUserModal').addEventListener('click', closeUserModal) } function closeUserModal() { - let modal = document.getElementById("userInfoModal") + let modal = document.getElementById('userInfoModal') if (modal) { modal.remove() } @@ -179,13 +179,13 @@ const translate = (function () { fetch('https://thisav.com/cn/api/login', { method: 'POST', headers: { - 'Content-Type': 'application/json', + 'Content-Type': 'application/json' }, body: JSON.stringify({ email: email, password: password, - remember: true, - }), + remember: true + }) }) .then(response => { if (!response.ok) { @@ -193,7 +193,7 @@ const translate = (function () { console.error('Login error:', { status: response.status, statusText: response.statusText, - responseText: text, + responseText: text }) Toast('Login failed: ' + text, 2000, '#FF0000', '#ffffff', 'top') throw new Error(translate('Networkfailed')) @@ -206,7 +206,7 @@ const translate = (function () { console.error(translate('Loginfailed'), { status: response.status, statusText: response.statusText, - responseText: text, + responseText: text }) Toast(translate('Loginfailed'), 2000, '#FF0000', '#ffffff', 'top') throw new Error(translate('Loginfailed')) diff --git a/translate-only-chinese/README.md b/translate-only-chinese/README.md new file mode 100644 index 000000000..04cdbf7d6 --- /dev/null +++ b/translate-only-chinese/README.md @@ -0,0 +1,240 @@ + + +
          +
          + + + + + 简体中文 +
          + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
          +
          + + + +
          + + + + + +
          +

          网页翻译——自动翻译为中文

          +

          「 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 」

          + Views + +

          Download:Github | ⭐Greasy + Fork

          + +
          + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + +

          网页翻译——翻译为中文修改脚本为自动翻译.无需点击或者按键

          +

          特别说明

          +
            +
          • +

            已适配 PC + 端,移动端

            +
          • +
          • +

            该版本主要只针对外语翻译为中文,如果你需要多种语言的互相翻译,请直接下载原脚本:网页翻译

            +
          • +
          +

          1 功能介绍

          +
            +
          • 给每个非中文的网页在左下角添加一个 google 翻译图标,在右下角添加显示原网页按钮 +
          • +
          • 快捷键:点击油猴或者暴力猴扩展的图标,脚本下面有【设置快捷键】,点击进行设置
          • +
          +

          2 插件实现简介

          +
            +
          • 直接调用 Google 的翻译接口对非中文网页进行翻译.
          • +
          +

          3 使用注意

          +
            +
          • 由于脚本调用了 Google 的翻译接口,所以可能需要科学上网手段(目前暂时不需要,可能后面谷歌的被墙了就要了)
          • +
          • 由于一些网站使用了 CSP(如:github),所以可能有些网站翻译不了。有些网站可以使用以下方法解决,使用扩展,先去掉 CSP,就能够解决这类网站不能翻译的问题.下列扩展亲测可用: +
          • +
          + + + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 + + + + + + +> ### 🔍你可能在找ChatGPT相关脚本 +> +> - [**ChatGPT代码字体缩小.**](https://greasyfork.org/scripts/505209): ChatGPT 让代码字体变小 并且自动折行 +> - [**ChatGPT 聊天复制代码和导出代码按钮**](https://greasyfork.org/scripts/509598): 在 chatgpt.com 上代码块的右下角添加一个带有动画的“复制代码”按钮和一个为 ChatGPT 响应中的代码块添加导出按钮,提示用户根据代码块的类名检测到的编程语言将代码保存为文件。 +> - [**ChatGPT 字符计数器限制**](https://greasyfork.org/scripts/506166): 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.) +> - [**ChatGPT 折叠自己消息和最大宽度**](https://greasyfork.org/scripts/504901): 折叠ChatGPT中较长的“你”消息,并设置最大宽度 + + + + + + +> ### 🔍你可能在找网页相关脚本 +> +> - [**网页写入剪辑版授权管理器**](https://greasyfork.org/scripts/497403): 管理网页对剪贴板的写入行为防止未经授权的自动复制和禁用音视频内容预载及自动播放。 +> - [**解除CSDN登录复制**](https://greasyfork.org/scripts/505207): 去你妈的CSDN登录复制,无需登录即可复制 +> - [**绚丽渐变美化网页表格**](https://greasyfork.org/scripts/507036): 自动为表格所有列应用颜色渐变来美化 +> - [**网页高亮关键字**](https://greasyfork.org/scripts/498906): 对网页上的文字进行高亮显示,如果对你有帮助,可以随意修改使用 +> - [**网页关键词高亮显示**](https://greasyfork.org/scripts/498905): 在网页上自定义关键词突出显示包括滚动时动态加载的内容 +> - [**小窗预览**](https://greasyfork.org/scripts/504880): 拖拽链接时在弹出窗口中打开链接,并在打开前提供预览,使用 Edge 的预读技术。同时在小窗口打开时在背后添加亚克力效果,可设置为长按触发.自动记录每个站点的小窗口大小. +> - [**移除链接下划线**](https://greasyfork.org/scripts/498625): 移除所有网站上的链接下划线,并动态处理新链接 +> - [**上下滚动按钮**](https://greasyfork.org/scripts/497251): 在页面右侧生成两个按钮用于滚动页面 +> - [**置顶和置底按钮**](https://greasyfork.org/scripts/500255): 在所有页面生成两个按钮,一个用于顺滑回到顶部,一个用于持续滚动到底部,再次点击取消滚动到底部 + + + + + + +> ### 🔍你可能在找GitHub相关脚本 +> +> - [**GitHub 提交信息显示网页视图**](https://greasyfork.org/scripts/505830): 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。 +> - [**GitHub 仓库快速跳转助手**](https://greasyfork.org/scripts/515205): 🤠 GitHub 仓库快速跳转助手,专为帮助用户快速访问自己在 GitHub 上的仓库而设计 。它在导航栏顶部生成一个按钮,点击展开自己的所有仓库,轻松跳转到自己的 GitHub 仓库页面,而无需使用 GitHub 的二级菜单 +> - [**GitHub 文件列表美化器**](https://greasyfork.org/scripts/508047): GitHub 文件列表美化器是一个用户脚本,用于增强 GitHub 仓库中的文件显示效果。它可以为文件和文件夹添加颜色,并将文件类型图标替换为小图像,使得代码库更加易于浏览和管理。按类型为文件添加颜色和图标,在存储库源树中显示小图像以代替文件类型图标 +> - [**Github 代码语言列表显示全部**](https://greasyfork.org/scripts/509889): 扩展 Github 存储库上的语言列表,显示每种语言,而不是将小部分隐藏在“其他”下 +> - [**GitHub 自动确认设备授权**](https://greasyfork.org/scripts/508956): 在GitHub授权页面自动输入授权码与自动确认。 +> - [**GitHub 文件夹下载器**](https://greasyfork.org/scripts/505496): 添加一个下载按钮,允许轻松下载特定的 GitHub 文件夹。 +> - [**Github 复制原始文件 URL 与下载文件**](https://greasyfork.org/scripts/505501): 在每个文件行的末尾添加按钮,以复制原始文件 URL 和下载文件 +> - [**🤠 Github 增强小助手 仓库显示大小**](https://greasyfork.org/scripts/502291): 🤠 仓库显示大小:在 GitHub 的代码搜索、仓库搜索、议题页面、用户仓库列表和存储库页面上,仓库名称旁边会显示该仓库的大小,方便用户快速了解仓库的规模,优化选择。不活跃开发警告:如果某个仓库在过去六个月内没有更新,系统将在仓库的顶部添加提示,提醒用户该仓库不活跃,并显示最后一次更新的时间。这有助于用户判断仓库的活跃程度和维护状况。仓库内快捷跳转:在浏览仓库时,用户可以方便地查看该用户的所有仓库列表,提供一个快速跳转到不同仓库的入口。用户可以快速找到和访问感兴趣的其他项目,提高工作效率。使用场景:开发者:可以通过显示仓库大小和活跃警告,快速筛选出合适的库进行开发,避免使用不再维护的项目。项目管理者:通过快速跳转功能,便于管理和协调多个项目,提高工作效率。学习者:在学习新技术时,可以更方便地找到相关的开源项目,快速查看项目的活跃程度和规模。🤠 +> - [**GitHub 按日期排序**](https://greasyfork.org/scripts/505218): 将文件排序方式改为日期降序,方便查看最新更新的文件。 + + + + + + +> ### 🔍你可能在找Google相关脚本 +> +> - [**Google 高级搜索助手**](https://greasyfork.org/scripts/502652): 在谷歌搜索页面顶部添加一个高级搜索表单 +> - [**屏蔽谷歌搜索站点**](https://greasyfork.org/scripts/500262): 在google搜索屏蔽指定站点 + + + + + + +> ### 🔍你可能在找GreasyFork相关脚本 +> +> - [**Greasy fork脚本页面适用于网址增强**](https://greasyfork.org/scripts/497317): 脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并弹出提示 +> - [**GrreasyFork 用户发布的脚本数据可视化**](https://greasyfork.org/scripts/508968): 使用Chart.js获取和可视化获取用户脚本数据,并在用户个人主页生成一个图表在下方显示详细安装情况 +> - [**GreaysFork 增强WebHook同步设置**](https://greasyfork.org/scripts/506717): GreaysFork 快速输入脚本同步信息,并批量增加多个国家的语言代码,而不用一个个地点击选择框再去对应的网址。 +> - [**GreasyFork markdown**](https://greasyfork.org/scripts/505164): 在论坛默认使用格式为Markdown,添加格式帮助链接及在发布新脚本,回复时间启用快速编辑的工具栏 +> - [**Greasyfork 脚本显示评分**](https://greasyfork.org/scripts/501119): 在浏览脚本列表时在脚本名称后面添加脚本评分 +> - [**GreasyFork Search**](https://greasyfork.org/scripts/505215): 使用谷歌搜索GreasyFork和SleazyFork上的脚本 +> - [**GreasyFork: 导航栏增强**](https://greasyfork.org/scripts/501880): 在导航栏上添加用户列表,控制台,收藏等.. +> - [**Greasyfork 糊裱匠**](https://greasyfork.org/scripts/497346): 为 Greasyfork 提供各种使用功能,绝对时间,网页宽屏,脚本页增强,下载拓展,面板修复等一系列操作 +> - [**GreasyFork 通知助手**](https://greasyfork.org/scripts/506345): 当你的脚本或你参与的讨论有新回复时,脚本会在网页上以模态窗口显示最新的讨论内容。 +> - [**Script Finder 油猴脚本查找**](https://greasyfork.org/scripts/498904): Script Finder 在任何网站上找到适用于该网站的 油猴脚本。 + + + + + + +> ### 🔍你可能在找成人脚本 +> +> - [**MissAV 自动登录**](https://greasyfork.org/scripts/505325): 检测 MissAV 状态,并且在未登录时自动登录 +> - [**MissAv批量备份收藏视频**](https://greasyfork.org/scripts/497682): 从当前missav页面获取图片文件和视频信息,并合并结果后提供下载生成的网页文件 +> - [**ThisAV 自动登录**](https://greasyfork.org/scripts/506528): 检测 ThisAV 状态,并且在未登录时自动登录 +> - [**JableTV 自动登录**](https://greasyfork.org/scripts/506730): 检测 JableTV 状态,并且在未登录时自动登录 + + + + + + +> ### 🔍你可能在找自动翻译 +> +> - [**外语终结者**](https://greasyfork.org/scripts/504890): 识别非中文字符,如果长度大于5且翻译文本中不含中文,则翻译并且替换原始文本到中文 +> - [**网页翻译——自动翻译为中文**](https://greasyfork.org/scripts/505208): 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 + + + + + + +
          + + diff --git a/translate-only-chinese.user.js b/translate-only-chinese/translate-only-chinese.user.js similarity index 93% rename from translate-only-chinese.user.js rename to translate-only-chinese/translate-only-chinese.user.js index 711e898a7..225dfe184 100644 --- a/translate-only-chinese.user.js +++ b/translate-only-chinese/translate-only-chinese.user.js @@ -1,42 +1,44 @@ // ==UserScript== -// @name 网页翻译——自动翻译为中文 -// @author Kaiter-Plus & 人民的勤务员 -// @namespace https://github.com/ChinaGodMan/UserScripts -// @description 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 -// @version 0.31.0.23 -// @license MIT -// @include *://* -// @exclude /^(http|https).*((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/ -// @exclude /.*duyaoss\.com/ -// @exclude /.*lanzous\.com/ -// @exclude /.*w3school.*cn/ -// @exclude /.*iqiyi\.com/ -// @exclude /.*baidu.*/ -// @exclude /.*cnblogs\.com/ -// @exclude /.*csdn\.net/ -// @exclude /.*zhku\.edu\.cn/ -// @exclude /.*zhihuishu\.com/ -// @exclude /.*aliyuncs\.com/ -// @exclude /.*chaoxing\.com/ -// @exclude /.*youku\.com/ -// @exclude /.*examcoo\.com/ -// @exclude /.*mooc\.com/ -// @exclude /.*bilibili\.com/ -// @exclude /.*qq\.com/ -// @exclude /.*yy\.com/ -// @exclude /.*huya\.com/ -// @exclude /localhost/ -// @exclude /.*acfun\.cn/ -// @exclude /.*eleme\.cn/ -// @exclude /.*douyin\.com/ -// @icon data:image/png;base64,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 -// @noframes -// @grant GM_addStyle -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_notification -// @grant GM_registerMenuCommand -// @grant GM_unregisterMenuCommand +// @name 网页翻译——自动翻译为中文 +// @author Kaiter-Plus & 人民的勤务员 +// @namespace https://github.com/ChinaGodMan/UserScripts +// @description 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 +// @name:zh-CN 网页翻译——自动翻译为中文 +// @description:zh-CN 给每个非中文的网页右下角(可以调整到左下角)添加一个google翻译图标,该版本为中文翻译版本,只把外语翻译为中文,添加自动翻译 +// @version 0.31.0.23 +// @license MIT +// @include *://* +// @exclude /^(http|https).*((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/ +// @exclude /.*duyaoss\.com/ +// @exclude /.*lanzous\.com/ +// @exclude /.*w3school.*cn/ +// @exclude /.*iqiyi\.com/ +// @exclude /.*baidu.*/ +// @exclude /.*cnblogs\.com/ +// @exclude /.*csdn\.net/ +// @exclude /.*zhku\.edu\.cn/ +// @exclude /.*zhihuishu\.com/ +// @exclude /.*aliyuncs\.com/ +// @exclude /.*chaoxing\.com/ +// @exclude /.*youku\.com/ +// @exclude /.*examcoo\.com/ +// @exclude /.*mooc\.com/ +// @exclude /.*bilibili\.com/ +// @exclude /.*qq\.com/ +// @exclude /.*yy\.com/ +// @exclude /.*huya\.com/ +// @exclude /localhost/ +// @exclude /.*acfun\.cn/ +// @exclude /.*eleme\.cn/ +// @exclude /.*douyin\.com/ +// @icon data:image/png;base64,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 +// @noframes +// @grant GM_addStyle +// @grant GM_setValue +// @grant GM_getValue +// @grant GM_notification +// @grant GM_registerMenuCommand +// @grant GM_unregisterMenuCommand // ==/UserScript== ; (function () { @@ -250,7 +252,7 @@ // 设置按钮 function setting() { - document.getElementById(`i-hotkey`).value = '松开手指即可设置完成!' + document.getElementById('i-hotkey').value = '松开手指即可设置完成!' document.removeEventListener('keydown', clickHotkey) document.addEventListener('keyup', setHotkey) } @@ -265,7 +267,7 @@ hotkey.push(e.key) // 保存键值 GM_setValue('hotkey', hotkey) - document.getElementById(`i-hotkey`).value = `${hotkey.join(' + ')}` + document.getElementById('i-hotkey').value = `${hotkey.join(' + ')}` // 设置完成移除事件 document.removeEventListener('keyup', setHotkey) } @@ -335,7 +337,7 @@ title.className = 'hotkey-settings__title' title.textContent = '快捷键:' const input = document.createElement('input') - input.id = `i-hotkey` + input.id = 'i-hotkey' input.disabled = true input.className = 'hotkey-input' if (hotkey[0]) { @@ -345,7 +347,7 @@ } input.setAttribute('type', 'text') const button = document.createElement('button') - button.id = `b--hotkey` + button.id = 'b--hotkey' button.className = 'hotkey-button' button.textContent = '设置' button.addEventListener('click', e => setting()) diff --git a/utils/ci_commit_with_signature.sh b/utils/ci_commit_with_signature.sh deleted file mode 100644 index 654ec00f5..000000000 --- a/utils/ci_commit_with_signature.sh +++ /dev/null @@ -1,172 +0,0 @@ -#!/bin/bash - -while getopts ":T:R:B:P:F:D:h:b:" opt; do - case $opt in - T) - # 通过 GitHub GraphQL API 进行身份验证的 TOKEN - # TOKEN for authentication via the GitHub GraphQL API - TOKEN=$OPTARG - ;; - R) - # GitHub GraphQL API 请求带有所有者的远程仓库名称 - # Remote repository name with owner requested by the GitHub GraphQL API - repoNwo=$OPTARG - ;; - B) - # GitHub GraphQL API 请求的远程仓库目标分支名称 - # The name of the target branch of the remote repository requested by the GitHub GraphQL API - branch=$OPTARG - ;; - P) - # 远程仓库目标分支上最后一次提交的 SHA。 - # 它也是即将创建的提交的父提交的 SHA。 - # The SHA of the last commit on the target branch of the remote repository. - # It is also the SHA of the parent commit of the commit about to be created. - parentSHA=$OPTARG - ;; - F) - # 通过 GitHub GraphQL API 提交, 新增或修改的文件的路径(相对于存储库根)的数组 - # Array of paths (relative to the repository root) to new or modified files for commits via the GitHub GraphQL API - IFS=', ' read -ra changed_files <<< "${OPTARG:-}" - # 使用逗号和或空格作为分隔符,将参数分割为数组,默认值为空字符串 - # Split parameters into arrays using commas and or spaces as separators, defaults to empty string - ;; - D) - # 通过 GitHub GraphQL API 提交, 删除的文件的路径(相对于存储库根)的数组 - # Array of paths (relative to the repository root) to deleted files for commits via the GitHub GraphQL API - IFS=', ' read -ra deleted_files <<< "${OPTARG:-}" - ;; - h) - # 通过 GitHub GraphQL API 提交的提交消息标题行 - # Commit message head line committed via GitHub GraphQL API - message_headline=$OPTARG - ;; - b) - # 通过 GitHub GraphQL API 提交的提交消息正文 - # Commit message body committed via GitHub GraphQL API - message_body=$OPTARG - ;; - \?) - echo "无效的选项: -$OPTARG" >&2 - exit 1 - ;; - esac -done - -if [[ -z $TOKEN ]]; then - TOKEN=$GITHUB_TOKEN -fi - -if [[ -z $GITHUB_URL ]]; then - GITHUB_URL="https://api.github.com" -fi - -function set_dco_signature { - if [[ $TOKEN == ghp_* ]]; then - # https://github.blog/2021-04-05-behind-githubs-new-authentication-token-formats/ - # 'ghp_'开头的是 GitHub 个人访问令牌 - # What starts with 'ghp_' is the GitHub personal access token - - response=$(curl -s -H "Authorization: token $TOKEN" "$GITHUB_URL/user") - elif [[ $APP_SLUG ]]; then - CommitBot=$APP_SLUG - else - CommitBot="github-actions" - fi - - if [[ $CommitBot ]]; then - response=$(curl -s -H "Authorization: token $TOKEN" "$GITHUB_URL/users/$CommitBot\[bot\]") - fi - - CommitBot=$(echo "$response" | jq -r '.login') - id=$(echo "$response" | jq -r '.id') - echo "Signed-off-by: $CommitBot <$id+$CommitBot@users.noreply.github.com>" -} - -message_body="${message_body:+$message_body\n}$(set_dco_signature)" - -# 处理文件修改并构建 fileChanges 部分中 additions 的 JSON 字符串 -# Process the file changes and build the JSON string of `additions` in the `fileChanges` section -changed_files_json="" -for file_path in "${changed_files[@]}"; do - changed_files_json+="{ - \"path\": \"$file_path\", - \"contents\": \"$(base64 < "$file_path")\" - }, - " -done -changed_files_json="${changed_files_json%, - }" # 移除最后一个逗号及换行符和空格 - # Remove last comma and line breaks and spaces - -# 处理文件删除并构建 fileChanges 部分中 deletions 的 JSON 字符串 -# Process the file deletions and build the JSON string of `deletions` in the `fileChanges` section -deleted_files_json="" -for file_path in "${deleted_files[@]}"; do - deleted_files_json+="{ - \"path\": \"$file_path\", - }, - " -done -deleted_files_json="${deleted_files_json%, - }" # 移除最后一个逗号及换行符和空格 - # Remove last comma and line breaks and spaces - -# 构建 GraphQL 请求的 JSON 字符串 -# Construct JSON string for GraphQL request -graphql_request='{ - "query": "mutation ($input: CreateCommitOnBranchInput!) { - createCommitOnBranch(input: $input) { - commit { - url - } - } - }", - "variables": { - "input": { - "branch": { - "repositoryNameWithOwner": "'"$repoNwo"'", - "branchName": "'"$branch"'" - }, - "message": { - "headline": "'"$message_headline"'", - "body": "'"$message_body"'" - }, - "fileChanges": { - "additions": [ - '"$changed_files_json"' - ], - "deletions": [ - '"$deleted_files_json"' - ] - }, - "expectedHeadOid": "'"$parentSHA"'" - } - } -}' - -# 将请求数据写入 request.json 文件 -# Write the request data to the `request.json` file -echo "$graphql_request" > request.json - -# 发送 GraphQL 请求并解析结果 -# Send GraphQL requests and parse the results -if [[ -z $GITHUB_GRAPHQL_URL ]]; then - GITHUB_GRAPHQL_URL="https://api.github.com/graphql" -fi - -response=$(curl "$GITHUB_GRAPHQL_URL" --silent \ - --write-out '%{stderr}HTTP status: %{response_code}\n\n' \ - -H "Authorization: bearer $TOKEN" \ - --data @request.json) - -# Print the results -url=$(echo "$response" | jq -r '.data.createCommitOnBranch.commit.url') -if [ "$url" != "null" ]; then - echo "请求成功,URL为: $url" - exit 0 -else - error=$(echo "$response" | jq -r '.errors[0].message') - echo "请求失败,错误信息为: $error" - exit 1 -fi diff --git a/pythonscr/cleanup_actions.py b/utils/cleanup_actions.py similarity index 93% rename from pythonscr/cleanup_actions.py rename to utils/cleanup_actions.py index 74633d541..ad3d2bb51 100644 --- a/pythonscr/cleanup_actions.py +++ b/utils/cleanup_actions.py @@ -1,19 +1,14 @@ import os import requests - # 从环境变量中获取 GitHub 个人访问令牌和仓库信息 GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") REPO_OWNER = os.getenv("REPO_OWNER") REPO_NAME = os.getenv("REPO_NAME") - # GitHub API 基础 URL BASE_URL = f"https://api.github.com/repos/{REPO_OWNER}/{REPO_NAME}/actions/runs" - # 添加 Authorization 头部 -headers = { - "Authorization": f"token {GITHUB_TOKEN}", - "Accept": "application/vnd.github.v3+json" -} +headers = {"Authorization": f"token {GITHUB_TOKEN}", "Accept": "application/vnd.github.v3+json"} + # 获取所有 Actions 运行记录 def get_all_workflow_runs(): @@ -31,6 +26,7 @@ def get_all_workflow_runs(): page += 1 return runs + # 删除指定的运行记录 def delete_workflow_run(run_id): delete_url = f"{BASE_URL}/{run_id}" @@ -40,6 +36,7 @@ def delete_workflow_run(run_id): else: print(f"Failed to delete run {run_id}: {response.status_code}, {response.text}") + # 主函数,获取并删除所有运行记录 def main(): runs = get_all_workflow_runs() @@ -50,5 +47,6 @@ def main(): for run in runs: delete_workflow_run(run["id"]) + if __name__ == "__main__": main() diff --git a/pythonscr/content_snippet.py b/utils/content_snippet.py similarity index 93% rename from pythonscr/content_snippet.py rename to utils/content_snippet.py index 8157863d3..c9b1f0b70 100644 --- a/pythonscr/content_snippet.py +++ b/utils/content_snippet.py @@ -16,12 +16,12 @@ def get_file_description(file_path, start_tag, end_tag): start_index = content.find(start_tag) end_index = content.find(end_tag, start_index) if start_index == -1 or end_index == -1: - return None + return "1" content_between_tags = content[start_index + len(start_tag):end_index].strip() return content_between_tags except FileNotFoundError: print(f"文件未找到: {file_path}") - return None + return "1" except Exception as e: print(f"发生错误: {e}") - return None + return "1" diff --git a/pythonscr/copy_js_files.py b/utils/copy_js_files.py similarity index 58% rename from pythonscr/copy_js_files.py rename to utils/copy_js_files.py index c16cea7ad..4ea7c7a57 100644 --- a/pythonscr/copy_js_files.py +++ b/utils/copy_js_files.py @@ -1,10 +1,8 @@ import os -import shutil import subprocess import json target_dir = '.' -result = subprocess.run(['git', 'diff', '--name-only', - 'HEAD^', 'HEAD'], capture_output=True, text=True) +result = subprocess.run(['git', 'diff', '--name-only', 'HEAD^', 'HEAD'], capture_output=True, text=True) changed_files = result.stdout.splitlines() with open('docs/ScriptsPath.json', 'r', encoding='utf-8') as json_file: scripts_data = json.load(json_file) @@ -13,15 +11,11 @@ file_path = os.path.join(os.getcwd(), file) if os.path.exists(file_path): file_name = os.path.basename(file) - found = any(script['path'] == - file_name for script in scripts_data['scripts']) + found = any(script['path'] == file_name for script in scripts_data['scripts']) if not found: print(f'文件 {file_name} 在 JSON 中找不到,跳过操作。') continue target_path = os.path.join(target_dir, file_name) - subprocess.run( - ['node', 'utils/single-format-monkey-meta.js', file_path], check=True) - shutil.copy(file_path, target_path) - print(f'复制 {file_path} 到 {target_path}') + subprocess.run(['node', 'utils/single-format-monkey-meta.js', file_path], check=True) else: print(f'文件 {file} 不存在,跳过') diff --git a/utils/docs/HELP.md b/utils/docs/HELP.md new file mode 100644 index 000000000..1bd68526b --- /dev/null +++ b/utils/docs/HELP.md @@ -0,0 +1,17 @@ + + +## 使用帮助 + +推荐浏览器和脚本管理器: + +- **Greasemonkey + Waterfox** +- **Tampermonkey/Violentmonkey + Firefox** +- **Tampermonkey/Violentmonkey + Chrome** +- **Userscripts + ios Safari** +- **Violentmonkey/KiWiBrowser + Android** + +**如果你需要了解更多关于如何安装用户脚本,[点击我](https://github.com/ChinaGodMan/UserScripts/blob/main/docs/help/README.md)查看图文教学!** + + + +### 查看所有发布脚本 diff --git a/pythonscr/update-shields/SHIELDS.md b/utils/docs/SHIELDS.md similarity index 95% rename from pythonscr/update-shields/SHIELDS.md rename to utils/docs/SHIELDS.md index 8b600ca3c..0df54ca4e 100644 --- a/pythonscr/update-shields/SHIELDS.md +++ b/utils/docs/SHIELDS.md @@ -15,7 +15,7 @@
          Telegram TikTok Instagram -Gmail +Gmail
    diff --git a/utils/docs/translate_readme.json b/utils/docs/translate_readme.json new file mode 100644 index 000000000..abe5d0e82 --- /dev/null +++ b/utils/docs/translate_readme.json @@ -0,0 +1,67 @@ +{ + "translatelist": [ + { + "foldpath": "", + "translatefile": "docs/README.md", + "translatedto": ["en", "ko", "vi", "ja", "zh-TW"], + "translated": true + }, + { + "foldpath": "Script details/GreasyFork User Control Panel Button/", + "translatefile": "README.md", + "translatedto": ["zh-TW"], + "translated": false + }, + { + "foldpath": "Script details/移除链接下划线/", + "translatefile": "README.md", + "translatedto": [ + "fr", + "es", + "de", + "it", + "bh", + "ko", + "th", + "sr", + "sv", + "vi", + "ru", + "de", + "id", + "hu", + "he", + "eo" + ], + "translated": false + }, + { + "foldpath": "Script details/糊裱匠/", + "translatefile": "README_zh-CN.md", + "translatedto": [ + "fr", + "vi", + "it", + "bh", + "ko", + "th", + "sr", + "sv", + "vi", + "ru", + "de", + "id", + "hu", + "he", + "eo" + ], + "translated": false + }, + { + "foldpath": "Script details/ChatGPT+/", + "translatefile": "README.md", + "translatedto": ["vi"], + "translated": false + } + ] +} diff --git a/utils/format-monkey-meta.js b/utils/format-monkey-meta.js deleted file mode 100644 index 4637c6e97..000000000 --- a/utils/format-monkey-meta.js +++ /dev/null @@ -1,56 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -// 格式化单个文件的 Tampermonkey 元数据头部 -function formatMetadata(filePath) { - const fileContent = fs.readFileSync(filePath, 'utf-8'); - const lines = fileContent.split('\n'); - - // 首先找到最长的标签长度 - let maxLabelLength = 0; - const metadataLines = lines.filter(line => line.startsWith('// @')); - - metadataLines.forEach(line => { - const parts = line.split(/\s+/); - const label = parts[1].replace(/@/g, ''); // 获取标签,去掉 @ - maxLabelLength = Math.max(maxLabelLength, label.length); - }); - - // 然后根据最长标签长度格式化 - const formattedLines = lines.map(line => { - if (line.startsWith('// @')) { - const parts = line.split(/\s+/); - const label = parts[1].replace(/@/g, ''); // 获取标签,去掉 @ - const value = parts.slice(2).join(' '); - return `// @${label.padEnd(maxLabelLength)} ${value}`; // 使用最长标签长度进行对齐 - } - return line; - }); - - fs.writeFileSync(filePath, formattedLines.join('\n'), 'utf-8'); -} - -// 递归查找所有的 JavaScript 文件 -function findJsFiles(dirPath) { - const files = fs.readdirSync(dirPath); - - files.forEach(file => { - const fullPath = path.join(dirPath, file); - const stat = fs.lstatSync(fullPath); - - if (stat.isDirectory()) { - // 如果是目录,递归处理子目录 - findJsFiles(fullPath); - } else if (stat.isFile() && fullPath.endsWith('.js')) { - // 如果是 .js 文件,调用格式化函数 - console.log(`Formatting: ${fullPath}`); - formatMetadata(fullPath); - } - }); -} - -// 仓库的根目录(可以根据实际情况调整) -const repoRoot = path.resolve(__dirname, '..'); // 假设此脚本在项目根目录的子文件夹中 - -// 开始遍历仓库中的所有 .js 文件 -findJsFiles(repoRoot); diff --git a/pythonscr/merge-change-history/main.py b/utils/merge_change_history.py similarity index 57% rename from pythonscr/merge-change-history/main.py rename to utils/merge_change_history.py index ba9b28b03..a27334562 100644 --- a/pythonscr/merge-change-history/main.py +++ b/utils/merge_change_history.py @@ -1,13 +1,16 @@ +from content_snippet import get_file_description +from writer import process_file +from searcher import search_in_file import os +import re import json -import markdown +import markdown import sys + sys.dont_write_bytecode = True -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from writer import process_markdown -from writer import process_file -from content_snippet import get_file_description json_file_path = 'docs/ScriptsPath.json' + + def md_to_html(md_file): if not os.path.isfile(md_file): print(f"文件 {md_file} 不存在。") @@ -16,49 +19,64 @@ def md_to_html(md_file): md_text = f.read() html_text = markdown.markdown(md_text, extensions=['tables']) return html_text + + # 读取 JSON 文件 with open(json_file_path, 'r', encoding='utf-8') as json_file: data = json.load(json_file) -# 遍历 JSON 数据中的每个脚本信息 -for script in data['scripts']: - backuppath = script.get('backuppath', '') - name = script.get('name', '') - description = script.get('description', '') - greasyfork_id = script.get('GreasyFork', '') - filepath = script.get('path', '') - readme_path = os.path.join(backuppath, "Change history", "README.md") - readme_html = '' - if os.path.isfile(readme_path): - readme_html = "
    更新记录" + \ - md_to_html(readme_path)+"
    " - img_path = os.path.join(backuppath, "preview", "statshistory.png") - img_tag = '' - isAddImage = True # 添加历史安装图片 - if isAddImage: - img_tag = f'' + + +# 生产HTML内容 +def generate_html_content(nation, path, greasyfork_id, filepath, backuppath, readme_html): + results = search_in_file(path, nation) + name = "\n".join(results.name_matches) + description = "\n".join(results.description_matches) + img_tag = f'' html_content = f"""

    {name}

    「 {description} 」

    Views -

    Download:Github | ⭐Download:Github | ⭐Greasy - Fork

    {readme_html} + Fork

    {readme_html} {img_tag}
    """ + return html_content + + +# 遍历 JSON 数据中的每个脚本信息 +for script in data['scripts']: + backuppath = script.get('backuppath', '') + name = script.get('name', '') + description = script.get('description', '') + greasyfork_id = script.get('GreasyFork', '') + filepath = script.get('backuppath', '') + "/" + script.get('path', '') + readme_path = os.path.join(backuppath, "Change history", "README.md") + readme_html = '' + if os.path.isfile(readme_path): + readme_html = "
    更新记录" + \ + md_to_html(readme_path) + "
    " + html_content = generate_html_content("zh-CN", filepath, greasyfork_id, filepath, backuppath, readme_html) # 检查 backuppath 是否存在 if backuppath and os.path.exists(backuppath): start_tag = "" end_tag = "" backup_readme_path = os.path.join(backuppath, 'Change history/README.md') - his= get_file_description(os.path.join(backuppath, "README.md"), start_tag, end_tag) - if "\n"+his+"\n" == html_content: - print(f"----[{script.get('name', '')}]\033[91m 更新日志没有改变,拒绝写入!\033[0m") - continue + his = get_file_description(os.path.join(backuppath, "README.md"), start_tag, end_tag) + if "\n" + his + "\n" == html_content: + continue + else: + print(f"----[\033[94m{script.get('name', '')}\033[0m]\033[92m 头部描述改变,执行替换!\033[0m") for file_name in os.listdir(backuppath): if file_name.lower().endswith('.md'): file_path = os.path.join(backuppath, file_name) - #process_markdown(html_content, file_path, start_tag, end_tag, 'tail', False, backup_readme_path, True) + match = re.match(r'README_([a-zA-Z\-]+)\.md', file_name) + if match: + lang_code = match.group(1) + else: + lang_code = "zh-CN" + html_content = generate_html_content(lang_code, filepath, greasyfork_id, filepath, backuppath, readme_html) process_file(file_path, html_content, start_tag, end_tag, "head") diff --git a/utils/navigation.py b/utils/navigation.py new file mode 100644 index 000000000..25712e66c --- /dev/null +++ b/utils/navigation.py @@ -0,0 +1,92 @@ +from pathlib import Path +from writer import process_file +from content_snippet import get_file_description +import json +import os +import sys +import re +sys.dont_write_bytecode = True + + +# 读取JSON文件 +def read_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) + + +# 根据relatedscripts的id找到对应的脚本 +def find_script_by_greasyfork_id(scripts, greasyfork_id): + for script in scripts: + if str(script.get('GreasyFork')) == str(greasyfork_id): + return script + return None + + +national = [{'aa': 'Afar'}, {'ab': 'аҧсуа бызшәа'}, {'ae': 'Avestan'}, {'af': 'Afrikaans'}, {'ak': 'Akan'}, {'am': 'አማርኛ'}, {'ar': 'العربية'}, {'as': 'Assamese'}, {'ast': 'Asturian'}, {'av': 'Avar'}, {'ay': 'Aymara'}, {'az': 'azərbaycan'}, {'ba': 'Bashkir'}, {'be': 'Беларуская'}, {'bg': 'Български'}, {'bh': 'Bihari'}, {'bi': 'Bislama'}, {'bm': 'Bamanankan'}, {'bn': 'Bengali'}, {'bo': 'Tibetan'}, {'br': 'Breton'}, {'bs': 'Bosanski'}, {'ca': 'Català'}, {'ce': 'Chechen'}, {'ceb': 'Cebuano'}, {'ch': 'Chamorro'}, {'chr': 'Cherokee'}, {'co': 'Corsican'}, {'cr': 'Cree'}, {'cs': 'Čeština'}, {'cu': 'Old Slavonic'}, {'cv': 'Chuvash'}, {'cy': 'Cymraeg'}, {'da': 'Dansk'}, {'de': 'Deutsch'}, {'dv': 'Maldivian'}, {'dz': 'Bhutani'}, {'ee': 'Ɛʋɛ'}, {'el': 'Ελληνικά'}, {'en': 'English'}, {'eo': 'Esperanto'}, {'es': 'Español'}, {'et': 'Eesti'}, {'eu': 'Euskera'}, {'fa': 'فارسی'}, {'ff': 'Fulfulde'}, {'fi': 'Suomi'}, {'fil': 'Filipino'}, {'fj': 'Fiji'}, {'fo': 'Faeroese'}, {'fr': 'Français'}, {'fy': 'Frysk'}, {'ga': 'Gaeilge'}, {'gd': 'Scots Gaelic'}, {'gl': 'Galego'}, {'gn': 'Guarani'}, {'gsw-berne': 'Swiss German'}, {'gu': 'Gujarati'}, {'gv': 'Manx'}, {'ha': 'Hausa'}, {'he': 'עברית'}, {'hi': 'हिन्दी'}, {'hmn': 'Hmong'}, {'ho': 'Hiri Motu'}, {'hr': 'Hrvatski'}, {'ht': 'Haitian Creole'}, {'hu': 'Magyar'}, {'hy': 'Հայերեն'}, {'hz': 'Herero'}, {'ia': 'Interlingua'}, {'id': 'Bahasa Indonesia'}, {'ie': 'Interlingue'}, {'ig': 'Igbo'}, {'ik': 'Inupiak'}, {'is': 'Íslenska'}, {'it': 'Italiano'}, {'iu': 'Inuktitut'}, {'ja': '日本語'}, {'jv': 'Javanese'}, {'ka': 'Georgian'}, {'kg': 'Kongo'}, {'ki': 'Kikuyu'}, {'kj': 'Kwanyama'}, {'kk': 'Қазақ'}, {'kl': 'Greenlandic'}, {'km': 'Cambodian'}, {'kn': 'ಕನ್ನಡ'}, {'ko': '한국어'}, {'kr': 'Kanuri'}, {'ks': 'Kashmiri'}, {'ku': 'Kurdî'}, {'kv': 'Komi'}, {'kw': 'Cornish'}, {'ky': 'Кыргызча'}, {'la': 'Latina'}, {'lb': 'Luxembourgish'}, {'lg': 'Luganda'}, {'lif': 'Limbu'}, {'ln': 'Lingala'}, {'lo': 'Laothian'}, {'lt': 'Lietuvių'}, {'lv': 'Latviešu'}, {'mg': 'Malagasy'}, {'mh': 'Marshallese'}, {'mi': 'Māori'}, {'mk': 'Македонски'}, {'ml': 'മലയാളം'}, {'mn': 'Mongolian'}, {'mo': 'Moldavian'}, {'mr': 'Marathi'}, {'ms': 'Bahasa Melayu'}, {'mt': 'Malti'}, {'my': 'Burmese'}, {'na': 'Nauru'}, {'nd': 'North Ndebele'}, {'ne': 'Nepali'}, {'ng': 'Ndonga'}, {'nl': 'Nederlands'}, {'nb': 'Bokmål'}, {'nn': 'Nynorsk'}, {'nr': 'South Ndebele'}, {'nv': 'Navajo'}, {'ny': 'Chichewa'}, {'oc': 'Occitan'}, {'om': 'Oromo'}, {'or': 'Oriya'}, {'os': 'Ossetian'}, {'pa': 'Punjabi'}, {'pi': 'Pali'}, {'pl': 'Polski'}, {'ps': 'پښتو'}, {'pt': 'Portuguese, International'}, {'pt-PT': 'Português'}, {'pt-BR': 'Português do Brasil'}, {'qu': 'Quechua'}, {'rm': 'Rhaeto-Romance'}, {'rn': 'Kirundi'}, {'ro': 'Română'}, {'ru': 'Русский'}, {'rw': 'Kinyarwanda'}, {'sa': 'Sanskrit'}, {'sc': 'Sardinian'}, {'sco': 'Scots'}, {'sd': 'Sindhi'}, {'se': 'Northern Sami'}, {'sg': 'Sango'}, {'sh': 'Serbo-Croatian'}, {'si': 'සිංහල'}, {'sk': 'Slovenčina'}, {'sl': 'Slovenščina'}, {'sm': 'Samoan'}, {'sn': 'Shona'}, {'so': 'Somali'}, {'sq': 'Shqip'}, {'sr': 'Српски'}, {'ss': 'Siswati'}, {'st': 'Sesotho'}, {'su': 'Sudanese'}, {'sv': 'Svenska'}, {'sw': 'Kiswahili'}, {'syr': 'Syriac'}, {'ta': 'தமிழ்'}, {'te': 'తెలుగు'}, {'tg': 'Tajik'}, {'th': 'ภาษาไทย'}, {'ti': 'Tigrinya'}, {'tk': 'Turkmen'}, {'tl': 'Tagalog'}, {'tn': 'Setswana'}, {'to': 'Tonga'}, {'tr': 'Türkçe'}, {'ts': 'Tsonga'}, {'tt': 'Tatarça'}, {'tw': 'Twi'}, {'ty': 'Tahitian'}, {'ug': 'ئۇيغۇرچە'}, {'uk': 'Українська'}, {'ur': 'اردو'}, {'uz': "o'zbek"}, {'ve': 'Venda'}, {'vi': 'Tiếng Việt'}, {'wo': 'Wolof'}, {'xh': 'isiXhosa'}, {'yi': 'Yiddish'}, {'yo': 'Yorùbá'}, {'za': 'Zhuang'}, {'zh-CN': '简体中文'}, {'zh-TW': '繁體中文'}, {'zh-HK': '繁體中文'}, {'zu': 'isiZulu'}, {'fr-CA': 'Français canadien'}, {'t': 'کوردیی ناوەندی'}] + + +def find_locale(key_to_find): + for item in national: + if key_to_find in item: + return item[key_to_find] + return None + + +def build_html(md_files, path): + html = """ +
    +
    + + + + +""" + base_url = "https://github.com/ChinaGodMan/UserScripts/blob/main/" + for file in md_files: + match = re.match(r'README_([a-zA-Z\-]+)\.md', file) + if match: + lang_code = match.group(1) + else: + lang_code = "zh-CN" + title = find_locale(lang_code) + html += f' {title} | \n' + html = html.rstrip(' | \n') + html += """ +
    + 👆️访问GitHub 上的自述文件以获得更好的体验。 +
    +
    +""" + return html + + +def main(): + json_path = 'docs/ScriptsPath.json' + data = read_json(json_path) + scripts = data.get('scripts', []) + for script in scripts: + backuppath = script.get('backuppath', '') + # 定义开始和结束标签 + start_tag = "" + end_tag = "" + cnfile_path = os.path.join(backuppath, "README.md") + c = Path(backuppath) + md_files = sorted([file.name for file in c.glob('*.md')]) + descriptions = build_html(md_files, backuppath) + olddescriptions = get_file_description(cnfile_path, start_tag, end_tag) + olddescriptions = olddescriptions if olddescriptions is not None else "1" + if "\n" + olddescriptions + "\n" == descriptions: # 换行符添加上,就这样了能用就行 + continue + else: + print(f"----\033[94m[{script.get('name', '')}]\033[0m\033[92m 内容变化,执行替换\033[0m") + if backuppath and os.path.isdir(backuppath): + for file in os.listdir(backuppath): + if file.endswith('.md'): + file_path = os.path.join(backuppath, file) + process_file(file_path, descriptions, start_tag, end_tag, "head") + + +if __name__ == "__main__": + main() diff --git a/utils/script-import-sync.py b/utils/script-import-sync.py new file mode 100644 index 000000000..8cbfbb288 --- /dev/null +++ b/utils/script-import-sync.py @@ -0,0 +1,237 @@ +import requests +import re +from bs4 import BeautifulSoup +from urllib.parse import unquote +from searcher import search_in_file +import json +import shutil +import os +''' +名称: 自动添加脚步并更新附加信息 +版本: 2024.11.2.21:26:26 +介绍: 当docs/ScriptsPath.json有新的脚本目录被加入,但没有有对应的脚本ID时.自动创建脚本并且同步附加信息 + 或者当仓库名称被改变时,更新所有的脚本信息,防止因为仓库名称改变导致脚本webhook失效 +作者: 人民的勤务员 +主页: https://github.com/ChinaGodMan/UserScripts +''' +人民勤务员的仓库链接 = "https://raw.githubusercontent.com/ChinaGodMan/UserScripts/main/" + + +# 构建同步文档地址 +def build_urls(directory): + urls = [] + for filename in os.listdir(directory): + if filename.endswith('.md') and filename != 'README_en.md': + ''' + 可以将readme_en.md也包括在urls当中 + gf会自动将en的语言设置成默认的语言 + 但是会导致脚本管理页面的元素发生变化 + 导致油猴脚本 [506717-GreaysFork增强WebHook同步设置]无法获取到元素. + 不想改那个脚本,就兼容下得了. + ''' + if filename == 'README.md': # 仓库的默认介绍语言一律是中文,需要手动设置 + urls.append(人民勤务员的仓库链接 + directory + "/" + filename + "##zh-CN") + else: + urls.append(人民勤务员的仓库链接 + directory + "/" + filename) + return urls + + +# 读取json文件 +def read_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) + + +# 和谐url,去除特殊字符 +def extract_locale_key(url): + if '##' in url: + match = re.search(r'##[^\(]*\(([^)]*)\)$', url) or re.search(r'##([^#]*)$', url) + else: + match = re.search(r'README_(.*?)\.md', url) + return match.group(1) if match else None + + +# 复制多语言文档罢了 +def copy_readme(source_path, suffixes): + readme_file = os.path.join(source_path, 'README.md') + for suffix in suffixes: + new_file_name = f'README_{suffix}.md' + new_file_path = os.path.join(source_path, new_file_name) + shutil.copy(readme_file, new_file_path) + + +# GreasyFork API类 +class GreasyFork: + def __init__(self): + self.session = requests.Session() + self.csrf_token = None + + def fetch_csrf_token(self): + """ + 提取 CSRF Token。 + """ + url = 'https://greasyfork.org' + response = self.session.get(url) + if response.status_code == 200: + soup = BeautifulSoup(response.text, 'html.parser') + csrf_token_meta = soup.find('meta', {'name': 'csrf-token'}) + if csrf_token_meta: + self.csrf_token = csrf_token_meta.get('content') + return self.csrf_token + else: + raise ValueError("CSRF Token meta tag not found") + else: + raise Exception( + f"Failed to fetch the page. Status Code: {response.status_code}") + + def login(self, email, password): + if self.csrf_token is None: + self.fetch_csrf_token() + + login_url = 'https://greasyfork.org/zh-CN/users/sign_in' + headers = { + 'Content-Type': 'application/x-www-form-urlencoded' + } + data = { + 'authenticity_token': self.csrf_token, + 'user[email]': email, + 'user[password]': password, + 'user[remember_me]': '1', + 'commit': '登录' + } + + response = self.session.post(login_url, headers=headers, data=data) + if response.ok: + soup = BeautifulSoup(response.text, 'html.parser') + tip = soup.select_one("body > div.width-constraint > p") + print(tip.get_text()) + self.fetch_csrf_token() # 登录成功后重新获取csrf_token.所有的请求都需要csrf_token,而且获取一次就行了,一个csrf_token可以多次使用 + else: + raise Exception(f"Login failed. Status Code: {response.status_code}\n{response.text}") + + def get(self, url): + response = self.session.get(url) + return response + + def post(self, url, data, headers=None): + response = self.session.post(url, data=data, headers=headers) + return response + + def get_csrf_token(self): + """ + 获取 CSRF Token 的方法,供外部调用。 + """ + if self.csrf_token is None: + return self.fetch_csrf_token() + return self.csrf_token + + # 导入脚步 + def import_scripts(self, sync_urls): + """ + 导入脚步并提取脚步ID + """ + # 刷新 CSRF Token,历史代码.无需调用. + self.fetch_csrf_token() + import_url = 'https://greasyfork.org/zh-CN/import/add' + headers = { + 'Content-Type': 'application/x-www-form-urlencoded' + } + data = { + 'authenticity_token': self.csrf_token, + 'sync_urls': sync_urls, + 'sync-type': 'automatic', + 'commit': '导入' + } + response = self.session.post(import_url, headers=headers, data=data) + + # 解析返回的脚步ID信息 + if response.status_code == 200: + soup = BeautifulSoup(response.text, 'html.parser') + # 提取返回的脚步列表 + results = [] # 用于存储解析后的数组 + ul_element = soup.select_one("body > div.width-constraint > section > ul") + if ul_element: + li_elements = ul_element.find_all("li") # 获取所有
  • 元素 + for li in li_elements: + a_tag = li.find("a") # 查找每个
  • 中的标签 + if a_tag and 'href' in a_tag.attrs: + link = a_tag['href'] + match = re.search(r'/scripts/(\d+)-(.+)', link) + script_id = match.group(1) # ID + description = unquote(match.group(2)) # 名称 + results.append([script_id, description]) + return script_id + else: + return "脚步返回的元素未找到,需要手动检查脚本是否被导入了." + else: + raise Exception( + f"导入被拒绝,状态码: {response.status_code}\n{response.text}") + + def sync_update(self, script_url, defaultfile, script_id, urls): + """ + 更新附加同步信息 + """ + # 历史代码.保留以备用 + if self.csrf_token is None: + self.fetch_csrf_token() + area = {'aa': '1', 'ab': '2', 'ae': '3', 'af': '4', 'ak': '5', 'am': '6', 'as': '8', 'ast': '9', 'av': '10', 'ay': '11', 'az': '12', 'ba': '13', 'be': '14', 'bh': '16', 'bi': '17', 'bm': '18', 'bn': '19', 'bo': '20', 'br': '21', 'bs': '22', 'ca': '23', 'ce': '24', 'ceb': '25', 'ch': '26', 'chr': '27', 'co': '28', 'cr': '29', 'cs': '30', 'cu': '31', 'cv': '32', 'cy': '33', 'da': '34', 'de': '35', 'dv': '36', 'dz': '37', 'ee': '38', 'el': '39', 'en': '40', 'eo': '41', 'es': '42', 'et': '43', 'eu': '44', 'fa': '45', 'ff': '46', 'fi': '47', 'fil': '48', 'fj': '49', 'fo': '50', 'fr': '51', 'fy': '52', 'ga': '53', 'gd': '54', 'gl': '55', 'gn': '56', 'gsw-berne': '57', 'gu': '58', 'gv': '59', 'ha': '60', 'he': '61', 'hi': '62', 'hmn': '63', 'ho': '64', 'hr': '65', 'ht': '66', 'hu': '67', 'hy': '68', 'hz': '69', 'ia': '70', 'id': '71', 'ie': '72', 'ig': '73', 'ik': '74', 'is': '75', 'it': '76', 'iu': '77', 'ja': '78', 'jv': '79', 'ka': '80', 'kg': '81', 'ki': '82', 'kj': '83', 'kk': '84', 'kl': '85', 'km': '86', 'kn': '87', 'ko': '88', 'kr': '89', 'ks': '90', 'ku': '91', 'kv': '92', 'kw': '93', 'ky': '94', 'la': '95', 'lb': '96', 'lg': '97', 'lif': '98', 'ln': '99', 'lo': '100', 'lt': '101', 'lu': '102', 'lv': '103', 'mg': '104', 'mh': '105', 'mi': '106', 'mk': '107', 'ml': '108', 'mn': '109', 'mo': '110', 'mr': '111', 'ms': '112', 'mt': '113', 'my': '114', 'na': '115', 'nb': '119', 'nd': '120', 'ne': '121', 'ng': '122', 'nl': '118', 'nn': '124', 'no': '125', 'nr': '126', 'nv': '127', 'ny': '128', 'oc': '129', 'pa': '131', 'pi': '132', 'ps': '133', 'pt': '134', 'qu': '135', 'rm': '136', 'rn': '137', 'ro': '138', 'ru': '139', 'rw': '140', 'sa': '141', 'sc': '142', 'sd': '143', 'sg': '144', 'sh': '145', 'si': '146', 'sk': '149', 'sl': '150', 'sm': '151', 'sn': '152', 'so': '153', 'sq': '154', 'sr': '155', 'ss': '156', 'st': '157', 'su': '158', 'sv': '159', 'sw': '160', 'ta': '161', 'te': '162', 'tg': '163', 'th': '165', 'ti': '166', 'tk': '167', 'tl': '168', 'tn': '169', 'to': '170', 'tr': '171', 'ts': '172', 'tt': '173', 'tw': '174', 'ty': '175', 'ug': '176', 'uk': '177', 'ur': '178', 'uz': '179', 've': '180', 'vi': '181', 'vo': '182', 'wa': '183', 'wo': '184', 'xh': '185', 'yi': '186', 'zh-CN': '187', 'zh-TW': '188', 'zu': '189'} + # 设置表单数据 + form_data = { + '_method': 'patch', + 'authenticity_token': self.csrf_token, + 'script[sync_identifier]': script_url, + 'script[sync_type]': 'webhook' + } + # 默认的语言文件 + if defaultfile: + form_data['additional_info_sync[0][attribute_default]'] = 'true' + form_data['additional_info_sync[0][sync_identifier]'] = defaultfile + form_data['additional_info_sync[0][value_markup]'] = 'markdown' + # 遍历每个 语言URL,用于构建区域化文件 + for index, url in enumerate(urls): + locale_key = extract_locale_key(url) + locale = area.get(locale_key, '') + clean_url = re.sub(r'##.*', '', url) + form_data[f'additional_info_sync[{index + 1}][attribute_default]'] = 'false' + form_data[f'additional_info_sync[{index + 1}][locale]'] = locale + form_data[f'additional_info_sync[{index + 1}][sync_identifier]'] = clean_url + form_data[f'additional_info_sync[{index + 1}][value_markup]'] = 'markdown' + form_data['update-and-sync'] = '更新设置并立即同步' + response = self.session.post(f"https://greasyfork.org/zh-CN/scripts/{script_id}/sync_update", data=form_data, headers={'Content-Type': 'application/x-www-form-urlencoded'}) + soup = BeautifulSoup(response.text, 'html.parser') + script_name = soup.select_one('#script-info > header > h2') + specific_element = soup.select_one('body > div.width-constraint > p') + return "\033[94m" + script_name.get_text() + "\033[0m→→→→" + specific_element.get_text() if specific_element else None + + +if __name__ == "__main__": + user_email = os.getenv('GFU') + p = os.getenv('GFP') + GF = GreasyFork() + GF.login(user_email, p) + json_path = 'docs/ScriptsPath.json' + data = read_json(json_path) + scripts = data.get('scripts', []) + for script in scripts: + if script.get('GreasyFork') == "": + # 先更新json内的脚本信息与名称 + full_path = script.get('backuppath') + "/" + script.get('path') + results = search_in_file(full_path, "zh-CN") + name = "\n".join(results.name_matches) + description = "\n".join(results.description_matches) + script['name'] = name + script['description'] = description + # 复制多语言文档,用于之后的翻译 + copy_readme(script.get('backuppath'), ['zh-TW', 'vi', 'en', 'ko']) + # 导入脚本,用于之后的同步附加信息 + sync_urls = 人民勤务员的仓库链接 + full_path + import_script_id = GF.import_scripts(sync_urls) + script['GreasyFork'] = import_script_id + # 同步附加信息 + urls = build_urls(script.get('backuppath')) + defaultfile = 人民勤务员的仓库链接 + script.get('backuppath') + "/README_en.md" + result = GF.sync_update(sync_urls, defaultfile, import_script_id, urls) + # 更新json + with open(json_path, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=4) + print(f"----\033[94m[{full_path}]→→→→\033[0m\033[92m 勤务员提醒:新添加的脚本已被添加到GreasyFork网站!\033[0m") diff --git a/utils/searcher.py b/utils/searcher.py new file mode 100644 index 000000000..3c0704a17 --- /dev/null +++ b/utils/searcher.py @@ -0,0 +1,32 @@ +import re + + +class SearchResults: + def __init__(self): + self.name_matches = [] + self.description_matches = [] + + +def search_in_file(file_path, search_string): + results = SearchResults() + + def perform_search(content, search_str): + name_pattern = re.compile(r'// @name:\s*' + re.escape(search_str) + r'\s*(.+)') + description_pattern = re.compile(r'// @description:\s*' + re.escape(search_str) + r'\s*(.+)') + results.name_matches.extend([match.strip() for match in name_pattern.findall(content)]) + results.description_matches.extend([match.strip() for match in description_pattern.findall(content)]) + + try: + with open(file_path, 'r', encoding='utf-8') as file: + content = file.read() + perform_search(content, search_string) + + if not results.name_matches and not results.description_matches: + perform_search(content, "zh-CN") + + except FileNotFoundError: + print("文件未找到,请检查文件路径。") + except Exception as e: + print(f"发生错误: {e}") + + return results diff --git a/utils/single-format-monkey-meta.js b/utils/single-format-monkey-meta.js index 94cb215de..4cb21a2b8 100644 --- a/utils/single-format-monkey-meta.js +++ b/utils/single-format-monkey-meta.js @@ -1,44 +1,36 @@ -const fs = require('fs'); -const path = require('path'); - +const fs = require('fs') +const path = require('path') // 格式化单个文件的 Tampermonkey 元数据头部 function formatMetadata(filePath) { - const fileContent = fs.readFileSync(filePath, 'utf-8'); - const lines = fileContent.split('\n'); - + const fileContent = fs.readFileSync(filePath, 'utf-8') + const lines = fileContent.split('\n') // 首先找到最长的标签长度 - let maxLabelLength = 0; - const metadataLines = lines.filter(line => line.startsWith('// @')); - + let maxLabelLength = 0 + const metadataLines = lines.filter(line => line.startsWith('// @')) metadataLines.forEach(line => { - const parts = line.split(/\s+/); - const label = parts[1].replace(/@/g, ''); // 获取标签,去掉 @ - maxLabelLength = Math.max(maxLabelLength, label.length); - }); - + const parts = line.split(/\s+/) + const label = parts[1].replace(/@/g, '') // 获取标签,去掉 @ + maxLabelLength = Math.max(maxLabelLength, label.length) + }) // 然后根据最长标签长度格式化 const formattedLines = lines.map(line => { if (line.startsWith('// @')) { - const parts = line.split(/\s+/); - const label = parts[1].replace(/@/g, ''); // 获取标签,去掉 @ - const value = parts.slice(2).join(' '); - return `// @${label.padEnd(maxLabelLength)} ${value}`; // 使用最长标签长度进行对齐 + const parts = line.split(/\s+/) + const label = parts[1].replace(/@/g, '') // 获取标签,去掉 @ + const value = parts.slice(2).join(' ') + return `// @${label.padEnd(maxLabelLength)} ${value}` // 使用最长标签长度进行对齐 } - return line; - }); - - fs.writeFileSync(filePath, formattedLines.join('\n'), 'utf-8'); + return line + }) + fs.writeFileSync(filePath, formattedLines.join('\n'), 'utf-8') } - // 从命令行参数获取文件路径 -const args = process.argv.slice(2); +const args = process.argv.slice(2) if (args.length !== 1) { - console.error('请提供一个 JavaScript 文件的路径。'); - process.exit(1); + console.error('请提供一个 JavaScript 文件的路径。') + process.exit(1) } - -const filePath = path.resolve(args[0]); // 解析传入的文件路径 - +const filePath = path.resolve(args[0]) // 格式化指定的 JavaScript 文件 -formatMetadata(filePath); -console.log(`格式化完成: ${filePath}`); +formatMetadata(filePath) +console.log(`格式化完成: ${filePath}`) diff --git a/pythonscr/translate-chinese-to-filelang/main.py b/utils/translate_chinese_to_filelang.py similarity index 78% rename from pythonscr/translate-chinese-to-filelang/main.py rename to utils/translate_chinese_to_filelang.py index f9abf824d..0874c6e3b 100644 --- a/pythonscr/translate-chinese-to-filelang/main.py +++ b/utils/translate_chinese_to_filelang.py @@ -13,10 +13,7 @@ def is_file_updated_more_than(file_path, timeout_minutes): try: # 使用 git log 获取文件的最后提交时间(Unix 时间戳) - result = subprocess.run( - ['git', 'log', '-1', '--format=%ct', file_path], - capture_output=True, text=True, check=True - ) + result = subprocess.run(['git', 'log', '-1', '--format=%ct', file_path], capture_output=True, text=True, check=True) last_commit_time = int(result.stdout.strip()) # 获取当前时间的 Unix 时间戳 @@ -28,7 +25,7 @@ def is_file_updated_more_than(file_path, timeout_minutes): # 检查文件是否在超时时间之前被更新 return time_diff_minutes > timeout_minutes except subprocess.CalledProcessError as e: - print(f"错误: 无法获取提交时间 - {file_path}") + print(f"错误: 无法获取提交时间 - {file_path} {e}") return None @@ -50,7 +47,8 @@ def is_file_updated_more_than(file_path, timeout_minutes): } # 黑名单:不需要翻译的中文文本 -blacklist = ["人民的勤务员", "中文简体", "中文繁体"] +blacklist = ["人民的勤务员", "简体中文", "繁體中文", "日本語"] + # 翻译函数 translation_cache = { "复刻": ("Fork", False), # 不需要 API 翻译,直接使用缓存值 @@ -64,37 +62,11 @@ def is_file_updated_more_than(file_path, timeout_minutes): "星标": ("issues", True), "脚本数量": ("issues", True), "代码质量": ("issues", True), - # 可以继续添加其他常见的翻译 + } -def translate_text_s(text, target_lang): # 不操作 - if text in translation_cache: - print(f"从缓存中获取翻译:{text} -> {translation_cache[text]}") - return translation_cache[text] - # 模拟调用翻译 API - api_url = 'https://translate.googleapis.com/translate_a/single' - params = { - 'client': 'gtx', - 'dt': 't', - 'sl': 'auto', - 'tl': target_lang, - 'q': text - } - full_url = api_url + '?' + urlencode(params) - try: - response = urlopen(full_url) - data = response.read().decode('utf-8') - # translated_text = json.loads(data.replace("'", "\u2019"))[0][0][0] - translated_text = ''.join( - item[0] for item in json.loads(data.replace("'", "\u2019"))[0]) - return translated_text - except Exception as e: - print(f"\033[31m翻译错误:{e}\033[0m") - return None # 翻译函数 - - def translate_text(text, target_lang): # 如果在缓存中,判断布尔值 if text in translation_cache: @@ -108,13 +80,7 @@ def translate_text(text, target_lang): print(f"{text} 在缓存中,但需要通过 API 翻译。") # 调用翻译 API 进行翻译 api_url = 'https://translate.googleapis.com/translate_a/single' - params = { - 'client': 'gtx', - 'dt': 't', - 'sl': 'auto', - 'tl': target_lang, - 'q': text - } + params = {'client': 'gtx', 'dt': 't', 'sl': 'auto', 'tl': target_lang, 'q': text} full_url = api_url + '?' + urlencode(params) try: # 调用 API 获取翻译 @@ -134,9 +100,9 @@ def translate_text(text, target_lang): # 翻译锁,确保多个线程不会同时修改 translations translation_lock = threading.Lock() -# 用于保存翻译结果的线程函数 +# 用于保存翻译结果的线程函数 def translate_worker(chinese_texts, translations, lang): for idx, chinese_text in chinese_texts: translated_text = translate_text(chinese_text, lang) @@ -144,9 +110,9 @@ def translate_worker(chinese_texts, translations, lang): # 使用锁确保线程安全地修改 translations with translation_lock: translations[(idx, chinese_text)] = translated_text -# 读取文件并查找中文文本 +# 读取文件并查找中文文本 def read_file_to_memory(file_path): with open(file_path, 'r', encoding='utf-8') as f_in: content = f_in.read() @@ -154,9 +120,9 @@ def read_file_to_memory(file_path): lines = [line for line in virtual_file] virtual_file.close() return lines -# 替换编码内容为中文 +# 替换编码内容为中文 def replace_encoded_with_utf8(lines, json_data): updated_lines = [] for line in lines: @@ -165,17 +131,16 @@ def replace_encoded_with_utf8(lines, json_data): line = line.replace(encoded_value, chinese_text) updated_lines.append(line) return updated_lines -# 翻译并保存结果,覆盖原文件 +# 翻译并保存结果,覆盖原文件 def translate_and_save(lines, chinese_texts, lang, file_path): translations = {} # 每种语言有自己的翻译结果 threads = [] chunk_size = len(chinese_texts) // 5 or 1 # 假设5个线程,按块划分 for i in range(0, len(chinese_texts), chunk_size): chunk = chinese_texts[i:i + chunk_size] - thread = threading.Thread( - target=translate_worker, args=(chunk, translations, lang)) + thread = threading.Thread(target=translate_worker, args=(chunk, translations, lang)) threads.append(thread) thread.start() # 等待所有线程完成 @@ -191,13 +156,13 @@ def translate_and_save(lines, chinese_texts, lang, file_path): with open(file_path, 'w', encoding='utf-8') as f_out: f_out.writelines(new_lines) print(f"翻译完成,已将结果覆盖保存到 '{file_path}'。") -# 翻译并行任务 +# 翻译并行任务 def process_file(root, file, lang_code): file_path = os.path.join(root, file) if is_file_updated_more_than(file_path, 30): - print(f"翻译时跳过文件 {file_path},因为文件在5分钟之内没有更新") + print(f"翻译时跳过文件 {file_path},因为文件在30分钟之内没有更新") return # 使用 return 结束当前函数的执行,而不是 continue print(f"开始处理文件: {file_path},语言代码: {lang_code}") # 读取文件内容 @@ -207,21 +172,33 @@ def process_file(root, file, lang_code): # 保存中文文本的位置信息,跳过黑名单 chinese_texts = [] for line_number, line in enumerate(lines): + if "" + end_tag = "" + new_content = get_new_content() + for script in scripts: + backuppath = script.get('backuppath', '') + cnfile_path = os.path.join(backuppath, "README.md") + olddescriptions = get_file_description(cnfile_path, start_tag, end_tag) + if olddescriptions + "\n" == new_content: # 换行符添加上,就这样了能用就行 + continue + else: + print(f"----\033[94m[{script.get('name', '')}]\033[0m\033[92m 内容变化,执行替换\033[0m") + if backuppath and os.path.isdir(backuppath): + for file in os.listdir(backuppath): + if file.endswith('.md'): + file_path = os.path.join(backuppath, file) + process_file(file_path, new_content, start_tag, end_tag, "head") + + +if __name__ == '__main__': + main() diff --git a/utils/update_related_all_scripts.py b/utils/update_related_all_scripts.py new file mode 100644 index 000000000..0e7689cbf --- /dev/null +++ b/utils/update_related_all_scripts.py @@ -0,0 +1,98 @@ +from writer import process_file_plus +from content_snippet import get_file_description +from searcher import search_in_file +import re +import json +import os +import sys +sys.dont_write_bytecode = True + + +# 读取JSON文件 +def read_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) + + +# 根据relatedscripts的id找到对应的脚本 +def find_script_by_greasyfork_id(scripts, greasyfork_id): + for script in scripts: + if str(script.get('GreasyFork')) == str(greasyfork_id): + return script + return None + + +# 生成描述信息,仅针对当前脚本的relatedscripts +def generate_description(current_script, all_scripts, code): + descriptions = [] + # 获取当前脚本的 relatedscripts 值作为分类名 + relatedscripts_category = current_script + # 如果没有 relatedscripts,返回空描述 + if not relatedscripts_category: + return "无相关脚本。\n\n" + # 添加分类名到描述中 + descriptions.append(f'\n\n> ### 🔍你可能在找{relatedscripts_category}\n>') + # 遍历所有脚本,查找具有相同 relatedscripts 值的脚本 + for script in all_scripts: + script_relatedscripts = script.get('relatedscripts') + # 如果脚本的 relatedscripts 与当前脚本相同,就将其添加到描述中 + if script_relatedscripts == relatedscripts_category: + greasyfork_id = script.get('GreasyFork', '未知ID') + full_path = script.get("backuppath") + "/" + script.get("path") + results = search_in_file(full_path, code) + name = "\n".join(results.name_matches) + description = "\n".join(results.description_matches) + link = f"[**{name}**](https://greasyfork.org/scripts/{greasyfork_id})" + descriptions.append(f"> - {link}: {description}") + + return "\n".join(descriptions) + "\n" + + +def process_script(script, scripts, start_tag, end_tag, key): + backuppath = script.get('backuppath', '') + cnfile_path = os.path.join(backuppath, "README.md") + + descriptions = generate_description(key, scripts, "zh-CN") + + olddescriptions = get_file_description(cnfile_path, start_tag, end_tag) + if olddescriptions is None: + olddescriptions = "ggg" + if olddescriptions + "\n" == descriptions: + return + else: + print(f"----[\033[94m{script.get('name', '')}\033[0m--\033[95m{key}\033[0m]\033[92m 内容变化,执行替换\033[0m") + + if backuppath and os.path.isdir(backuppath): + for file in os.listdir(backuppath): + if file.endswith('.md'): + file_path = os.path.join(backuppath, file) + match = re.match(r'README_([a-zA-Z\-]+)\.md', file) + if match: + lang_code = match.group(1) + else: + lang_code = "zh-CN" + descriptions = generate_description(key, scripts, lang_code) + print(descriptions) + process_file_plus(file_path, descriptions, start_tag, end_tag, "") + + +def main(): + json_path = 'docs/ScriptsPath.json' + data = read_json(json_path) + scripts = data.get('scripts', []) + related_scripts_map = {} + for script in scripts: + relatedscripts = script.get('relatedscripts') + if relatedscripts: + if relatedscripts not in related_scripts_map: + related_scripts_map[relatedscripts] = [] + related_scripts_map[relatedscripts].append(relatedscripts) + for script in scripts: + for key, value in related_scripts_map.items(): + start_tag = f"" + end_tag = f"" + process_script(script, scripts, start_tag, end_tag, key) + + +if __name__ == "__main__": + main() diff --git a/pythonscr/update-about-script/main.py b/utils/update_related_scripts.py similarity index 68% rename from pythonscr/update-about-script/main.py rename to utils/update_related_scripts.py index e8e2f90ca..16334fe62 100644 --- a/pythonscr/update-about-script/main.py +++ b/utils/update_related_scripts.py @@ -1,23 +1,29 @@ +from writer import process_file +from content_snippet import get_file_description +from searcher import search_in_file +import re import json import os import sys sys.dont_write_bytecode = True -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from content_snippet import get_file_description -from writer import process_markdown -from writer import process_file + + # 读取JSON文件 def read_json(file_path): with open(file_path, 'r', encoding='utf-8') as file: return json.load(file) + + # 根据relatedscripts的id找到对应的脚本 def find_script_by_greasyfork_id(scripts, greasyfork_id): for script in scripts: if str(script.get('GreasyFork')) == str(greasyfork_id): return script return None + + # 生成描述信息,仅针对当前脚本的relatedscripts -def generate_description(current_script, all_scripts): +def generate_description(current_script, all_scripts, code): descriptions = [] # 获取当前脚本的 relatedscripts 值作为分类名 relatedscripts_category = current_script.get('relatedscripts') @@ -25,40 +31,49 @@ def generate_description(current_script, all_scripts): if not relatedscripts_category: return "无相关脚本。\n\n" # 添加分类名到描述中 - descriptions.append(f'\n\n> ### 🔍你可能在找{relatedscripts_category}') + descriptions.append(f'\n\n> ### 🔍你可能在找{relatedscripts_category}\n>') # 遍历所有脚本,查找具有相同 relatedscripts 值的脚本 for script in all_scripts: script_relatedscripts = script.get('relatedscripts') # 如果脚本的 relatedscripts 与当前脚本相同,就将其添加到描述中 if script_relatedscripts == relatedscripts_category: greasyfork_id = script.get('GreasyFork', '未知ID') - name = script.get('name', '未知名称') - description = script.get('description', '无描述') + full_path = script.get("backuppath") + "/" + script.get("path") + results = search_in_file(full_path, code) + name = "\n".join(results.name_matches) + description = "\n".join(results.description_matches) link = f"[**{name}**](https://greasyfork.org/scripts/{greasyfork_id})" - descriptions.append(f"> - {link}: {description}") - return "\n".join(descriptions) + "\n\n" + descriptions.append(f"> - {link}: {description}") + return "\n".join(descriptions) + "\n" + + def main(): json_path = 'docs/ScriptsPath.json' data = read_json(json_path) scripts = data.get('scripts', []) for script in scripts: backuppath = script.get('backuppath', '') - # 定义开始和结束标签 start_tag = "" end_tag = "" cnfile_path = os.path.join(backuppath, "README.md") - descriptions = generate_description(script, scripts) + descriptions = generate_description(script, scripts, "zh-CN") olddescriptions = get_file_description(cnfile_path, start_tag, end_tag) - if olddescriptions+"\n\n" == descriptions:#换行符添加上,就这样了能用就行 - print(f"----[{script.get('name', '')}]\033[91m 内容无变化,当前脚本目录MD文件不会执行替换。\033[0m") - continue + if olddescriptions + "\n" == descriptions: # 换行符添加上,就这样了能用就行 + continue else: - print(f"----\033[94m[{script.get('name', '')}]\033[0m\033[92m 内容变化,执行替换\033[0m") + print(f"----\033[94m[{script.get('name', '')}]\033[0m\033[92m 内容变化,执行替换\033[0m") if backuppath and os.path.isdir(backuppath): for file in os.listdir(backuppath): if file.endswith('.md'): file_path = os.path.join(backuppath, file) - # process_markdown(descriptions,file_path,start_tag,end_tag, 'tail' ,False,'docs/ScriptsPath.json') + match = re.match(r'README_([a-zA-Z\-]+)\.md', file) + if match: + lang_code = match.group(1) + else: + lang_code = "zh-CN" + descriptions = generate_description(script, scripts, lang_code) process_file(file_path, descriptions, start_tag, end_tag, "head") + + if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/utils/update_scripts_list.py b/utils/update_scripts_list.py new file mode 100644 index 000000000..223f02bd8 --- /dev/null +++ b/utils/update_scripts_list.py @@ -0,0 +1,104 @@ +from writer import process_file +import json +import sys +sys.dont_write_bytecode = True + + +# 读取 JSON 文件 +def read_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) + + +# 根据 relatedscripts 的 ID 找到对应的脚本 +def find_script_by_greasyfork_id(scripts, greasyfork_id): + for script in scripts: + if str(script.get('GreasyFork')) == str(greasyfork_id): + return script + return None + + +# 生成描述信息,仅针对当前脚本的 relatedscripts +def generate_description(all_scripts, single_group=False): + related_scripts_map = {} + if single_group: + related_scripts_map['所有脚本'] = all_scripts + else: + for script in all_scripts: + relatedscript = script.get('relatedscripts') + if relatedscript not in related_scripts_map: + related_scripts_map[relatedscript] = [] + related_scripts_map[relatedscript].append(script) + return related_scripts_map + + +# 生成 HTML 表格 +def generate_html_table(scripts): + html_table = '''''' + for script in scripts: + full_path = script.get("backuppath") + "/" + script.get("path") + + placeholder_image = "https://github.com/ChinaGodMan/UserScriptsHistory/raw/main/20241026_03380458.png" + img_tag = f'' if script.get("img") else f'' + html_table += f'''

    + + + {script.get("name")}  + + +

    + +
    + {script.get("description")} +
    + + {img_tag} +
    +
    + +
    + + + + Greasemonkey / + + + + 自述文件 / + + + 讨论 +
    + ''' + + return html_table + + +# 生产集合,use_details为真收缩,center为真居中 +def generate_grouped_html(related_scripts_map, use_details=True, center=False): + html_output = "" + center_o = '' + center_c = '' + if center: + center_o = '
    ' + center_c = '
    ' + for related_id, scripts in related_scripts_map.items(): + if use_details: + html_output += f'{center_o}
    {related_id}' + else: + html_output += f"

    {related_id}

    " + html_output += generate_html_table(scripts) + if use_details: + print(center_c) + html_output += f"{center_c}
    " + return html_output + + +json_file_path = 'docs/ScriptsPath.json' +data = read_json(json_file_path) +# 按 relatedscripts 分类脚本 +related_scripts_map = generate_description(data.get('scripts', [])) +html_output = generate_grouped_html(related_scripts_map, False) +# 读取 README.md 文件并替换表格 +readme_path = 'docs/README.md' +process_file(readme_path, html_output, "", "", "head") diff --git a/utils/update_shields.py b/utils/update_shields.py new file mode 100644 index 000000000..8b4c015aa --- /dev/null +++ b/utils/update_shields.py @@ -0,0 +1,44 @@ +from content_snippet import get_file_description +from writer import process_file +import os +import sys +import json +sys.dont_write_bytecode = True +script_dir = os.path.dirname(os.path.abspath(__file__)) +NEW_CONTENT_PATH = os.path.join(script_dir, 'docs/SHIELDS.md') + + +def read_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) + + +def get_new_content(): + with open(NEW_CONTENT_PATH, 'r', encoding='utf-8') as file: + return file.read() + + +def main(): + json_path = 'docs/ScriptsPath.json' + data = read_json(json_path) + scripts = data.get('scripts', []) + new_content = get_new_content() + start_tag = "" + end_tag = "" + for script in scripts: + backuppath = script.get('backuppath', '') + cnfile_path = os.path.join(backuppath, "README.md") + olddescriptions = get_file_description(cnfile_path, start_tag, end_tag) + if olddescriptions + "\n" == new_content: # 换行符添加上,就这样了能用就行 + continue + else: + print(f"----\033[94m[{script.get('name', '')}]\033[0m\033[92m 内容变化,执行替换\033[0m") + if backuppath and os.path.isdir(backuppath): + for file in os.listdir(backuppath): + if file.endswith('.md'): + file_path = os.path.join(backuppath, file) + process_file(file_path, new_content, start_tag, end_tag, "head") + + +if __name__ == '__main__': + main() diff --git a/utils/writer.py b/utils/writer.py new file mode 100644 index 000000000..2a92022f8 --- /dev/null +++ b/utils/writer.py @@ -0,0 +1,103 @@ +def process_file_plus(file_path, new_content, start_tag, end_tag, insert_position, position_control='above'): + """ + 处理指定文件,将新内容插入到标记之间或在特定字符串上方或下方, + 并包括开始和结束标记。 + + 参数: + - file_path: 文件路径 + - new_content: 需要插入的新内容 + - start_tag: 开始标记 + - end_tag: 结束标记 + - insert_position: 查找的插入位置字符串 + - position_control: 控制插入到指定行的上方('above')或下方('below') + """ + with open(file_path, 'r', encoding='utf-8') as file: + lines = file.readlines() + + start_index = -1 + end_index = -1 + + # 查找开始和结束标记的位置 + for i, line in enumerate(lines): + if start_tag in line: + start_index = i + elif end_tag in line: + end_index = i + break + + # 判断是否找到了开始和结束标记 + if start_index != -1 and end_index != -1 and start_index < end_index: + # 找到了标记,删除标记之间的内容并插入新的内容 + new_lines = lines[:start_index + 1] # 保留开始标记之前的内容(包含开始标记) + new_lines.append(new_content + '\n') # 添加新的内容 + new_lines.extend(lines[end_index:]) # 保留结束标记之后的内容 + else: + # 未找到开始和结束标记,查找插入位置字符串 + insert_index = -1 + for i, line in enumerate(lines): + if insert_position in line: + insert_index = i + break + + # 如果找到了插入位置字符串,则按位置控制参数插入内容 + if insert_index != -1: + if position_control == 'above': + # 插入到该行上方 + new_lines = ( + lines[:insert_index] + + [f"{start_tag}\n", new_content + '\n', f"{end_tag}\n"] + + lines[insert_index:] + ) + else: + # 插入到该行下方 + new_lines = ( + lines[:insert_index + 1] + + [f"{start_tag}\n", new_content + '\n', f"{end_tag}\n"] + + lines[insert_index + 1:] + ) + else: + # 如果没有找到插入位置字符串,则将新内容插入到文件末尾,并添加开始和结束标记 + new_lines = lines + new_lines.append(f"{start_tag}\n") + new_lines.append(new_content + '\n') + new_lines.append(f"{end_tag}\n") + + # 写回文件 + with open(file_path, 'w', encoding='utf-8') as file: + file.writelines(new_lines) + print(f"Processed {file_path}") + + +def process_file(file_path, new_content, start_tag, end_tag, insert_position): + """处理指定文件,将新内容插入到标记之间""" + with open(file_path, 'r', encoding='utf-8') as file: + lines = file.readlines() + start_index = -1 + end_index = -1 + # 查找开始和结束标记的位置 + for i, line in enumerate(lines): + if start_tag in line: + start_index = i + elif end_tag in line: + end_index = i + break + # 如果找到了这两个标记,删除中间的内容并插入新的内容 + if start_index != -1 and end_index != -1 and start_index < end_index: + new_lines = lines[:start_index + 1] # 保留开始标记之前的内容(包括开始标记) + new_lines.append(new_content + '\n') # 添加新的内容 + new_lines.extend(lines[end_index:]) # 保留结束标记之后的内容 + else: + # 如果没有找到标记,根据参数选择插入到头部还是尾部 + if insert_position == 'head': + new_lines = [f"{start_tag}\n", new_content + '\n', f"{end_tag}\n"] + lines + else: + new_lines = lines + if start_index == -1: # 如果开始标记没有找到 + new_lines.append(f"\n{start_tag}\n") + new_lines.append(new_content + '\n') + if end_index == -1: # 如果结束标记没有找到 + new_lines.append(f"{end_tag}\n") + # 写回文件 + with open(file_path, 'w', encoding='utf-8') as file: + file.writelines(new_lines) + print(f"Processed {file_path}") diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/Fix Sidebar Icon.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/Fix Sidebar Icon.user.js" deleted file mode 100644 index f82019ecb..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/Fix Sidebar Icon.user.js" +++ /dev/null @@ -1,112 +0,0 @@ -// ==UserScript== -// @name Fix Sidebar Icon -// @namespace http://tampermonkey.net/ -// @version 1.1.2.6 -// @description Fix the sidebar icon to the top right corner while scrolling and toggle sidebar visibility -// @match https://greasyfork.org/*/scripts/by-site/* -// @match https://greasyfork.org/* -// @match https://sleazyfork.org/*/scripts/by-site/* -// @match https://sleazyfork.org/* -// @grant none -//66666621241DAD -// ==/UserScript== -(function () { - 'use strict' - // Function to toggle sidebar visibility - function toggleSidebar() { - const sidebar = document.querySelector('.sidebar') - if (sidebar) { - sidebar.classList.toggle('collapsed') - } - } - // Function to create the sidebar icon - function createSidebarIcon() { - const sidebarIcon = document.createElement('div') - sidebarIcon.className = 'sidebar-icon' - sidebarIcon.innerHTML = '☰' - if (isDesktop()) { - sidebarIcon.style.position = 'fixed' - sidebarIcon.style.top = '10px' - sidebarIcon.style.right = '10px' - } else { - sidebarIcon.style.position = 'fixed' - sidebarIcon.style.bottom = '10px' - sidebarIcon.style.right = '20px' - } - sidebarIcon.style.zIndex = '1000' - sidebarIcon.style.cursor = 'pointer' // Make the icon clickable - sidebarIcon.style.backgroundColor = '#fff' // Optional: Adds a background color for better visibility - sidebarIcon.style.padding = '5px' // Optional: Adds some padding for better clickability - sidebarIcon.style.borderRadius = '5px' // Optional: Adds some rounding to the corners - sidebarIcon.style.fontSize = '16px' // Optional: Adjusts the font size to maintain the original icon size - sidebarIcon.addEventListener('click', function () { - if (isDesktop()) { - const sidebar = document.querySelector('.sidebar') - if (sidebar) { - sidebar.style.top = parseInt(sidebar.style.top || 0) + 2 + 'px' - } - alert('完成') - } else { - const sidebar = document.querySelector('.sidebar') - if (sidebar) { - const sidebarContent = sidebar.innerHTML - const dialog = document.createElement('dialog') - dialog.innerHTML = sidebarContent - document.body.appendChild(dialog) - dialog.showModal() - dialog.addEventListener('click', function (event) { - if (event.target.tagName === 'DIALOG') { - dialog.close() - } - }) - } - } - }) - - document.body.appendChild(sidebarIcon) - } - - // Check if the device is a desktop - function isDesktop() { - return !(/Android|iPhone/i.test(navigator.userAgent)) - } - - // Run the function after the page is fully loaded - window.addEventListener('load', function () { - if (isDesktop()) { - const sidebar = document.querySelector('.sidebar') - if (sidebar) { - sidebar.classList.remove('collapsed') - } - const oldSidebarIcon = document.querySelector('.old-sidebar-icon') - if (oldSidebarIcon) { - oldSidebarIcon.click() - } - setTimeout(() => { - const newSidebarIcon = document.querySelector('.sidebar-icon') - if (!newSidebarIcon) { - sidebar.style.top = parseInt(sidebar.style.top || 0) - 2 + 'px' - } - }, 1000) // Adjust the delay if necessary - } else { - createSidebarIcon() - const sidebar = document.querySelector('.sidebar') - - // Function to hide/show the icon based on sidebar visibility - const observer = new MutationObserver(() => { - if (sidebar) { - const isCollapsed = sidebar.classList.contains('collapsed') - const sidebarIcon = document.querySelector('.sidebar-icon') - if (isCollapsed && !sidebarIcon) { - createSidebarIcon() - } else if (!isCollapsed && sidebarIcon) { - sidebarIcon.remove() - } - } - }) - - const observerConfig = { attributes: true, attributeFilter: ['class'] } - observer.observe(sidebar, observerConfig) - } - }) -})() diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/GitHub File Download Links Exporter.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/GitHub File Download Links Exporter.user.js" deleted file mode 100644 index be7fd6d22..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/GitHub File Download Links Exporter.user.js" +++ /dev/null @@ -1,100 +0,0 @@ -// ==UserScript== -// @name GitHub File Download Links Exporter -// @namespace http://tampermonkey.net/ -// @version 1.0 -// @description Export file names and download links from a GitHub repository -// @author Your Name -// @match https://github.com/*/* -// @grant GM_addStyle -// ==/UserScript== - - - -(function () { - 'use strict' - - // 添加按钮 - function addButton() { - const btn = document.createElement('button') - btn.innerHTML = 'Export Download Links' - btn.style.position = 'fixed' - btn.style.top = '10px' - btn.style.right = '10px' - btn.style.zIndex = '9999' - btn.onclick = exportDownloadLinks - document.body.appendChild(btn) - } - - // 导出下载链接 - async function exportDownloadLinks() { - const [_, owner, repo] = window.location.pathname.split('/') - const branch = 'main' // 默认分支 - - const apiUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}?recursive=1` - - try { - const response = await fetch(apiUrl) - if (!response.ok) { - throw new Error(`Error: Unable to fetch repository data. Status code: ${response.status}`) - } - - const data = await response.json() - const tree = data.tree - const downloadLinks = tree - .filter(item => item.type === 'blob') - .map(item => { - return { - name: item.path, - url: `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/${item.path}` - } - }) - - showDownloadLinks(downloadLinks) - } catch (error) { - console.error(error) - } - } - - // 显示下载链接 - function showDownloadLinks(links) { - const container = document.createElement('div') - container.style.position = 'fixed' - container.style.top = '50px' - container.style.right = '10px' - container.style.width = '300px' - container.style.height = '400px' - container.style.overflow = 'auto' - container.style.backgroundColor = '#fff' - container.style.border = '1px solid #ccc' - container.style.padding = '10px' - container.style.zIndex = '9999' - - links.forEach(link => { - const linkElement = document.createElement('div') - linkElement.style.marginBottom = '10px' - - const nameElement = document.createElement('div') - nameElement.textContent = `Name: ${link.name}` - linkElement.appendChild(nameElement) - - const urlElement = document.createElement('a') - urlElement.href = link.url - urlElement.textContent = link.url - urlElement.target = '_blank' - linkElement.appendChild(urlElement) - - container.appendChild(linkElement) - }) - - document.body.appendChild(container) - } - - // 初始化 - function init() { - if (window.location.hostname === 'github.com' && window.location.pathname.split('/').length >= 3) { - addButton() - } - } - - init() -})() diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/GitHub File Download Links Exporter_markdown.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/GitHub File Download Links Exporter_markdown.user.js" deleted file mode 100644 index ad3c66467..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/GitHub File Download Links Exporter_markdown.user.js" +++ /dev/null @@ -1,88 +0,0 @@ -// ==UserScript== -// @name GitHub File Download Links Exporter -// @namespace http://tampermonkey.net/ -// @version 1.1 -// @description Export file names and download links from a GitHub repository as a Markdown list -// @author Your Name -// @match https://github.com/*/* -// @grant GM_addStyle -// ==/UserScript== - - - - - -(function () { - 'use strict' - - // 添加按钮 - function addButton() { - const btn = document.createElement('button') - btn.innerHTML = 'Export Download Links' - btn.style.position = 'fixed' - btn.style.top = '10px' - btn.style.right = '10px' - btn.style.zIndex = '9999' - btn.onclick = exportDownloadLinks - document.body.appendChild(btn) - } - - // 导出下载链接 - async function exportDownloadLinks() { - const [_, owner, repo] = window.location.pathname.split('/') - const branch = 'main' // 默认分支 - - const apiUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}?recursive=1` - - try { - const response = await fetch(apiUrl) - if (!response.ok) { - throw new Error(`Error: Unable to fetch repository data. Status code: ${response.status}`) - } - - const data = await response.json() - const tree = data.tree - const downloadLinks = tree - .filter(item => item.type === 'blob') - .map(item => { - return { - name: item.path, - url: `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/${item.path}` - } - }) - - showMarkdownLinks(downloadLinks) - } catch (error) { - console.error(error) - } - } - - // 显示 Markdown 下载链接 - function showMarkdownLinks(links) { - const markdownList = links.map(link => `- [${link.name}](${link.url})`).join('\n') - - const container = document.createElement('textarea') - container.style.position = 'fixed' - container.style.top = '50px' - container.style.right = '10px' - container.style.width = '400px' - container.style.height = '400px' - container.style.overflow = 'auto' - container.style.backgroundColor = '#fff' - container.style.border = '1px solid #ccc' - container.style.padding = '10px' - container.style.zIndex = '9999' - container.value = markdownList - - document.body.appendChild(container) - } - - // 初始化 - function init() { - if (window.location.hostname === 'github.com' && window.location.pathname.split('/').length >= 3) { - addButton() - } - } - - init() -})() diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/Greasy Fork - \345\210\206\346\236\220\345\217\221\345\270\203\347\232\204\350\204\232\346\234\254\345\242\236\345\274\272\347\211\210\346\234\254.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/Greasy Fork - \345\210\206\346\236\220\345\217\221\345\270\203\347\232\204\350\204\232\346\234\254\345\242\236\345\274\272\347\211\210\346\234\254.user.js" deleted file mode 100644 index 2dc8a0f07..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/Greasy Fork - \345\210\206\346\236\220\345\217\221\345\270\203\347\232\204\350\204\232\346\234\254\345\242\236\345\274\272\347\211\210\346\234\254.user.js" +++ /dev/null @@ -1,312 +0,0 @@ -// ==UserScript== -// @name Greasy Fork - 分析发布的脚本增强版本 -// @namespace millle@foxmail.com -// @version 9 -// @description 在任何用户资料页和搜索页面显示每种评分的总数、总安装数/每日安装数以及发布的脚本总数。 -// @author hacker09 -// @match https://greasyfork.org/* -// @match https://greasyfork.org/*/scripts?q=* -// @match https://greasyfork.org/*/scripts/by-site/* -// @match https://greasyfork.org/zh-CN/scripts?set=* -// @icon https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://greasyfork.org/&size=64 -// @require https://cdn.jsdelivr.net/npm/jszip@3.7.1/dist/jszip.min.js -// ==/UserScript== - -(async function() { - 'use strict'; - let link; -if (location.href.match(/org\/.*\/scripts\?set=/)) { - // 如果 URL 中包含 org/ 任意字符 /scripts?set= 的部分,则条件成立 - console.log('URL 匹配成功',document.querySelector('link[href*= ".json"]').href); - link = document.querySelector('link[href*=".json"]').href; - -} else { - console.log('URL 匹配失败'); - link = document.querySelector('link[href$=".json"]').href; -} - - - const data = await (await fetch(link)).json(); // - console.log(data); - - var LatestCreated, LatestUpdated, ok, bad, good, DailyTotal, TotalInstalls, ScriptsArray, element, SignedIN = ''; // 创建新变量 - - document.head.insertAdjacentHTML('beforeend', ''); // 添加一个空间 - -if (location.href.match(/org\/.*\/scripts\?set=/)) { -element = ".width-constraint:nth-child(2)"; - ScriptsArray = data; - - }else{ if (location.href.match(/org\/.*\/scripts/)) { - element = ".width-constraint:nth-child(2)"; - ScriptsArray = data; - } else { - element = "#user-script-sets-section, #user-script-list-section"; - if (document.querySelector(".sign-in-link") === null) { - // 如果不存在 .sign-in-link 元素 - var userProfileLinkElement = document.querySelector(".user-profile-link"); - var userProfileLink = userProfileLinkElement.querySelector("a").href; - var userIdFromLink = getUserIdFromUrl(userProfileLink); - var userIdFromlocalhelf = getUserIdFromUrl(location.href); - if ( userIdFromLink === userIdFromlocalhelf) { - ScriptsArray = data.scripts; - } else { - ScriptsArray = data.all_listable_scripts; - } - -} else { - // 如果存在 .sign-in-link 元素 - ScriptsArray = data.all_listable_scripts; -} - } - - } - // 根据当前页面是否是脚本搜索页面以及用户是否已登录,获取当前页面元素 - - - - function getUserIdFromUrl(url) { - var regex = /users\/(\d+)/; - var match = regex.exec(url); - return match ? match[1] : null; -} - - // 计算各项数据 - LatestCreated = new Date(Math.max(...ScriptsArray.map(obj => new Date(obj.created_at)))); - LatestUpdated = new Date(Math.max(...ScriptsArray.map(obj => new Date(obj.code_updated_at)))); - ok = ScriptsArray.map(obj => parseInt(obj.ok_ratings, 10)).reduce((acc, curr) => acc + curr, 0); - bad = ScriptsArray.map(obj => parseInt(obj.bad_ratings, 10)).reduce((acc, curr) => acc + curr, 0); - good = ScriptsArray.map(obj => parseInt(obj.good_ratings, 10)).reduce((acc, curr) => acc + curr, 0); - DailyTotal = ScriptsArray.map(obj => parseInt(obj.daily_installs, 10)).reduce((acc, curr) => acc + curr, 0); - TotalInstalls = ScriptsArray.map(obj => parseInt(obj.total_installs, 10)).reduce((acc, curr) => acc + curr, 0); - - // 创建数组来存储不同状态的脚本条目HTML - let notDeletedScripts = []; -let notDeletedCSS = []; -let notDeletedLibs = []; -let deletedHTML = []; - -// 生成每个脚本条目的HTML -ScriptsArray.forEach(script => { - const createdTime = convertToShanghaiTime(script.created_at); - const updatedTime = convertToShanghaiTime(script.code_updated_at); - const scriptName = script.code_url.endsWith('.user.js') - ? createStyledSpan(`【JS】${script.name}`, '#FFFFFF', '#0000FF', '#FF0000', '#FFC0CB', script.deleted) // JS: 白色文字,蓝色背景,红色边框,粉红色圆球 - : script.code_url.endsWith('.user.css') - ? createStyledSpan(`【CSS】${script.name}`, '#FFFFFF', '#FFA500', '#FF00FF', '#00FF00', script.deleted) // CSS: 白色文字,绿色背景,紫色边框,绿色圆球 - : createStyledSpan(`【库】${script.name}`, '#FFFFFF', '#FFA500', '#0000FF', '#00FF00', script.deleted); // 库: 白色文字,橙色背景,蓝色边框,橙色圆球 - const scriptHTML =` - - ${scriptName} - ${script.deleted ? '已删除' : ''} - 创建: ${createdTime} - 更新: ${updatedTime} - 安装${script.version} - 下载 - -
    - `; - -function createStyledSpan(name, textColor = '#FFFFFF', bgColor = '#2D2D2D', outlineColor = '#FFC0CB', circleColor = '#FFC0CB', deleted = false) { - if (deleted) { - textColor = '#FF0000'; // 红色文字 - bgColor = '#2D2D2D'; // 灰色背景 - circleColor = '#FF0000'; // 红色小圆球 - } - - const outlineStyle = deleted ? '' : `outline: 2px solid ${outlineColor};`; - const circleBgColor = circleColor; - - return ` - - - ${name} - - `; -} - if (script.deleted) { - deletedHTML.push(scriptHTML); // 将删除的脚本条目添加到删除数组 - } else { - if (script.code_url.endsWith('.user.js')) { - notDeletedScripts.push({ - html: scriptHTML, - createdAt: script.created_at, - upadataat: script.code_updated_at - }); - } else if (script.code_url.endsWith('.user.css')) { - notDeletedCSS.push({ - html: scriptHTML, - createdAt: script.created_at, - upadataat: script.code_updated_at - - }); - } else { - notDeletedLibs.push({ - html: scriptHTML, - createdAt: script.created_at, - upadataat: script.code_updated_at - - }); - } - } -}); - -// 对未删除的脚本按创建时间排序 -notDeletedScripts.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt)); -notDeletedCSS.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt)); -notDeletedLibs.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt)); - -// 合并所有脚本条目HTML -const allScriptsHTML = ` -
    -
    -

    所有脚本

    -
    -
    -
      - ${notDeletedScripts.map(script => script.html).join('')} - ${notDeletedCSS.map(script => script.html).join('')} - ${notDeletedLibs.map(script => script.html).join('')} - ${deletedHTML.join('')} -
    - -
    - -
    -`; -const color = '#ffcc00'; // 替换为你想要的颜色值 -const csstotal = document.querySelectorAll('[data-css-available-as-js="true"]').length; -const libtotal = document.querySelectorAll('#user-library-script-list > li').length; -const jstotal = document.querySelectorAll('#user-script-list > [data-css-available-as-js="false"]').length; -const jstotalsearch = document.querySelectorAll('#browse-script-list > li[data-script-language="js"]').length; -const csstotalsearch = document.querySelectorAll('#browse-script-list > [data-css-available-as-js="true"]').length; -const sensitive = document.querySelectorAll('li[data-sensitive="true"]').length; - // 将总计部分和所有脚本条目信息合并在一个
    中,并将其插入到页面 -document.querySelector(element).insertAdjacentHTML("afterbegin", ` -
    -
    -

    统计

    -
    -
    -
      - 所有脚本: ${ScriptsArray.length}
      - JS: ${jstotal} CSS:${csstotal} LIB:${libtotal}
      - 每日安装数: ${DailyTotal.toLocaleString()}
      - 总安装数: ${TotalInstalls.toLocaleString()}
      - 总好评数: ${ok.toLocaleString()}
      - 总差评数: ${bad.toLocaleString()}
      - 总好评数: ${good.toLocaleString()}
      - 最近更新: ${convertToShanghaiTime(LatestCreated)}
      -
    -
    - ${allScriptsHTML} -
    -`); - -// https://update.greasyfork.org/scripts/437234/GreasyFork%20Total%20Scripts.user.js - - // 在侧边栏上添加每日安装总数、总安装总数和评分总数 - document.querySelector(".list-option").innerHTML += `(${DailyTotal.toLocaleString()})`; - document.querySelector(".list-option:nth-child(2)").innerHTML += `(${TotalInstalls.toLocaleString()})`; - document.querySelector(".list-option:nth-child(3)").innerHTML += `(${parseInt(ok + bad + good).toLocaleString()})`; - - // 转换时间为上海时间 - function convertToShanghaiTime(dateString) { - const date = new Date(dateString); - const options = { timeZone: 'Asia/Shanghai', hour12: false, year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }; - return date.toLocaleString('zh-CN', options); - } -document.querySelectorAll('.download-link').forEach(link => { - link.addEventListener('click', function(event) { - event.preventDefault(); // 阻止默认的点击行为 - const url = this.getAttribute('href'); - const name = this.getAttribute('download'); - downloadScript(url, name); - }); -}); -function downloadScript(url, name, zipInstance) { - fetch(url) - .then(response => response.blob()) - .then(blob => { - if (zipInstance) { - // 如果传入了 zipInstance,则将 blob 添加到压缩包中 - zipInstance.file(name, blob); - - console.log(blob); - } else { - // 如果未传入 zipInstance,则直接下载该脚本 - const link = document.createElement('a'); - link.href = URL.createObjectURL(blob); - link.download = name; // 设置下载的文件名 - document.body.appendChild(link); - link.click(); // 模拟点击下载链接 - document.body.removeChild(link); // 下载完成后移除链接元素 - } - }) - .catch(error => { - console.error('下载脚本时出错:', error); - }); -} - -document.getElementById('downloadAllButton').addEventListener('click', function() { - // 创建一个新的 JSZip 实例 - var zip = new JSZip(); - const downloadButton = document.getElementById('downloadAllButton'); - downloadButton.textContent = '正在下载...'; // 更改按钮标题 -let downloadedCount = 0; - // 收集所有脚本的下载链接的 Promise 数组 - const downloadPromises = []; - - // 遍历所有脚本 - ScriptsArray.forEach(script => { - - const url = script.code_url; - const scriptName = script.name; - let filename; - - // 确定文件名 - if (url.endsWith('.user.css')) { - filename = `${scriptName}.user.css`; - } else if (url.endsWith('.user.js')) { - filename = `${scriptName}.user.js`; - } else { - filename = `${scriptName}.js`; - } - - // 添加下载每个脚本的 Promise - downloadPromises.push( - fetch(url) - .then(response => response.blob()) - .then(blob => { - - zip.file(filename, blob); - console.log(`Added ${filename} to zip`); - downloadedCount++; - downloadButton.textContent = `${downloadedCount}/${ScriptsArray.length}`; - }) - ); - }); - - // 等待所有下载完成 - Promise.all(downloadPromises) - .then(() => { - // 所有脚本下载完成后,生成压缩包并下载 - return zip.generateAsync({ type: 'blob' }); // 生成压缩包的 Blob 对象 - }) - .then(blob => { - // 创建一个虚拟的链接(a标签) - const link = document.createElement('a'); - link.href = URL.createObjectURL(blob); - link.download = `${data.name}_${ScriptsArray.length}scripts.zip`; - document.body.appendChild(link); - link.click(); // 模拟点击下载链接 - document.body.removeChild(link); // 下载完成后移除链接元素 - downloadButton.textContent = '下载完成'; // 更改按钮标题为下载完成 - }) - .catch(error => { - console.error('一键下载所有脚本时出错:', error); - }); -}); - - -})(); diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/1.json" "b/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/1.json" deleted file mode 100644 index 0c24c779e..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/1.json" +++ /dev/null @@ -1,5948 +0,0 @@ -[ - 950796, - 661467770, - 950383, - 661365665, - 950020, - 661291594, - 949631, - 661207387, - 949202, - 661123407, - 948737, - 661026086, - 948326, - 660952532, - 947951, - 660855850, - 947571, - 660761239, - 947209, - 660688317, - 946815, - 660594047, - 946438, - 660520599, - 946090, - 660430146, - 945787, - 660343546, - 945481, - 660260260, - 945081, - 660147818, - 944829, - 660084717, - 944454, - 659984903, - 944122, - 659907262, - 943785, - 659827435, - 943433, - 659740968, - 943128, - 659655353, - 942791, - 659569792, - 942482, - 659481864, - 942145, - 659377799, - 941851, - 659309778, - 941491, - 659201693, - 941210, - 659139066, - 940827, - 659049644, - 940306, - 658950673, - 939637, - 658847061, - 939318, - 658770859, - 938963, - 658691042, - 938731, - 658618302, - 938404, - 658523034, - 938053, - 658443802, - 937649, - 658339400, - 937368, - 658272491, - 937057, - 658185781, - 936727, - 658102275, - 936442, - 658014782, - 936111, - 657922124, - 935760, - 657841502, - 935412, - 657755855, - 935075, - 657654533, - 934768, - 657582870, - 934408, - 657483799, - 934104, - 657385614, - 933806, - 657314825, - 933494, - 657236695, - 933125, - 657151355, - 932709, - 657039497, - 932134, - 656964758, - 931786, - 656884406, - 931475, - 656791792, - 931134, - 656709161, - 930823, - 656630226, - 930466, - 656521749, - 930198, - 656458990, - 929890, - 656370893, - 929599, - 656284608, - 929273, - 656194885, - 928943, - 656102821, - 928644, - 656024425, - 928312, - 655936418, - 927999, - 655838001, - 927701, - 655762208, - 927377, - 655679437, - 927001, - 655586180, - 926687, - 655503112, - 926317, - 655422515, - 925989, - 655334956, - 925652, - 655237787, - 925333, - 655155175, - 924981, - 655058122, - 924629, - 654989485, - 924257, - 654884598, - 923910, - 654806289, - 923560, - 654719748, - 923178, - 654645125, - 922850, - 654553171, - 922456, - 654467716, - 922076, - 654367742, - 921768, - 654299583, - 921397, - 654204269, - 921037, - 654104455, - 920708, - 654035736, - 920307, - 653929299, - 919976, - 653859050, - 919633, - 653774521, - 919465, - 653464789, - 918191, - 653434702, - 917790, - 653335675, - 917420, - 653260128, - 916983, - 653156655, - 916583, - 653069521, - 916235, - 652987196, - 915881, - 652918355, - 915457, - 652825388, - 915049, - 652737900, - 914676, - 652654882, - 914270, - 652549613, - 913933, - 652476054, - 913574, - 652399170, - 913222, - 652304802, - 912803, - 652209682, - 912409, - 652140420, - 911986, - 652045732, - 911586, - 651951888, - 911191, - 651862750, - 910822, - 651783283, - 910450, - 651703555, - 910057, - 651604969, - 909701, - 651534960, - 909344, - 651434436, - 909006, - 651360368, - 908628, - 651260700, - 908260, - 651183874, - 907816, - 651088912, - 907369, - 651012717, - 906851, - 650902457, - 906456, - 650815609, - 906121, - 650732565, - 905736, - 650671071, - 905313, - 650571580, - 904924, - 650496971, - 904437, - 650387593, - 904049, - 650326265, - 903605, - 650219844, - 903223, - 650148089, - 902720, - 650051138, - 902290, - 649971599, - 901853, - 649888598, - 901384, - 649793702, - 900929, - 649716310, - 900449, - 649632021, - 900001, - 649533538, - 899577, - 649461304, - 899109, - 649356070, - 898685, - 649282801, - 898269, - 649196733, - 897855, - 649115862, - 897246, - 649021461, - 896789, - 648938298, - 896388, - 648848527, - 895983, - 648765060, - 895548, - 648662762, - 895153, - 648588009, - 894748, - 648509350, - 894330, - 648408382, - 893388, - 648309675, - 892707, - 648229865, - 892069, - 648162435, - 891375, - 648061950, - 891002, - 647993170, - 890539, - 647903735, - 890019, - 647795280, - 889670, - 647732240, - 889207, - 647638361, - 888783, - 647554080, - 888314, - 647463578, - 887866, - 647362642, - 887457, - 647300867, - 887012, - 647204043, - 886584, - 647114734, - 886085, - 647037382, - 885584, - 646956206, - 885109, - 646869785, - 884649, - 646775243, - 884143, - 646674497, - 883780, - 646610133, - 883386, - 646515160, - 882934, - 646413056, - 882614, - 646338189, - 882299, - 646262242, - 881944, - 646177548, - 881588, - 646090365, - 881233, - 645990115, - 880886, - 645895339, - 880571, - 645820046, - 880229, - 645729093, - 879859, - 645641218, - 879488, - 645563652, - 879081, - 645471655, - 878753, - 645397161, - 878430, - 645307055, - 878062, - 645224162, - 877670, - 645113974, - 877342, - 645055536, - 876902, - 644933970, - 876653, - 644882812, - 876223, - 644790071, - 875925, - 644703010, - 875551, - 644609574, - 875159, - 644535830, - 874705, - 644431858, - 874248, - 644339081, - 873936, - 644277946, - 873546, - 644188692, - 873153, - 644085887, - 872769, - 643993398, - 872357, - 643900530, - 872085, - 643826404, - 871798, - 643753358, - 871485, - 643670869, - 871204, - 643579823, - 870903, - 643492481, - 870506, - 643387975, - 870170, - 643318522, - 869748, - 643238337, - 869330, - 643135433, - 868934, - 643064856, - 868433, - 642980271, - 868015, - 642891965, - 867626, - 642783565, - 867329, - 642716404, - 866878, - 642614376, - 866501, - 642526461, - 866118, - 642458635, - 865703, - 642365600, - 865356, - 642290977, - 864968, - 642187210, - 864548, - 642115090, - 864140, - 642029372, - 863742, - 641934866, - 863321, - 641855613, - 862870, - 641739445, - 862577, - 641671049, - 862191, - 641572460, - 861863, - 641505668, - 861465, - 641396773, - 861192, - 641340098, - 860777, - 641231502, - 860392, - 641137811, - 860097, - 641074186, - 859757, - 640971860, - 859485, - 640901427, - 859096, - 640818254, - 858640, - 640716844, - 858305, - 640647199, - 857980, - 640555418, - 857641, - 640466939, - 857315, - 640385300, - 856934, - 640271909, - 856636, - 640212639, - 856206, - 640104391, - 855879, - 640041926, - 855437, - 639949051, - 855042, - 639856256, - 854632, - 639774794, - 854207, - 639677404, - 853836, - 639612773, - 853401, - 639523888, - 852907, - 639422454, - 852433, - 639335711, - 851975, - 639258662, - 851493, - 639180130, - 851010, - 639089873, - 850500, - 639001061, - 850032, - 638919348, - 849503, - 638814859, - 849104, - 638741793, - 848674, - 638661652, - 848227, - 638568542, - 847754, - 638477306, - 847385, - 638402454, - 846912, - 638313766, - 846351, - 638218119, - 845830, - 638114905, - 845351, - 638056080, - 844866, - 637955020, - 844397, - 637882555, - 843798, - 637784960, - 843332, - 637700390, - 842813, - 637623633, - 842315, - 637538868, - 841781, - 637433662, - 841211, - 637353590, - 840736, - 637260495, - 840322, - 637191577, - 839834, - 637106977, - 839398, - 637010124, - 838684, - 636930268, - 838271, - 636834511, - 837879, - 636758592, - 837471, - 636664875, - 836906, - 636581484, - 836305, - 636480150, - 833705, - 636395088, - 833339, - 636320515, - 833002, - 636238266, - 832606, - 636143798, - 832189, - 636056701, - 831851, - 635977097, - 831447, - 635890535, - 831018, - 635777956, - 830716, - 635697023, - 830451, - 635637719, - 830051, - 635539136, - 829705, - 635437734, - 829402, - 635374676, - 829057, - 635285040, - 828673, - 635177380, - 828428, - 635119792, - 828125, - 635026953, - 827774, - 634929745, - 827492, - 634854884, - 827165, - 634762110, - 826829, - 634680606, - 826507, - 634600447, - 826207, - 634496508, - 825907, - 634411428, - 825570, - 634338766, - 825227, - 634247795, - 824867, - 634152608, - 824538, - 634067443, - 824215, - 633982909, - 823844, - 633904477, - 823498, - 633800155, - 823167, - 633714599, - 822857, - 633648940, - 822570, - 633558749, - 822220, - 633457738, - 821950, - 633383275, - 821658, - 633302375, - 821337, - 633204544, - 821013, - 633132322, - 820671, - 633043919, - 820306, - 632944478, - 819937, - 632848554, - 819658, - 632773098, - 819331, - 632687046, - 819022, - 632586343, - 818715, - 632521344, - 818345, - 632407172, - 818073, - 632348793, - 817717, - 632252041, - 817428, - 632168432, - 817116, - 632088780, - 816764, - 631985238, - 816450, - 631910177, - 816126, - 631815405, - 815755, - 631720826, - 815479, - 631650195, - 815131, - 631562850, - 814805, - 631475845, - 814460, - 631382850, - 814159, - 631303136, - 813856, - 631210080, - 813497, - 631131382, - 813156, - 631041923, - 812872, - 630957944, - 812551, - 630877544, - 812254, - 630795239, - 811951, - 630695917, - 811599, - 630625521, - 811212, - 630534646, - 810884, - 630453249, - 810494, - 630363131, - 810057, - 630275358, - 809639, - 630173601, - 809310, - 630106022, - 808982, - 630022017, - 808595, - 629926493, - 808276, - 629849569, - 807906, - 629758964, - 807481, - 629666913, - 807013, - 629555316, - 806715, - 629488619, - 806328, - 629392430, - 805966, - 629302591, - 805700, - 629230708, - 805334, - 629137257, - 805002, - 629062121, - 804636, - 628955052, - 804353, - 628880721, - 803851, - 628769899, - 803598, - 628710851, - 803209, - 628639478, - 802772, - 628543825, - 802262, - 628439931, - 801820, - 628374149, - 801098, - 628264675, - 800758, - 628192078, - 800396, - 628094373, - 800078, - 628023093, - 799717, - 627930832, - 799375, - 627835725, - 799090, - 627774441, - 798775, - 627679724, - 798441, - 627601507, - 798137, - 627513455, - 797791, - 627409850, - 797476, - 627325771, - 797159, - 627252655, - 796877, - 627170879, - 796604, - 627079152, - 796300, - 626978062, - 795985, - 626904484, - 795631, - 626803176, - 795282, - 626731737, - 795022, - 626649428, - 794708, - 626554215, - 794282, - 626452554, - 793960, - 626392220, - 793633, - 626303808, - 793225, - 626194112, - 792924, - 626134301, - 792588, - 626032659, - 792256, - 625932306, - 791992, - 625861280, - 791675, - 625774110, - 791392, - 625698727, - 791037, - 625587761, - 790735, - 625525472, - 790334, - 625415570, - 790050, - 625344148, - 789748, - 625260884, - 789385, - 625175500, - 789047, - 625080722, - 788731, - 624994037, - 788381, - 624903823, - 788082, - 624831592, - 787702, - 624729497, - 787400, - 624645124, - 787066, - 624577428, - 786655, - 624472018, - 786323, - 624404277, - 785909, - 624312250, - 785553, - 624230452, - 785208, - 624142740, - 784839, - 624041538, - 784509, - 623952699, - 784184, - 623868576, - 783833, - 623791860, - 783447, - 623697246, - 783049, - 623600859, - 782717, - 623517901, - 782400, - 623434660, - 782096, - 623365015, - 781743, - 623275067, - 781366, - 623187714, - 781001, - 623109967, - 780554, - 623018596, - 780052, - 622911544, - 779903, - 622837242, - 779496, - 622750753, - 779094, - 622673207, - 778718, - 622588580, - 778267, - 622473155, - 777984, - 622414912, - 777622, - 622324148, - 777283, - 622235221, - 776923, - 622140321, - 776540, - 622063618, - 776181, - 621972163, - 775808, - 621884563, - 775458, - 621804072, - 775051, - 621699960, - 774761, - 621633622, - 774364, - 621547837, - 774004, - 621458185, - 773632, - 621377218, - 773217, - 621285273, - 772874, - 621203450, - 772534, - 621118323, - 772153, - 621034562, - 771792, - 620944447, - 771403, - 620844226, - 771063, - 620766260, - 770702, - 620679069, - 770321, - 620595867, - 770004, - 620503766, - 769682, - 620420673, - 769307, - 620342885, - 768862, - 620253806, - 768514, - 620154790, - 767993, - 620042307, - 767783, - 619999388, - 767399, - 619907637, - 767009, - 619807527, - 766636, - 619722055, - 766198, - 619630498, - 765845, - 619565299, - 765380, - 619472810, - 764854, - 619363488, - 764504, - 619293747, - 764100, - 619219544, - 763630, - 619132167, - 763162, - 619045189, - 762666, - 618944149, - 762333, - 618874737, - 761858, - 618765964, - 761454, - 618690276, - 760709, - 618593012, - 759726, - 618504950, - 759286, - 618441414, - 758745, - 618340711, - 758165, - 618248669, - 757669, - 618168780, - 757260, - 618094148, - 756865, - 618003334, - 756497, - 617908513, - 756073, - 617822264, - 755682, - 617729820, - 755276, - 617639393, - 754941, - 617576187, - 754557, - 617465929, - 754287, - 617398344, - 753927, - 617317144, - 753506, - 617215982, - 753126, - 617132849, - 752766, - 617046756, - 752376, - 616946536, - 752126, - 616883832, - 751757, - 616777916, - 751372, - 616710253, - 751032, - 616628167, - 750637, - 616523650, - 750222, - 616418124, - 749940, - 616348149, - 749670, - 616280105, - 749309, - 616194951, - 748963, - 616104331, - 748415, - 616021956, - 748012, - 615912364, - 747665, - 615844851, - 747273, - 615763519, - 746885, - 615654509, - 746543, - 615571495, - 746172, - 615497018, - 745778, - 615407190, - 745391, - 615323284, - 745019, - 615240773, - 744613, - 615136535, - 744340, - 615053701, - 743977, - 614959086, - 743578, - 614861998, - 743331, - 614801622, - 742919, - 614711929, - 742526, - 614619326, - 742126, - 614525151, - 741887, - 614466991, - 741578, - 614371655, - 741176, - 614276433, - 740844, - 614208344, - 740464, - 614111948, - 740056, - 614029989, - 739649, - 613932591, - 739341, - 613848800, - 738969, - 613751885, - 738690, - 613686176, - 738357, - 613586831, - 738020, - 613489604, - 737719, - 613431517, - 737455, - 613340404, - 737217, - 613243659, - 736948, - 613157317, - 736624, - 613057408, - 736443, - 613001582, - 736156, - 612914514, - 735768, - 612799604, - 735515, - 612735618, - 735205, - 612637265, - 734830, - 612536898, - 734575, - 612481353, - 734244, - 612388733, - 733866, - 612298585, - 733530, - 612204917, - 733249, - 612134774, - 732921, - 612033644, - 732592, - 611944042, - 732302, - 611862474, - 731964, - 611784123, - 731620, - 611702109, - 731281, - 611607866, - 730904, - 611510203, - 730520, - 611413813, - 730196, - 611335502, - 729896, - 611273129, - 729550, - 611185288, - 729147, - 611083880, - 728805, - 610992316, - 728475, - 610909208, - 728135, - 610834750, - 727709, - 610719968, - 727491, - 610667624, - 727112, - 610562988, - 726675, - 610477512, - 726321, - 610395743, - 725934, - 610320246, - 725544, - 610232493, - 725254, - 610145972, - 724985, - 610061323, - 724634, - 609955981, - 724327, - 609890991, - 723956, - 609778307, - 723639, - 609695118, - 723423, - 609627816, - 723139, - 609543730, - 722867, - 609450708, - 722579, - 609356986, - 722227, - 609273551, - 721905, - 609178894, - 721509, - 609080985, - 721271, - 609022388, - 720784, - 608891663, - 720619, - 608848126, - 720300, - 608766597, - 719909, - 608665049, - 719498, - 608566283, - 719127, - 608505761, - 718709, - 608397696, - 718353, - 608309357, - 717997, - 608237064, - 717578, - 608152633, - 717170, - 608063859, - 716748, - 607967646, - 716409, - 607879746, - 716144, - 607808253, - 715800, - 607707476, - 715480, - 607638243, - 715054, - 607527084, - 714729, - 607471472, - 714350, - 607385311, - 713938, - 607296531, - 713392, - 607211962, - 713020, - 607125235, - 712306, - 607028163, - 711605, - 606939225, - 711100, - 606849018, - 710607, - 606743697, - 710319, - 606677735, - 709945, - 606574057, - 709721, - 606521341, - 709368, - 606419190, - 709038, - 606336039, - 708600, - 606239705, - 708281, - 606165579, - 707944, - 606081161, - 707648, - 605984560, - 707331, - 605901328, - 707019, - 605828262, - 706607, - 605731020, - 706187, - 605652160, - 705694, - 605535132, - 705433, - 605483907, - 705139, - 605374529, - 704804, - 605307412, - 704530, - 605217933, - 704178, - 605107875, - 703864, - 605026465, - 703372, - 604965581, - 702907, - 604849115, - 702686, - 604782242, - 702396, - 604696890, - 702076, - 604608693, - 701616, - 604520421, - 701026, - 604410178, - 700756, - 604356672, - 700346, - 604257819, - 700116, - 604186044, - 699799, - 604077677, - 699522, - 604015803, - 699228, - 603928226, - 698835, - 603825537, - 698453, - 603714757, - 698345, - 603667499, - 698011, - 603556140, - 697716, - 603469638, - 697393, - 603376016, - 697139, - 603322050, - 696832, - 603233123, - 696477, - 603132704, - 696185, - 603028149, - 695988, - 602968673, - 695737, - 602886619, - 695394, - 602789384, - 695014, - 602689310, - 694803, - 602628439, - 694505, - 602533043, - 694203, - 602438079, - 694009, - 602374375, - 693732, - 602280705, - 693467, - 602190863, - 693193, - 602098945, - 692943, - 602027307, - 692677, - 601937838, - 692467, - 601855771, - 692230, - 601754650, - 691888, - 601644886, - 691643, - 601565001, - 691387, - 601465082, - 691269, - 601409626, - 691058, - 601330945, - 690854, - 601246296, - 690629, - 601141789, - 690435, - 601067614, - 690193, - 600979907, - 689951, - 600883641, - 689749, - 600802756, - 689453, - 600708374, - 689249, - 600646155, - 689007, - 600536451, - 688726, - 600458011, - 688494, - 600371059, - 688134, - 600300641, - 687711, - 600194927, - 687434, - 600092836, - 687269, - 600038521, - 687026, - 599927901, - 686832, - 599850898, - 686570, - 599749439, - 686356, - 599674675, - 686036, - 599601664, - 685781, - 599515202, - 685530, - 599411492, - 685351, - 599333115, - 685058, - 599217848, - 684932, - 599152652, - 684726, - 599075269, - 684419, - 598997905, - 684163, - 598901497, - 683956, - 598824707, - 683708, - 598716414, - 683527, - 598657468, - 683245, - 598548340, - 682855, - 598461721, - 682568, - 598370690, - 682370, - 598293264, - 682155, - 598226873, - 681891, - 598136878, - 681617, - 598048548, - 681280, - 597943703, - 681003, - 597869893, - 679465, - 597777622, - 679165, - 597704057, - 676783, - 597617460, - 676532, - 597518301, - 676263, - 597439856, - 675998, - 597360785, - 675644, - 597246311, - 675423, - 597188198, - 675093, - 597074004, - 674826, - 597015258, - 674585, - 596931124, - 674295, - 596841168, - 673971, - 596750670, - 673657, - 596655722, - 673333, - 596585538, - 672926, - 596473941, - 672706, - 596411110, - 672417, - 596308810, - 672128, - 596232170, - 671793, - 596148591, - 671442, - 596066063, - 671086, - 595952546, - 670785, - 595892899, - 670478, - 595792603, - 670188, - 595710650, - 669944, - 595626966, - 669588, - 595520316, - 669272, - 595433369, - 669031, - 595368886, - 668659, - 595268706, - 668361, - 595187318, - 668046, - 595108694, - 667747, - 595011656, - 667443, - 594918941, - 667195, - 594855960, - 666744, - 594731279, - 666538, - 594673263, - 666198, - 594581327, - 665916, - 594504154, - 665551, - 594404802, - 665151, - 594306160, - 664834, - 594237671, - 664463, - 594164256, - 663967, - 594037875, - 663696, - 593965302, - 663422, - 593905398, - 663037, - 593807047, - 662636, - 593713695, - 662261, - 593637810, - 661907, - 593561460, - 661487, - 593460951, - 660993, - 593360324, - 660642, - 593297825, - 651924, - 593212799, - 651355, - 593128313, - 650701, - 593040060, - 639830, - 592943106, - 627956, - 592851540, - 619892, - 592750963, - 616194, - 592683290, - 610931, - 592601474, - 604041, - 592509226, - 600293, - 592438116, - 596213, - 592329325, - 594223, - 592251347, - 592110, - 592160341, - 590161, - 592079754, - 587118, - 591987375, - 585157, - 591915610, - 583920, - 591817362, - 583403, - 591738649, - 582733, - 591628427, - 582236, - 591554183, - 581743, - 591459857, - 581233, - 591370357, - 580779, - 591295835, - 580275, - 591226785, - 577878, - 591141713, - 576988, - 591054806, - 576392, - 590956014, - 575523, - 590868124, - 574703, - 590790324, - 574077, - 590688262, - 573508, - 590603281, - 572914, - 590531537, - 572330, - 590447600, - 571683, - 590333305, - 571333, - 590278061, - 570776, - 590175472, - 570189, - 590094343, - 569207, - 590001929, - 566829, - 589917395, - 564837, - 589824111, - 564325, - 589758879, - 563908, - 589665540, - 563433, - 589579422, - 562889, - 589498701, - 562194, - 589397163, - 560174, - 589314829, - 559296, - 589212645, - 558528, - 589136064, - 557856, - 589056389, - 556967, - 588978194, - 554305, - 588885328, - 553171, - 588784163, - 552512, - 588705057, - 551751, - 588609244, - 550996, - 588536783, - 548250, - 588445491, - 547818, - 588368584, - 547396, - 588287967, - 546805, - 588200504, - 545670, - 588102324, - 543547, - 588020129, - 542077, - 587912920, - 541592, - 587846143, - 540964, - 587735777, - 539348, - 587669957, - 536539, - 587583196, - 533361, - 587513244, - 529280, - 587425937, - 522840, - 587335858, - 521890, - 587253316, - 520193, - 587149039, - 517789, - 587062961, - 514695, - 586982610, - 511042, - 586900841, - 506657, - 586822140, - 505992, - 586731857, - 502105, - 586618922, - 500561, - 586525487, - 497263, - 586456456, - 484131, - 586378279, - 476879, - 586297535, - 476093, - 586181865, - 475666, - 586119501, - 475131, - 586033781, - 474421, - 585933398, - 473828, - 585845766, - 473215, - 585765449, - 472657, - 585679784, - 472005, - 585591617, - 471335, - 585507956, - 470849, - 585432827, - 470219, - 585337093, - 469665, - 585254988, - 469052, - 585162139, - 468498, - 585089408, - 467866, - 585007712, - 467239, - 584913050, - 466700, - 584824318, - 465333, - 584735652, - 462619, - 584644160, - 461659, - 584565165, - 460790, - 584443771, - 460311, - 584380002, - 459744, - 584302967, - 459278, - 584229891, - 458684, - 584109623, - 458205, - 584044924, - 457655, - 583950396, - 457142, - 583865060, - 456540, - 583770350, - 456029, - 583681078, - 455616, - 583598327, - 455110, - 583509696, - 454618, - 583429894, - 454021, - 583337521, - 453547, - 583269537, - 453034, - 583170014, - 452542, - 583096800, - 452031, - 583006942, - 451491, - 582913320, - 450864, - 582826549, - 450320, - 582736352, - 449900, - 582661446, - 449418, - 582575536, - 448978, - 582501915, - 448582, - 582413296, - 448104, - 582305062, - 447710, - 582227562, - 447271, - 582145544, - 446797, - 582045859, - 446317, - 581954254, - 445933, - 581894880, - 445500, - 581780076, - 445177, - 581714309, - 444737, - 581614492, - 444170, - 581497477, - 443854, - 581423949, - 443510, - 581346413, - 443176, - 581267531, - 442842, - 581189773, - 442518, - 581116160, - 442115, - 581028176, - 441733, - 580929324, - 441390, - 580854701, - 441031, - 580766758, - 440709, - 580679188, - 440435, - 580592902, - 440116, - 580488687, - 439818, - 580409383, - 439490, - 580338239, - 439028, - 580218413, - 438660, - 580109892, - 438347, - 579980867, - 438047, - 579870353, - 437928, - 579821486, - 437629, - 579724865, - 437248, - 579618514, - 437117, - 579558310, - 436508, - 579360178, - 436301, - 579299855, - 435969, - 579218953, - 435381, - 579063154, - 435284, - 579020078, - 434879, - 578901451, - 434763, - 578868193, - 434428, - 578778374, - 434058, - 578671267, - 433848, - 578609743, - 433509, - 578527853, - 433112, - 578395490, - 432891, - 578322446, - 432660, - 578262965, - 432390, - 578177394, - 432032, - 578068916, - 431578, - 577979189, - 430910, - 577922698, - 430488, - 577800938, - 429997, - 577741719, - 429684, - 577641560, - 429474, - 577576552, - 428703, - 577365531, - 428285, - 577256004, - 428159, - 577224558, - 427681, - 577131718, - 427373, - 577056937, - 427053, - 576950633, - 426757, - 576878103, - 424531, - 576795659, - 422197, - 576692895, - 421400, - 576608864, - 421010, - 576501310, - 420813, - 576453475, - 420396, - 576358333, - 417417, - 576261867, - 416683, - 576190256, - 416326, - 576096947, - 415912, - 576005939, - 414559, - 575884848, - 414189, - 575832591, - 413262, - 575755934, - 412958, - 575650660, - 412631, - 575559736, - 412318, - 575476770, - 411803, - 575390528, - 411551, - 575326141, - 410895, - 575224151, - 410547, - 575151642, - 409121, - 575034975, - 408316, - 574959394, - 406615, - 574878417, - 401586, - 574802765, - 401222, - 574716990, - 400918, - 574619693, - 400681, - 574527593, - 400438, - 574463150, - 400113, - 574365407, - 399813, - 574293367, - 399459, - 574193144, - 399155, - 574105673, - 398871, - 574034524, - 398582, - 573920780, - 398283, - 573844577, - 397967, - 573752704, - 397648, - 573668996, - 397355, - 573595055, - 396965, - 573477575, - 396756, - 573414589, - 396450, - 573317001, - 396176, - 573238538, - 395875, - 573158417, - 395485, - 573062921, - 395199, - 572978867, - 394885, - 572896748, - 394597, - 572802183, - 394280, - 572705994, - 393975, - 572621922, - 393754, - 572563660, - 393416, - 572457902, - 393093, - 572358143, - 392856, - 572285340, - 392607, - 572216559, - 392373, - 572125555, - 391534, - 572005961, - 390764, - 571929501, - 390268, - 571846813, - 389885, - 571766431, - 389583, - 571695099, - 389159, - 571595634, - 388714, - 571502905, - 388325, - 571406300, - 388114, - 571340126, - 387780, - 571264440, - 387314, - 571140531, - 387094, - 571087455, - 386685, - 571008819, - 386237, - 570880195, - 385967, - 570796745, - 385775, - 570741010, - 385344, - 570627641, - 385056, - 570556645, - 384749, - 570485695, - 384168, - 570375799, - 383646, - 570296158, - 383134, - 570223781, - 382574, - 570139931, - 382064, - 570049499, - 381511, - 569933598, - 381311, - 569875744, - 380849, - 569795871, - 380365, - 569680719, - 380185, - 569624230, - 379612, - 569534385, - 378466, - 569449513, - 377373, - 569342882, - 375395, - 569250530, - 374736, - 569194082, - 374461, - 569079435, - 374252, - 569013920, - 373937, - 568908461, - 373424, - 568822588, - 373085, - 568735396, - 372059, - 568635864, - 371443, - 568562812, - 371095, - 568481428, - 370897, - 568410467, - 370631, - 568315018, - 369614, - 568242262, - 368765, - 568148199, - 368428, - 568061800, - 367783, - 567945132, - 367581, - 567871165, - 366991, - 567803262, - 365389, - 567724158, - 363616, - 567623207, - 362181, - 567501340, - 361033, - 567441130, - 358015, - 567349371, - 356702, - 567284999, - 355475, - 567206180, - 353810, - 567065907, - 351334, - 567021770, - 343768, - 566891909, - 340252, - 566861184, - 339219, - 566775054, - 337202, - 566644341, - 336622, - 566600610, - 336031, - 566514930, - 331483, - 566412754, - 330520, - 566304789, - 329708, - 566245800, - 328418, - 566149689, - 327060, - 566078277, - 326796, - 565991580, - 326497, - 565883817, - 326244, - 565803438, - 325814, - 565703116, - 325563, - 565643433, - 325326, - 565553704, - 325115, - 565472314, - 324887, - 565389677, - 324566, - 565275173, - 324286, - 565215227, - 324019, - 565134048, - 323724, - 565035130, - 323421, - 564926839, - 323184, - 564843116, - 322945, - 564766061, - 322664, - 564681874, - 322398, - 564604267, - 322126, - 564513308, - 321836, - 564419588, - 321564, - 564336109, - 321364, - 564264013, - 321041, - 564163955, - 320503, - 564097376, - 320236, - 563988176, - 320015, - 563919775, - 319588, - 563776354, - 319501, - 563734503, - 319295, - 563665111, - 318940, - 563545061, - 318598, - 563425229, - 318538, - 563403533, - 318139, - 563268530, - 318001, - 563222702, - 317759, - 563114189, - 317578, - 563044604, - 317145, - 562905216, - 317100, - 562881441, - 316847, - 562776024, - 316602, - 562682099, - 316362, - 562601578, - 316076, - 562496973, - 315960, - 562454187, - 315639, - 562330123, - 315412, - 562246873, - 315205, - 562176589, - 314958, - 562087736, - 314748, - 562016905, - 314452, - 561894669, - 314274, - 561814497, - 314094, - 561747937, - 313867, - 561656587, - 313629, - 561579436, - 313304, - 561458926, - 312942, - 561396858, - 312291, - 561315399, - 311640, - 561188889, - 311497, - 561136762, - 311203, - 561040908, - 310988, - 560986431, - 310724, - 560882616, - 310440, - 560787181, - 310159, - 560685148, - 310032, - 560635567, - 309772, - 560534119, - 309570, - 560460083, - 309307, - 560379544, - 309031, - 560289416, - 308322, - 560112618, - 308075, - 560020072, - 307780, - 559931144, - 307588, - 559860342, - 307354, - 559753320, - 307133, - 559669616, - 306932, - 559591648, - 306654, - 559499260, - 306472, - 559433431, - 306223, - 559333754, - 305951, - 559255193, - 305668, - 559163068, - 305430, - 559075350, - 305212, - 558991606, - 304998, - 558914194, - 304766, - 558816999, - 304520, - 558738251, - 304239, - 558653129, - 303980, - 558568962, - 303657, - 558443208, - 303468, - 558379210, - 303212, - 558292592, - 302995, - 558218537, - 302676, - 558104616, - 302341, - 558007492, - 302169, - 557961318, - 301843, - 557848061, - 301526, - 557754369, - 301360, - 557699561, - 301173, - 557615810, - 300908, - 557516220, - 300194, - 557419708, - 299376, - 557339605, - 299082, - 557244163, - 298835, - 557171297, - 298572, - 557079490, - 298236, - 556993735, - 297945, - 556905804, - 297625, - 556825005, - 297265, - 556741965, - 296725, - 556666738, - 296402, - 556563182, - 296099, - 556455171, - 295936, - 556379310, - 295744, - 556311354, - 295490, - 556234632, - 295059, - 556121396, - 294454, - 556029723, - 294182, - 555958405, - 293779, - 555857478, - 293493, - 555751997, - 293374, - 555700233, - 293107, - 555605887, - 292893, - 555529062, - 292651, - 555459011, - 292378, - 555357751, - 292072, - 555253567, - 291913, - 555194104, - 291618, - 555097383, - 291173, - 554981790, - 290935, - 554906457, - 290681, - 554837074, - 290348, - 554741221, - 290019, - 554644593, - 289834, - 554586743, - 289550, - 554495363, - 289221, - 554407342, - 288574, - 554282481, - 288360, - 554240867, - 288091, - 554146216, - 287822, - 554045452, - 287632, - 553964332, - 287363, - 553865082, - 287196, - 553809864, - 286944, - 553720657, - 286670, - 553638083, - 286333, - 553520941, - 286097, - 553467252, - 285748, - 553351475, - 285423, - 553263050, - 285068, - 553190756, - 284056, - 553080367, - 283637, - 553036531, - 283043, - 552909429, - 282810, - 552864701, - 282274, - 552747323, - 281072, - 552670214, - 278284, - 552590989, - 270922, - 552469590, - 267723, - 552424436, - 261162, - 552311146, - 258613, - 552241378, - 257104, - 552145104, - 256418, - 552061502, - 255826, - 551995148, - 254712, - 551872336, - 254365, - 551821723, - 253322, - 551718374, - 252350, - 551650134, - 251275, - 551545277, - 251067, - 551477033, - 250714, - 551364555, - 250476, - 551300179, - 250123, - 551197528, - 249899, - 551124807, - 249680, - 551048806, - 249466, - 550958340, - 249176, - 550845176, - 248965, - 550755250, - 248831, - 550707188, - 248550, - 550618040, - 248396, - 550528485, - 248094, - 550428102, - 247902, - 550339025, - 247624, - 550234007, - 247312, - 550139421, - 247025, - 550062551, - 246799, - 550011183, - 246400, - 549913615, - 246036, - 549840791, - 245551, - 549726153, - 245298, - 549656642, - 245073, - 549571343, - 244855, - 549486316, - 244671, - 549394253, - 244462, - 549296247, - 244204, - 549182621, - 244133, - 549140384, - 243874, - 549044586, - 243630, - 548954324, - 243363, - 548859539, - 243179, - 548805955, - 242912, - 548700778, - 242475, - 548595199, - 242293, - 548518591, - 242000, - 548411356, - 241807, - 548342677, - 241565, - 548266786, - 241338, - 548195741, - 241086, - 548100276, - 240898, - 548016030, - 240626, - 547909068, - 240436, - 547830082, - 240279, - 547763201, - 240054, - 547676864, - 239774, - 547560376, - 239542, - 547467753, - 239379, - 547423163, - 239120, - 547312447, - 238923, - 547242640, - 238690, - 547162849, - 238431, - 547075852, - 238210, - 546989569, - 237958, - 546874708, - 237757, - 546808810, - 237565, - 546728653, - 237287, - 546636805, - 237051, - 546558062, - 236811, - 546472598, - 236500, - 546353738, - 236269, - 546242269, - 236176, - 546189880, - 236035, - 546120285, - 235788, - 546016689, - 235549, - 545937458, - 235307, - 545862999, - 235032, - 545770306, - 234711, - 545647115, - 234560, - 545583901, - 234338, - 545472300, - 234205, - 545413477, - 234027, - 545337344, - 233798, - 545254485, - 233562, - 545161600, - 233337, - 545081901, - 233017, - 544969481, - 232908, - 544913397, - 232680, - 544815644, - 232458, - 544733291, - 232230, - 544658415, - 232014, - 544561392, - 231782, - 544458401, - 231583, - 544395779, - 231419, - 544312613, - 231082, - 544183160, - 230876, - 544106191, - 230719, - 544052097, - 230421, - 543945662, - 230215, - 543862891, - 229946, - 543760154, - 229791, - 543682797, - 229536, - 543602895, - 229302, - 543505965, - 229107, - 543441575, - 228794, - 543324261, - 228640, - 543261531, - 228367, - 543170257, - 228159, - 543093961, - 227933, - 543014383, - 227658, - 542900502, - 227482, - 542836046, - 227243, - 542755084, - 226949, - 542634932, - 226749, - 542572906, - 226508, - 542464871, - 226291, - 542377830, - 226104, - 542307877, - 225800, - 542189638, - 225624, - 542115018, - 225448, - 542053683, - 225235, - 541945860, - 225042, - 541885512, - 224834, - 541802862, - 224575, - 541690573, - 224397, - 541623603, - 224162, - 541543981, - 223910, - 541462094, - 223674, - 541354673, - 223514, - 541270273, - 223141, - 541169604, - 222848, - 541062720, - 222711, - 541025395, - 222501, - 540915731, - 222300, - 540833140, - 222112, - 540753166, - 221937, - 540656104, - 221731, - 540571904, - 221526, - 540486899, - 221302, - 540390869, - 221121, - 540317893, - 220817, - 540200441, - 220677, - 540129442, - 220551, - 540056354, - 220350, - 539957191, - 220218, - 539893267, - 220005, - 539811038, - 219798, - 539733873, - 219565, - 539621730, - 219409, - 539543726, - 219176, - 539428693, - 219060, - 539388260, - 218793, - 539278961, - 218617, - 539212575, - 218402, - 539109929, - 218160, - 539008770, - 217977, - 538918696, - 217869, - 538860487, - 217614, - 538746632, - 217495, - 538691165, - 217263, - 538578575, - 217058, - 538483975, - 216923, - 538418401, - 216742, - 538329540, - 216574, - 538265469, - 216315, - 538158707, - 216006, - 538085732, - 215662, - 537992587, - 215328, - 537877460, - 215121, - 537829274, - 214896, - 537700502, - 214732, - 537655791, - 214530, - 537557932, - 214272, - 537454840, - 214057, - 537388275, - 213823, - 537288354, - 213631, - 537208037, - 213423, - 537116139, - 213154, - 537028266, - 212974, - 536956925, - 212753, - 536858011, - 212527, - 536784996, - 212284, - 536686715, - 211926, - 536587131, - 211690, - 536519482, - 211450, - 536449670, - 211167, - 536359785, - 210841, - 536266528, - 210440, - 536152228, - 210251, - 536092766, - 209941, - 535970233, - 209848, - 535916455, - 209669, - 535837558, - 209281, - 535715786, - 209098, - 535658397, - 208750, - 535562575, - 208462, - 535441149, - 208376, - 535408093, - 208089, - 535286381, - 207883, - 535214528, - 207723, - 535133352, - 207150, - 535051271, - 206900, - 534959436, - 206631, - 534873653, - 206412, - 534792571, - 206095, - 534700932, - 205880, - 534620625, - 205527, - 534502179, - 205383, - 534460033, - 205166, - 534373671, - 204973, - 534290460, - 204750, - 534202359, - 204542, - 534094258, - 204412, - 534024293, - 204213, - 533911240, - 203733, - 533756108, - 202721, - 533685763, - 201613, - 533584091, - 201196, - 533468694, - 201019, - 533376831, - 200936, - 533330740, - 200576, - 533211427, - 200304, - 533152603, - 200063, - 533075329, - 199862, - 532987917, - 199461, - 532890753, - 199177, - 532780345, - 198826, - 532709748, - 198640, - 532647750, - 198457, - 532549910, - 198189, - 532455290, - 197867, - 532338548, - 197720, - 532287556, - 197461, - 532200033, - 197293, - 532117120, - 197082, - 532010251, - 196950, - 531947828, - 196738, - 531846064, - 196583, - 531770833, - 196399, - 531671782, - 196255, - 531587629, - 196107, - 531515861, - 195912, - 531412449, - 195778, - 531348208, - 195607, - 531252717, - 195367, - 531128440, - 195302, - 531087607, - 195131, - 530988849, - 194969, - 530918203, - 194747, - 530799868, - 194551, - 530698433, - 194445, - 530649275, - 194262, - 530553722, - 194042, - 530447735, - 193915, - 530362378, - 193782, - 530283295, - 193683, - 530229552, - 193518, - 530114558, - 193368, - 530057302, - 193168, - 529959310, - 192987, - 529865398, - 192819, - 529773907, - 192668, - 529691283, - 192440, - 529593694, - 192300, - 529494581, - 192024, - 529412242, - 191828, - 529364996, - 191572, - 529232740, - 191402, - 529147752, - 191316, - 529098214, - 191128, - 529010353, - 190910, - 528890491, - 190775, - 528815130, - 190605, - 528728254, - 190440, - 528626107, - 190355, - 528575117, - 190176, - 528484242, - 190012, - 528396956, - 189849, - 528303239, - 189692, - 528230030, - 189518, - 528151393, - 189300, - 528051441, - 189142, - 527983957, - 188964, - 527886706, - 188750, - 527782127, - 188592, - 527705959, - 188403, - 527635763, - 188193, - 527538248, - 188039, - 527454874, - 187883, - 527374104, - 187686, - 527273583, - 187486, - 527182451, - 187323, - 527103811, - 187158, - 527025583, - 186994, - 526942035, - 186740, - 526806805, - 186649, - 526750023, - 186490, - 526676114, - 186275, - 526567135, - 186129, - 526478440, - 186026, - 526427347, - 185864, - 526342066, - 185612, - 526211805, - 185454, - 526137218, - 185318, - 526066509, - 185134, - 525966686, - 185000, - 525895149, - 184774, - 525783592, - 184617, - 525725171, - 184370, - 525623900, - 183871, - 525509858, - 183561, - 525458294, - 183363, - 525364689, - 183149, - 525261758, - 183050, - 525202791, - 182864, - 525103705, - 182718, - 525032455, - 182550, - 524945879, - 182342, - 524852747, - 182164, - 524777967, - 181956, - 524677124, - 181812, - 524613785, - 181595, - 524503797, - 181470, - 524440382, - 181298, - 524346520, - 181119, - 524265206, - 180934, - 524161571, - 180749, - 524066059, - 180606, - 524002559, - 180399, - 523895894, - 180238, - 523827571, - 180080, - 523743351, - 179707, - 523570632, - 179487, - 523450474, - 179187, - 523323163, - 179175, - 523309583, - 178837, - 523187515, - 178719, - 523140981, - 178436, - 523019396, - 178251, - 522948083, - 178036, - 522857343, - 177809, - 522760279, - 177700, - 522708720, - 177530, - 522596042, - 177416, - 522523038, - 177288, - 522447753, - 177136, - 522344633, - 176964, - 522247304, - 176833, - 522182456, - 176671, - 522081532, - 176495, - 521987778, - 176397, - 521925449, - 176256, - 521840978, - 176062, - 521751541, - 175819, - 521646351, - 175717, - 521585917, - 175495, - 521452939, - 175407, - 521383878, - 175223, - 521268722, - 175161, - 521223225, - 175023, - 521135976, - 174892, - 521067224, - 174737, - 520968156, - 174614, - 520885601, - 174440, - 520797371, - 174294, - 520710925, - 174124, - 520630732, - 173937, - 520524678, - 173700, - 520382774, - 173695, - 520377529, - 173504, - 520283921, - 173357, - 520190094, - 173237, - 520120854, - 173055, - 519995351, - 172963, - 519936599, - 172748, - 519820434, - 172631, - 519749580, - 172493, - 519678812, - 172307, - 519577534, - 172188, - 519502651, - 172022, - 519419186, - 171822, - 519327331, - 171587, - 519211694, - 171505, - 519166052, - 171228, - 518992108, - 171127, - 518911184, - 170971, - 518797044, - 170865, - 518724549, - 170755, - 518642833, - 170591, - 518526592, - 170513, - 518467451, - 170382, - 518378033, - 170161, - 518246737, - 170092, - 518196118, - 169965, - 518114553, - 169756, - 517972791, - 169725, - 517947322, - 169587, - 517849974, - 169449, - 517772275, - 169274, - 517672739, - 169161, - 517605287, - 169035, - 517507068, - 168905, - 517421386, - 168766, - 517325833, - 168665, - 517256960, - 168503, - 517161558, - 168421, - 517086692, - 168283, - 517006323, - 168077, - 516844815, - 167974, - 516774048, - 167935, - 516747512, - 167690, - 516593293, - 167639, - 516547111, - 167529, - 516488702, - 167381, - 516395842, - 167261, - 516315219, - 167120, - 516221551, - 166965, - 516116273, - 166849, - 516048168, - 166723, - 515965739, - 166616, - 515887930, - 166500, - 515797571, - 166361, - 515678544, - 166281, - 515609734, - 166144, - 515510597, - 166017, - 515420140, - 165918, - 515347155, - 165753, - 515248118, - 165666, - 515175282, - 165547, - 515094054, - 165449, - 515022594, - 165328, - 514923238, - 165215, - 514837897, - 165106, - 514739589, - 165032, - 514661225, - 164942, - 514586394, - 164850, - 514503118, - 164743, - 514413747, - 164575, - 514284611, - 164513, - 514234321, - 164402, - 514141580, - 164314, - 514054201, - 164183, - 513961192, - 164066, - 513893237, - 163920, - 513803297, - 163780, - 513727969, - 163551, - 513607230, - 163518, - 513553057, - 163343, - 513442367, - 163220, - 513376551, - 163110, - 513295922, - 162986, - 513189698, - 162840, - 513103073, - 162715, - 513034459, - 162585, - 512941065, - 162477, - 512857656, - 162358, - 512755111, - 162251, - 512683278, - 162115, - 512568784, - 161954, - 512469572, - 161856, - 512396942, - 161783, - 512324909, - 161675, - 512246362, - 161566, - 512169596, - 161431, - 512059776, - 161328, - 511996710, - 161180, - 511897514, - 161016, - 511788119, - 160940, - 511739100, - 160824, - 511648944, - 160694, - 511566808, - 160566, - 511470755, - 160379, - 511365983, - 160259, - 511281171, - 160132, - 511196898, - 159975, - 511107040, - 159869, - 511041206, - 159640, - 510921971, - 159502, - 510853060, - 159354, - 510775790, - 159213, - 510700430, - 159088, - 510605710, - 158984, - 510526761, - 158888, - 510442802, - 158772, - 510355960, - 158621, - 510226265, - 158563, - 510176434, - 158429, - 510082618, - 158342, - 510011444, - 158263, - 509921420, - 158111, - 509801685, - 157989, - 509715028, - 157912, - 509648613, - 157797, - 509557904, - 157716, - 509488609, - 157636, - 509340447, - 157483, - 509306811, - 157326, - 509206168, - 157234, - 509133685, - 157121, - 509035655, - 157013, - 508946650, - 156941, - 508863960, - 156871, - 508789404, - 156793, - 508711857, - 156695, - 508610130, - 156601, - 508526016, - 156502, - 508444655, - 156401, - 508367539, - 156292, - 508258005, - 156215, - 508190224, - 156107, - 508103367, - 156008, - 508010559, - 155895, - 507910724, - 155826, - 507851807, - 155692, - 507738758, - 155592, - 507648685, - 155481, - 507554316, - 155383, - 507477510, - 155223, - 507356081, - 155153, - 507294247, - 155090, - 507231515, - 154957, - 507117273, - 154883, - 507056182, - 154751, - 506949594, - 154647, - 506865255, - 154577, - 506806204, - 154435, - 506683206, - 154349, - 506613279, - 154223, - 506516008, - 154117, - 506465039, - 153917, - 506319476, - 153884, - 506290215, - 153751, - 506205050, - 153631, - 506106721, - 153503, - 506018469, - 153402, - 505946361, - 153274, - 505863228, - 153127, - 505751377, - 153037, - 505690566, - 152887, - 505559848, - 152827, - 505514263, - 152690, - 505413481, - 152594, - 505337581, - 152520, - 505240290, - 152412, - 505167564, - 152297, - 505084633, - 152117, - 504950693, - 152026, - 504888570, - 151933, - 504828499, - 151807, - 504741883, - 151699, - 504636041, - 151564, - 504540239, - 151429, - 504433876, - 151356, - 504375424, - 151274, - 504305298, - 151137, - 504206017, - 151038, - 504131319, - 150898, - 504045408, - 150759, - 503939621, - 150647, - 503865556, - 150527, - 503766080, - 150416, - 503691508, - 150255, - 503574283, - 150180, - 503515977, - 150096, - 503440875, - 149967, - 503339219, - 149863, - 503262291, - 149760, - 503184970, - 149645, - 503084468, - 149501, - 502992855, - 149358, - 502894660, - 149248, - 502819636, - 149173, - 502749576, - 149043, - 502656335, - 148736, - 502548691, - 148423, - 502466627, - 148271, - 502405152, - 147991, - 502308606, - 147576, - 502200907, - 147404, - 502135444, - 147055, - 502022589, - 146913, - 501977240, - 146518, - 501859187, - 146295, - 501798690, - 145974, - 501689062, - 145628, - 501596458, - 145321, - 501509286, - 145093, - 501440384, - 144638, - 501299327, - 144547, - 501268965, - 144201, - 501186501, - 143913, - 501106658, - 143644, - 501019552, - 143401, - 500936950, - 143135, - 500841154, - 142790, - 500727687, - 142631, - 500670770, - 142253, - 500531071, - 142181, - 500505126, - 141766, - 500378440, - 141615, - 500322081, - 141339, - 500227722, - 140705, - 500015629, - 140498, - 499947647, - 140353, - 499895914, - 139994, - 499780611, - 139788, - 499713921, - 139530, - 499622483, - 139316, - 499557841, - 139031, - 499453257, - 138600, - 499310819, - 138436, - 499256118, - 138264, - 499203842, - 137942, - 499120341, - 137636, - 499009240, - 137427, - 498935742, - 137095, - 498840193, - 136833, - 498761400, - 136440, - 498643908, - 136230, - 498575630, - 135943, - 498478380, - 135800, - 498416961, - 135345, - 498264861, - 134962, - 498141639, - 134771, - 498086843, - 134397, - 497970246, - 134111, - 497889133, - 133834, - 497814082, - 133498, - 497703945, - 133218, - 497622659, - 132989, - 497558098, - 132302, - 497357771, - 131601, - 497137471, - 131212, - 497025502, - 130639, - 496912259, - 130428, - 496879495, - 129896, - 496728373, - 129739, - 496673819, - 129427, - 496566006, - 129280, - 496513084, - 129078, - 496444586, - 128807, - 496342310, - 128310, - 496177906, - 127855, - 496042590, - 127641, - 495958967, - 127550, - 495915808, - 127265, - 495820223, - 127062, - 495751396, - 126557, - 495582976, - 126178, - 495461796, - 125908, - 495360561, - 125766, - 495298010, - 125449, - 495191180, - 125281, - 495131939, - 124929, - 495018560, - 124769, - 494972239, - 124277, - 494840890, - 124137, - 494800287, - 123835, - 494695752, - 123592, - 494631574, - 123317, - 494534068, - 123083, - 494449609, - 122615, - 494312545, - 122496, - 494273081, - 122182, - 494167710, - 122054, - 494109203, - 121599, - 493960233, - 121494, - 493925349, - 121186, - 493831002, - 120900, - 493736863, - 120672, - 493650416, - 120522, - 493580414, - 120115, - 493433769, - 119934, - 493364447, - 119664, - 493275212, - 119340, - 493153551, - 119125, - 493075483, - 118779, - 492951649, - 118589, - 492846991, - 118512, - 492801279, - 118214, - 492685936, - 118037, - 492611074, - 117876, - 492536755, - 117576, - 492422007, - 117475, - 492381712, - 117248, - 492291822, - 116963, - 492170446, - 116844, - 492116747, - 116653, - 492030077, - 116374, - 491933114, - 116208, - 491868145, - 115985, - 491772951, - 115714, - 491670043, - 115461, - 491583901, - 115208, - 491487913, - 115025, - 491401969, - 114854, - 491323276, - 114642, - 491239109, - 114367, - 491138115, - 114117, - 491037967, - 113995, - 490987947, - 113715, - 490886466, - 113527, - 490817127, - 113104, - 490661091, - 113082, - 490651387, - 112595, - 490455062, - 112418, - 490396972, - 111992, - 490225454, - 111676, - 490100803, - 111448, - 490012709, - 111075, - 489878754, - 110645, - 489746370, - 110497, - 489698393, - 110196, - 489594808, - 109685, - 489414160, - 109448, - 489323715, - 109224, - 489242309, - 108954, - 489185383, - 108452, - 489076950, - 108162, - 488986558, - 107957, - 488918621, - 107688, - 488820833, - 107273, - 488682467, - 107214, - 488652932, - 107015, - 488576247, - 106775, - 488485761, - 106334, - 488321541, - 106100, - 488224066, - 105865, - 488127792, - 105690, - 488052085, - 105387, - 487965005, - 105186, - 487884463, - 104926, - 487794514, - 104639, - 487708748, - 104327, - 487603448, - 104114, - 487533299, - 103800, - 487439653, - 103396, - 487358631, - 103119, - 487273497, - 102908, - 487194191, - 102521, - 487067898, - 102387, - 487027884, - 101911, - 486864213, - 101812, - 486841812, - 101599, - 486763345, - 101241, - 486641080, - 100943, - 486563557, - 100479, - 486413492, - 100212, - 486334997, - 99905, - 486218562, - 99687, - 486147902, - 99408, - 486049713, - 99201, - 485980556, - 98983, - 485895036, - 98726, - 485796747, - 98444, - 485683413, - 98119, - 485563306, - 97803, - 485450069, - 97549, - 485351906, - 97300, - 485270978, - 97137, - 485208303, - 96915, - 485127447, - 96607, - 485000061, - 96495, - 484956427, - 96202, - 484848388, - 96010, - 484782581, - 95718, - 484682644, - 95409, - 484584667, - 95186, - 484510557, - 94864, - 484412693, - 94572, - 484337709, - 94221, - 484230715, - 93976, - 484145983, - 93823, - 484092260, - 93258, - 483886756, - 92627, - 483705661, - 92359, - 483613764, - 92251, - 483570743, - 91875, - 483450526, - 91693, - 483393667, - 91424, - 483299691, - 91151, - 483201476, - 90941, - 483120621, - 90601, - 483015751, - 90468, - 482969383, - 90063, - 482854835, - 89722, - 482776952, - 89556, - 482676318, - 89432, - 482618357, - 89184, - 482521172, - 88950, - 482442403, - 88678, - 482349644, - 88433, - 482268181, - 88160, - 482166998, - 87909, - 482087086, - 87554, - 481964514, - 87397, - 481908582, - 86946, - 481753031, - 86599, - 481620558, - 86447, - 481551418, - 86301, - 481480172, - 86110, - 481390359, - 85905, - 481318967, - 85671, - 481219406, - 85469, - 481137059, - 85250, - 481039830, - 85033, - 480951209, - 84862, - 480880931, - 84640, - 480785743, - 84464, - 480707005, - 84216, - 480607104, - 84017, - 480534445, - 83718, - 480416725, - 83570, - 480359495, - 83372, - 480290040, - 83096, - 480186770, - 82864, - 480100889, - 82506, - 479982932, - 82380, - 479939283, - 82057, - 479829971, - 81792, - 479741834, - 81599, - 479667829, - 81341, - 479561147, - 81188, - 479504407, - 80912, - 479403374, - 80651, - 479334685, - 80277, - 479224862, - 79872, - 479094709, - 79822, - 479072573, - 79601, - 478993350, - 79342, - 478890415, - 79144, - 478809270, - 78966, - 478725402, - 78727, - 478614651, - 78591, - 478560822, - 78403, - 478468361, - 78194, - 478382835, - 77886, - 478269534, - 77505, - 478106042, - 77254, - 478008456, - 77126, - 477953157, - 76932, - 477862594, - 76696, - 477773713, - 76487, - 477693006, - 76172, - 477568499, - 76066, - 477523549, - 75774, - 477409193, - 75613, - 477335019, - 75324, - 477216116, - 75216, - 477165873, - 75021, - 477088820, - 74799, - 476992878, - 74412, - 476826146, - 74051, - 476700192, - 73929, - 476652183, - 73565, - 476535248, - 73382, - 476478094, - 73159, - 476401526, - 72908, - 476291039, - 72744, - 476227739, - 72518, - 476123918, - 72301, - 476042333, - 72009, - 475930330, - 71828, - 475863086, - 71587, - 475752421, - 71477, - 475711248, - 71144, - 475587316, - 71047, - 475515379, - 70559, - 475381884, - 70322, - 475306509, - 70145, - 475249078, - 69911, - 475187155, - 69475, - 475078441, - 69162, - 475009312, - 68921, - 474928888, - 68614, - 474831404, - 68380, - 474745131, - 68155, - 474669162, - 67676, - 474442919, - 67554, - 474387701, - 67336, - 474301211, - 67149, - 474215729, - 66925, - 474141819, - 66626, - 474043125, - 66127, - 473843707, - 66034, - 473808633, - 65654, - 473663746, - 65566, - 473615980, - 65366, - 473529278, - 65039, - 473403362, - 64919, - 473361754, - 64654, - 473251253, - 64483, - 473189249, - 64226, - 473070147, - 64084, - 473003621, - 63871, - 472900160, - 63753, - 472845370, - 63560, - 472768973, - 63318, - 472648967, - 63204, - 472597673, - 63027, - 472497041, - 62866, - 472419539, - 62559, - 472285025, - 62483, - 472246102, - 62332, - 472164665, - 62138, - 472078426, - 61864, - 471954385, - 61760, - 471907774, - 61586, - 471810716, - 61390, - 471715961, - 61240, - 471638208, - 60963, - 471509966, - 60795, - 471439244, - 60637, - 471390975, - 60263, - 471222915, - 60236, - 471200877, - 60057, - 471096057, - 59896, - 471020858, - 59677, - 470914870, - 59543, - 470844533, - 59378, - 470754210, - 59211, - 470667341, - 59102, - 470609769, - 58761, - 470425432, - 58547, - 470326013, - 58445, - 470252575, - 58274, - 470163305, - 58092, - 470081518, - 57828, - 469963390, - 57720, - 469912434, - 57483, - 469804314, - 57255, - 469682560, - 57200, - 469649332, - 57014, - 469548453, - 56877, - 469483479, - 56689, - 469391840, - 56466, - 469297576, - 56109, - 469183235, - 55924, - 469081300, - 55869, - 469054063, - 55722, - 468971914, - 55473, - 468844959, - 55274, - 468733403, - 55159, - 468678773, - 54918, - 468551248, - 54867, - 468516737, - 54647, - 468409467, - 54551, - 468356849, - 54295, - 468230881, - 54182, - 468166628, - 54034, - 468099075, - 53861, - 468015101, - 53676, - 467915058, - 53502, - 467823424, - 53267, - 467720639, - 53071, - 467637490, - 52927, - 467562170, - 52775, - 467491646, - 52509, - 467385080, - 52307, - 467320828, - 51788, - 467215404, - 51397, - 467135938, - 51135, - 467014610, - 51069, - 466971253, - 50913, - 466878413, - 50729, - 466765499, - 50637, - 466711317, - 50349, - 466564810, - 50041, - 466428859, - 49887, - 466360364, - 49727, - 466283532, - 49530, - 466169030, - 49417, - 466105490, - 49258, - 466025996, - 49027, - 465901712, - 48728, - 465743288, - 48555, - 465667766, - 48357, - 465590891, - 48170, - 465506493, - 47995, - 465415472, - 47767, - 465303312, - 47605, - 465210198, - 47326, - 465068776, - 47050, - 464919237, - 47017, - 464895456, - 46817, - 464805650, - 46500, - 464693368, - 46401, - 464634825, - 46233, - 464554908, - 46056, - 464458650, - 45912, - 464390533, - 45739, - 464289118, - 45443, - 464149247, - 45251, - 464057834, - 45155, - 464017453, - 45020, - 463934984, - 44846, - 463850546, - 44573, - 463700239, - 44423, - 463614693, - 44041, - 463424531, - 43723, - 463256157, - 43522, - 463148007, - 43402, - 463078146, - 43172, - 462967460, - 42990, - 462868811, - 42808, - 462768975, - 42776, - 462751007, - 42603, - 462660006, - 42196, - 462489325, - 42005, - 462405285, - 41828, - 462317050, - 41649, - 462225134, - 41358, - 462122366, - 41011, - 461927779, - 40899, - 461874170, - 40709, - 461755731, - 40638, - 461707912, - 40493, - 461628679, - 40327, - 461508954, - 40172, - 461434456, - 40027, - 461357008, - 39891, - 461268328, - 39670, - 461154109, - 39302, - 460956334, - 39185, - 460875531, - 39106, - 460834490, - 38854, - 460715957, - 38623, - 460596236, - 38614, - 460588599, - 38401, - 460482441, - 38124, - 460360881, - 37983, - 460276067, - 37897, - 460215537, - 37768, - 460159165, - 37567, - 460052349, - 37287, - 459915954, - 37267, - 459897593, - 36819, - 459640345, - 36460, - 459486023, - 36412, - 459461859, - 35905, - 459259055, - 35765, - 459193240, - 35411, - 459053858, - 35244, - 458964201, - 35214, - 458945774, - 35009, - 458841717, - 34629, - 458659536, - 34393, - 458502105, - 34230, - 458406893, - 34101, - 458340882, - 33921, - 458247818, - 33703, - 458110370, - 33652, - 458082289, - 33456, - 457970789, - 33284, - 457837764, - 33271, - 457810883, - 33188, - 457716546, - 32962, - 457502650, - 32909, - 457432173, - 32843, - 457367482, - 32696, - 457264717, - 32630, - 457197753, - 32550, - 457116268, - 32462, - 457036857, - 32297, - 456938676, - 32204, - 456837384, - 32048, - 456710442, - 31934, - 456601381, - 31824, - 456502939, - 31745, - 456443272, - 31579, - 456343786, - 31346, - 456165455, - 31213, - 456062264, - 30975, - 455903060, - 30882, - 455837536, - 30643, - 455686141, - 30604, - 455659547, - 30428, - 455531408, - 30356, - 455490508, - 30217, - 455383905, - 30017, - 455213056, - 29941, - 455130781, - 29741, - 454973693, - 29657, - 454884015, - 29554, - 454767357, - 29494, - 454712961, - 29385, - 454612221, - 29310, - 454532391, - 29162, - 454400672, - 29096, - 454360741, - 28989, - 454267397, - 28878, - 454154650, - 28801, - 454088736, - 28714, - 454008792, - 28607, - 453938853, - 28450, - 453844346, - 28322, - 453717416, - 28253, - 453642460, - 28185, - 453580910, - 28036, - 453448891, - 27987, - 453391599, - 27909, - 453318897, - 27709, - 453174124, - 27671, - 453143039, - 27512, - 453029638, - 27376, - 452932075, - 27329, - 452882774, - 27244, - 452806168, - 27166, - 452729513, - 26965, - 452581072, - 26852, - 452527743, - 26784, - 452468344, - 26667, - 452361409, - 26575, - 452286589, - 26463, - 452202523, - 26317, - 452087018, - 26250, - 452030977, - 26132, - 451922253, - 26046, - 451848137, - 25883, - 451769235, - 25711, - 451652547, - 25606, - 451584582, - 25462, - 451485213, - 25324, - 451373816, - 25267, - 451334020, - 25101, - 451230326, - 24915, - 451130741, - 24847, - 451084394, - 24677, - 450953724, - 24587, - 450891283, - 24413, - 450819153, - 24217, - 450714789, - 24095, - 450654954, - 23859, - 450553366, - 23726, - 450474598, - 23627, - 450395644, - 23504, - 450301166, - 23352, - 450208933, - 23219, - 450123380, - 23100, - 450044465, - 22994, - 449961548, - 22862, - 449872554, - 22755, - 449786985, - 22609, - 449676837, - 22517, - 449614142, - 22372, - 449512307, - 22257, - 449433207, - 22093, - 449322895, - 21991, - 449244181, - 21891, - 449169248, - 21778, - 449090268, - 21630, - 448976571, - 21539, - 448914170, - 21422, - 448826789, - 21277, - 448693931, - 21189, - 448616532, - 20982, - 448424645, - 20870, - 448332554, - 20849, - 448309742, - 20755, - 448230480, - 20656, - 448145739, - 20546, - 448057135, - 20475, - 447964334, - 20362, - 447791777, - 20287, - 447684308, - 20210, - 447588830, - 20133, - 447505309, - 20098, - 447448870, - 20036, - 447355006, - 19939, - 447234043, - 19881, - 447128900, - 19867, - 447109686, - 19764, - 446955553, - 19737, - 446915167, - 19670, - 446819531, - 19637, - 446763263, - 19582, - 446680407, - 19502, - 446578445, - 19431, - 446508796, - 19356, - 446407469, - 19260, - 446281530, - 19146, - 446142958, - 19052, - 446037259, - 18999, - 445960237, - 18941, - 445894883, - 18827, - 445777961, - 18724, - 445681870, - 18678, - 445637963, - 18554, - 445513861, - 18502, - 445456504, - 18441, - 445381629, - 18291, - 445202937, - 18218, - 445111857, - 18139, - 445022475, - 18052, - 444931703, - 17983, - 444852826, - 17905, - 444763288, - 17839, - 444684910, - 17730, - 444564551, - 17655, - 444497675, - 17582, - 444420848, - 17434, - 444270184, - 17428, - 444256105, - 17272, - 444082022, - 17207, - 444000988, - 17044, - 443816230, - 16973, - 443725378, - 16887, - 443630756, - 16801, - 443528209, - 16781, - 443479623, - 16681, - 443371481, - 16557, - 443280793, - 16489, - 443215428, - 16416, - 443135198, - 16350, - 443052371, - 16268, - 442965402, - 16164, - 442848667, - 16080, - 442764015, - 15941, - 442637638, - 15834, - 442522164, - 15714, - 442407170, - 15590, - 442297667, - 15511, - 442226060, - 15458, - 442177971, - 15294, - 442059355, - 15188, - 441981233, - 15133, - 441884655, - 15120, - 441831888, - 15056, - 441688131, - 15026, - 441592379, - 15021, - 441577521, - 14990, - 441479069, - 14959, - 441396115, - 14924, - 441310173, - 14872, - 441216075, - 14807, - 441097094, - 14793, - 441051856, - 14765, - 440943937, - 14746, - 440886894, - 14699, - 440779608, - 14648, - 440627316, - 14592, - 440448605, - 14531, - 440273934, - 14503, - 440196023, - 14454, - 440074243, - 14414, - 439961132, - 14398, - 439901387, - 14376, - 439821921, - 14353, - 439747239, - 14299, - 439596861, - 14283, - 439548372, - 14234, - 439455460, - 14213, - 439395034, - 14173, - 439291609, - 14129, - 439160886, - 14108, - 439066815, - 14068, - 438937594, - 14052, - 438898841, - 14007, - 438787713, - 13973, - 438683493, - 13956, - 438643166, - 13903, - 438487290, - 13894, - 438463422, - 13869, - 438364772, - 13825, - 438297016, - 13755, - 438194682, - 13732, - 438124186, - 13690, - 438027787, - 13669, - 437953483, - 13609, - 437803665, - 13596, - 437771305, - 13551, - 437666554, - 13527, - 437574251, - 13502, - 437493761, - 13479, - 437420395, - 13443, - 437338282, - 13409, - 437248323, - 13374, - 437139091, - 13352, - 437062691, - 13331, - 436985837, - 13306, - 436912779, - 13270, - 436817314, - 13223, - 436646763, - 13189, - 436555145, - 13152, - 436472492, - 13095, - 436318650, - 13081, - 436272405, - 13057, - 436212968, - 13029, - 436125907, - 12974, - 435968519, - 12930, - 435795814, - 12925, - 435777104, - 12893, - 435688944, - 12846, - 435587991, - 12819, - 435517221, - 12784, - 435429839, - 12760, - 435336799, - 12735, - 435267111, - 12709, - 435185291, - 12672, - 435100033, - 12633, - 435016509, - 12599, - 434913452, - 12566, - 434808971, - 12493, - 434614546, - 12478, - 434567393, - 12434, - 434478167, - 12406, - 434408832, - 12363, - 434259832, - 12348, - 434221030, - 12324, - 434150749, - 12266, - 434037032, - 12155, - 433824619, - 12152, - 433807051, - 12104, - 433681826, - 12075, - 433608463, - 12049, - 433537601, - 12028, - 433458072, - 12000, - 433373719, - 11951, - 433260041, - 11925, - 433176155, - 11897, - 433093787, - 11878, - 433029937, - 11827, - 432925793, - 11772, - 432740967, - 11734, - 432665774, - 11691, - 432541805, - 11679, - 432506373, - 11651, - 432418244, - 11626, - 432296741, - 11614, - 432230344, - 11580, - 432153504, - 11554, - 432062833, - 11523, - 431990976, - 11470, - 431870368, - 11439, - 431771033, - 11409, - 431678048, - 11392, - 431640453, - 11361, - 431549958, - 11326, - 431473248, - 11291, - 431387351, - 11261, - 431296243, - 11232, - 431205869, - 11203, - 431122943, - 11172, - 431041031, - 11109, - 430908880, - 11092, - 430858127, - 11056, - 430766098, - 11033, - 430681854, - 11010, - 430582145, - 10961, - 430377783, - 10937, - 430330298, - 10909, - 430241239, - 10891, - 430152310, - 10865, - 430065073, - 10847, - 429987747, - 10811, - 429856349, - 10806, - 429830074, - 10751, - 429708026, - 10720, - 429609427, - 10666, - 429514635, - 10649, - 429478657, - 10613, - 429377485, - 10579, - 429285238, - 10556, - 429216924, - 10513, - 429123768, - 10462, - 429007810, - 10428, - 428908780, - 10419, - 428879870, - 10385, - 428778434, - 10343, - 428631607, - 10328, - 428585910, - 10293, - 428487948, - 10283, - 428449869, - 10239, - 428331334, - 10223, - 428257857, - 10206, - 428186109, - 10182, - 428088044, - 10155, - 428012970, - 10118, - 427885248, - 10105, - 427835825, - 10076, - 427731807, - 10060, - 427669784, - 9972, - 427352445, - 9946, - 427257399, - 9932, - 427205043, - 9885, - 427007542, - 9869, - 426943492, - 9837, - 426841179, - 9823, - 426793780, - 9798, - 426692794, - 9774, - 426581001, - 9756, - 426475137, - 9738, - 426403393, - 9731, - 426370586, - 9713, - 426268686, - 9667, - 426078713, - 9645, - 426006680, - 9612, - 425887003, - 9579, - 425820784, - 9574, - 425682843, - 9545, - 425571362, - 9529, - 425503022, - 9492, - 425403758, - 9470, - 425269489, - 9465, - 425243973, - 9443, - 425157665, - 9426, - 425072626, - 9408, - 424979388, - 9382, - 424883376, - 9364, - 424803201, - 9344, - 424726204, - 9316, - 424641264, - 9291, - 424562228, - 9246, - 424355552, - 9233, - 424301686, - 9198, - 424129269, - 9177, - 424040960, - 9109, - 423843356, - 9090, - 423769250, - 9058, - 423687825, - 9031, - 423587562, - 8992, - 423483035, - 8976, - 423422500, - 8955, - 423352983, - 8917, - 423226292, - 8896, - 423150853, - 8858, - 423026842, - 8851, - 422998708, - 8813, - 422871502, - 8803, - 422814974, - 8779, - 422742587, - 8746, - 422630092, - 8728, - 422569832, - 8701, - 422481890, - 8677, - 422382514, - 8658, - 422283972, - 8639, - 422206043, - 8615, - 422128737, - 8557, - 421903211, - 8538, - 421838013, - 8515, - 421759065, - 8501, - 421709068, - 8471, - 421611823, - 8428, - 421478509, - 8412, - 421411006, - 8394, - 421339176, - 8370, - 421252646, - 8353, - 421189411, - 8332, - 421103719, - 8314, - 421017480, - 8290, - 420922272, - 8259, - 420827520, - 8232, - 420734393, - 8194, - 420595482, - 8188, - 420583225, - 8159, - 420499634, - 8142, - 420408396, - 8113, - 420312628, - 8089, - 420238041, - 8063, - 420152110, - 8032, - 420006542, - 8025, - 419975905, - 7963, - 419800975, - 7913, - 419627182, - 7888, - 419539819, - 7865, - 419449645, - 7838, - 419346613, - 7823, - 419291930, - 7793, - 419181850, - 7765, - 419079499, - 7736, - 418984973, - 7720, - 418915315, - 7686, - 418783339, - 7680, - 418762333, - 7642, - 418637510, - 7614, - 418570313, - 7591, - 418502014, - 7568, - 418420784, - 7531, - 418334387, - 7513, - 418236917, - 7493, - 418126474, - 7484, - 418065143, - 7454, - 417973359, - 7435, - 417907226, - 7415, - 417815173, - 7385, - 417725112, - 7360, - 417629216, - 7333, - 417543202, - 7311, - 417465854, - 7271, - 417370723, - 7242, - 417258647, - 7229, - 417203451, - 7203, - 417100609, - 7178, - 417036624, - 7153, - 416945210, - 7071, - 416702353, - 7068, - 416687836, - 7008, - 416485542, - 6992, - 416427380, - 6948, - 416333576, - 6932, - 416256106, - 6879, - 416063744, - 6844, - 415980369, - 6832, - 415897620, - 6807, - 415808608, - 6779, - 415742609, - 6746, - 415633903, - 6727, - 415567694, - 6676, - 415379694, - 6654, - 415306117, - 6631, - 415213580, - 6576, - 415057156, - 6547, - 414967547, - 6522, - 414881219, - 6484, - 414789422, - 6457, - 414682768, - 6441, - 414627151, - 6401, - 414518090, - 6372, - 414446495, - 6357, - 414365868, - 6317, - 414225606, - 6301, - 414164027, - 6279, - 414064304, - 6252, - 413996639, - 6205, - 413838485, - 6177, - 413747342, - 6148, - 413655624, - 6110, - 413531585, - 6079, - 413406139, - 6061, - 413319920, - 5992, - 413054627, - 5963, - 412982084, - 5921, - 412832430, - 5890, - 412705255, - 5866, - 412632468, - 5832, - 412522108, - 5798, - 412392349, - 5776, - 412319040, - 5774, - 412275700, - 5749, - 412187330, - 5729, - 412089566, - 5699, - 412004913, - 5680, - 411913600, - 5659, - 411820021, - 5621, - 411662515, - 5594, - 411600568, - 5559, - 411515385, - 5536, - 411400031, - 5510, - 411321090, - 5466, - 411175523, - 5444, - 411077863, - 5370, - 410891758, - 5341, - 410787055, - 5306, - 410686415, - 5289, - 410623612, - 5269, - 410540047, - 5238, - 410458764, - 5201, - 410357177, - 5178, - 410300179, - 5151, - 410191173, - 5117, - 410125666, - 5086, - 410033979, - 5056, - 409949511, - 5030, - 409872627, - 4994, - 409784906, - 4947, - 409646179, - 4876, - 409454205, - 4868, - 409424277, - 4839, - 409319060, - 4822, - 409262501, - 4785, - 409132483, - 4763, - 409078438, - 4725, - 408960440, - 4707, - 408896368, - 4676, - 408799292, - 4654, - 408733452, - 4635, - 408664608, - 4606, - 408577944, - 4582, - 408469638, - 4547, - 408346523, - 4540, - 408313391, - 4514, - 408209077, - 4495, - 408145065, - 4469, - 408036746, - 4443, - 407944857, - 4404, - 407821200, - 4401, - 407794654, - 4376, - 407706767, - 4324, - 407587531, - 4305, - 407518511, - 4271, - 407426796, - 4252, - 407355650, - 4220, - 407242830, - 4192, - 407162279, - 4158, - 407072655, - 4138, - 407009123, - 4114, - 406922818, - 4090, - 406829908, - 4053, - 406764370, - 4009, - 406632679, - 3975, - 406532041, - 3941, - 406435583, - 3936, - 406416272, - 3898, - 406307971, - 3853, - 406205940, - 3831, - 406157466, - 3783, - 406044007, - 3750, - 405955573, - 3719, - 405894332, - 3672, - 405808616, - 3571, - 405606547, - 3517, - 405480111, - 3512, - 405468189, - 3461, - 405329271, - 3446, - 405278771, - 3412, - 405197093, - 3374, - 405115159, - 3339, - 405034183, - 3318, - 404937077, - 3293, - 404822249, - 3279, - 404774044, - 3256, - 404680234, - 3225, - 404560852, - 3214, - 404486222, - 3185, - 404381691, - 3171, - 404334388, - 3149, - 404231816, - 3121, - 404072691, - 3100, - 403953130, - 3079, - 403852731, - 3074, - 403822642, - 3040, - 403713006, - 3020, - 403654079, - 2995, - 403566032, - 2968, - 403469613, - 2948, - 403385644, - 2927, - 403293488, - 2904, - 403180107, - 2889, - 403122968, - 2860, - 403025692, - 2844, - 402925313, - 2818, - 402822193, - 2806, - 402757959, - 2778, - 402608250, - 2758, - 402524210, - 2720, - 402431294, - 2673, - 402322565, - 2646, - 402270583, - 2596, - 402184523, - 2551, - 402071287, - 2499, - 401983500, - 2465, - 401917793, - 2443, - 401831201, - 2419, - 401746688, - 2392, - 401665342, - 2336, - 401456675, - 2322, - 401401765, - 2297, - 401321379, - 2240, - 401227782, - 2223, - 401123893, - 2203, - 401059039, - 2172, - 400971770, - 2140, - 400883376, - 2016, - 400799995, - 1919, - 400712363, - 1728, - 400576264, - 1652, - 400521772, - 1518, - 400440870, - 1402, - 400361374, - 1275, - 400267723, - 1183, - 400135645, - 1153, - 400103570, - 1058, - 400017067, - 965, - 399909958, - 870, - 399789775, - 814, - 399763330, - 712, - 399665968, - 634, - 399566915, - 568, - 399499167, - 539, - 399324708, - 516, - 399211657, - 508, - 399160094, - 482, - 399069408, - 394, - 398745083, - 365, - 398626196, - 326, - 398350430, - 315, - 398188766, - 304, - 398116766, - 272, - 397948198, - 249, - 397745016, - 236, - 397650343, - 233, - 397605695, - 217, - 397507017, - 183, - 397370524, - 182, - 397341406, - 157, - 396922460, - 156, - 396882366, - 147, - 396803779, - 142, - 396701690, - 133, - 396600604, - 91, - 395978376, - 87, - 395943246, - 81, - 395641605, - 75, - 395354126, - 64, - 394617939, - 59, - 394471174, - 57, - 394347239, - 50, - 394055167, - 47, - 393973444, - 35, - 393873324, - 31, - 393761769, - 30, - 393699855, - 28, - 393610932, - 23, - 393432343, - 15, - 393107867, - 4, - 392813448, - 1, - 392753103 -] \ No newline at end of file diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/GreasyFork\347\224\250\346\210\267\346\263\250\345\206\214\346\227\266\351\227\264.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/GreasyFork\347\224\250\346\210\267\346\263\250\345\206\214\346\227\266\351\227\264.user.js" deleted file mode 100644 index 54473b3e4..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/GreasyFork\347\224\250\346\210\267\346\263\250\345\206\214\346\227\266\351\227\264.user.js" +++ /dev/null @@ -1,244 +0,0 @@ -// ==UserScript== -// @name 显示Greasyfork用户注册时间,识别恶意评论 -// @name:zh-CN 显示Greasyfork用户注册时间,识别恶意评论 -// @name:zh-TW 顯示Greasyfork用戶註冊時間,識別惡意評論 -// @name:en Display GreasyFork user registration time (presumed) -// @name:ja GreasyForkのユーザー登録時刻を表示(推定) -// @name:ru Отображение времени регистрации пользователя GreasyFork (предположительно) -// @name:kr GreasyFork 사용자 등록 시간 표시(추정) -// @namespace yysk.org -// @icon https://www.google.com/s2/favicons?sz=64&domain=greasyfork.org -// @version 1.0.8 -// @author yysk.org -// @match *://greasyfork.org/* -// @match *://sleazyfork.org/* -// @match http://127.0.0.1:5500/* -// @require https://unpkg.com/jquery@3.6.0/dist/jquery.min.js -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_xmlhttpRequest -// @description 如果你的脚本干涉了某些人的利益,收到恶意差评并不意外。恶意差评有两个特点,一是账号通常新注册,二是注册后不久就会给差评,且基本不会有后续活动。本脚本根据greasyfork用户ID为连续自然数的特点,推测评论者的注册时间,帮你识别恶意评论,举报不要手软。 -// @description:zh-CN 如果你的脚本干涉了某些人的利益,收到恶意差评并不意外。恶意差评有两个特点,一是账号通常新注册,二是注册后不久就会给差评,且基本不会有后续活动。本脚本根据greasyfork用户ID为连续自然数的特点,推测评论者的注册时间,帮你识别恶意评论,举报不要手软。 -// @description:zh-TW 如果你的腳本干涉了某些人的利益,收到惡意差評並不意外。惡意差評有兩個特點,一是賬號通常新註冊,二是註冊後不久就會給差評,且基本不會有後續活動。本腳本根據greasyfork用戶ID爲連續自然數的特點,推測評論者的註冊時間,幫你識別惡意評論,舉報不要手軟。 -// @description:en Display GreasyFork user registration time (presumed). This script predicts the registration time of the commenter according to the greasyfork user ID is a continuous natural number. -// @description:ja GreasyForkのユーザー登録時刻を表示(推定). このスクリプトは greasyfork のユーザー ID が連続する自然数であることから、コメント投稿者の登録時間を予測します。 -// @description:ru Отображение времени регистрации пользователя GreasyFork (предположительно). Этот скрипт предсказывает время регистрации комментатора по идентификатору пользователя greasyfork — непрерывное натуральное число. -// @description:kr GreasyFork 사용자 등록 시간 표시(추정). 이 스크립트는 greasyfork 사용자 ID가 연속적인 자연수에 따라 댓글 작성자의 등록 시간을 예측합니다. -// @license Copyright yysk.org -// @downloadURL https://update.greasyfork.org/scripts/450603/%E6%98%BE%E7%A4%BAGreasyfork%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C%E6%97%B6%E9%97%B4%EF%BC%8C%E8%AF%86%E5%88%AB%E6%81%B6%E6%84%8F%E8%AF%84%E8%AE%BA.user.js -// @updateURL https://update.greasyfork.org/scripts/450603/%E6%98%BE%E7%A4%BAGreasyfork%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C%E6%97%B6%E9%97%B4%EF%BC%8C%E8%AF%86%E5%88%AB%E6%81%B6%E6%84%8F%E8%AF%84%E8%AE%BA.meta.js -// ==/UserScript== -/* jslint esversion: 6 */ -/*globals jQuery,db2 */ -(function () { - 'use strict' - const now = new Date().getTime() - const interval = 3000 - const billion = 1000000000 - var avggap = 3600 * 24 / 400 - var db - var url = "http://127.0.0.1:5500/%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC/GreasyFork/1.json" - var xhr = new XMLHttpRequest() - xhr.open('GET', url, false) - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 300) { - db = JSON.parse(xhr.responseText) - - } else { - } - } - xhr.onerror = function () { - } - xhr.send() - //var db = [950796,661467770,950383,661365665]; - var lang = document.querySelector('html').lang.toLowerCase() || navigator.language.toLowerCase() - if (!["en", "zh-cn", "zh-tw", "ja", "ru", "kr"].includes(lang)) lang = "en" - const i18n = { - en: { - title: "presumed registration time", - prefix: "R", - }, - "zh-cn": { - title: "推测的注册时间", - prefix: "注", - }, - "zh-tw": { - title: "推測的註冊時間", - prefix: "注", - }, - ja: { - title: "推定登録時間", - prefix: "R", - }, - ru: { - title: "Предполагаемое время регистрации", - prefix: "R", - }, - kr: { - title: "예상 등록 시간", - prefix: "R", - }, - } - const title = i18n[lang].title - const prefix = i18n[lang].prefix - function ts2dt(ts) { - - return new Date(ts * 1000).toISOString() - } - - function genregtime(uid) { - var uid1 - var uid2 - var ts1 - var ts2 - var ts - // console.log(db) // 输出 db 的内容 - if (uid >= db[0]) { - ts = db[1] + (uid - db[0]) * avggap + billion - //console.log(avggap, uid - db[0], (ts - db[1] - billion) / 3600); - if (ts * 1000 > maxts) ts = maxts / 1000 - console.log("ts * 1000 > maxts", ts) - return ts2dt(ts) - } - for (var i = 0; i < db.length; i += 2) { - uid1 = db[i] - ts1 = db[i + 1] - if (uid >= uid1) { - ts = ts1 + (ts2 - ts1) / (uid2 - uid1) * (uid - uid1) + billion - console.log("uid >= uid1", ts) - return ts2dt(ts) - } - uid2 = uid1 - ts2 = ts1 - } - } - - function gensnippet(regtime, uid) { - return `${prefix} ${regtime.split("T")[0]}` - } - function run() { - //console.log(`${db.length / 2} uid records in db, max uid is ${db[0]} @ ${db[1]}`); - // return - var regtime - var maxuid = 0 - const uids = document.documentElement.innerHTML.matchAll(/\/users\/(\d+)/g) - for (const uid of uids) { - - if (parseInt(uid[1]) > maxuid) maxuid = parseInt(uid[1]) - } - // 如果最大uid超出了db中所记录,假设页面上最大的uid为刚注册,并依此设定超出数据库范围的uid的注册间隔;如果算得的gap显然不合理,则沿用初始值 - if (maxuid >= db[0]) { - avggap = (maxts / 1000 - billion - db[1]) / (maxuid - db[0]) - } - console.log(avggap) - if (!window.location.href.match(/(greasyfork|sleazyfork).org\/\w+-\w+\/users(\?page=1)?$/) && avggap > 216) avggap = 216 - if (window.location.href.match(/(greasyfork|sleazyfork).org\/\w+-\w+\/users\/\d+(-[^/]*)?$/) && jQuery("section#about-user > span.regtime").length === 0) { - let uid = jQuery("section#about-user > a.report-link").attr("href").match(/item_id=(\d+)/)[1] - - regtime = genregtime(uid) - jQuery("section#about-user > h2").after(gensnippet(regtime, uid)) - } - jQuery("a.user-link, dd.script-list-author > span > a, dd.script-show-author > span > a, table.log-table > tbody > tr > td > a, i:contains('Deleted user ')").each(function (i, el) { - var lastele = jQuery(el).parent().children().last() - if (lastele.attr("class") === "regtime") return - var m = (el.tagName === "A") ? jQuery(el).attr("href").match(/\/users\/(\d+)/) : jQuery(el).text().match(/Deleted user (\d+)/) - if (!m) return - regtime = genregtime(m[1]) - lastele.after(gensnippet(regtime, m[1])) - }) - return run - } - var maxts = 0 - for (const datetime of document.documentElement.innerHTML.matchAll(/ maxts) maxts = ts - } - console.log("maxts: " + maxts) - if (maxts === 0) maxts = now - if (new Date().getTime() - GM_getValue("utime", 0) <= 86400000) { - console.log("skip db2 update") - db = GM_getValue("db2", []).concat(db) - setInterval(run(), interval) - } else { - GM_xmlhttpRequest({ - method: "GET", - url: `http://127.0.0.1:5500/%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC/GreasyFork/db.json`, - onload(res) { - console.log("db2 updated") - GM_setValue("utime", now) - var db2 = JSON.parse(res.responseText) - GM_setValue("db2", db2) - db = db2.concat(db) - setInterval(run(), interval) - }, - onerror(res) { - console.error("db2 update failed") - db = GM_getValue("db2", []).concat(db) - setInterval(run(), interval) - }, - onabort(res) { - console.warn("db2 update abort") - db = GM_getValue("db2", []).concat(db) - setInterval(run(), interval) - }, - ontimeout(res) { - console.error("db2 update timeout") - db = GM_getValue("db2", []).concat(db) - setInterval(run(), interval) - }, - }) - } - //1359490 - var first_value = db[0] - - - var unixTimestamp = 0 - for (let first_value = 0; first_value <= 1359490; first_value += 100) { - // 调用 test 函数,传递 first_value + 100 - // test(first_value + 100) - - } - - console.log(unixTimestamp) - // 将 db 转换为 JSON 格式 - var json = JSON.stringify(db) - - // 创建一个下载链接并触发下载 - var blob = new Blob([json], { type: 'application/json' }) - var url = URL.createObjectURL(blob) - var a = document.createElement('a') - a.href = url - a.download = 'db.json' - document.body.appendChild(a) - // a.click() - document.body.removeChild(a) - URL.revokeObjectURL(url) - - function test(uid) { - var maxuid = 0 - // 如果最大uid超出了db中所记录,假设页面上最大的uid为刚注册,并依此设定超出数据库范围的uid的注册间隔;如果算得的gap显然不合理,则沿用初始值 - if (maxuid >= db[0]) { - avggap = (maxts / 1000 - billion - db[1]) / (maxuid - db[0]) - } - if (avggap > 216) avggap = 216 - - //console.log(genregtime(uid)) - // console.log(db) - var regtime = genregtime(uid) // 获取注册时间的 ISO 8601 格式字符串 - unixTimestamp = isoToUnix(regtime) - billion // 转换为 Unix 时间戳 - - console.log("减去:", unixTimestamp, regtime) - db = 加入(uid, unixTimestamp) - - - function isoToUnix(isoString) { - return Math.floor(new Date(isoString).getTime() / 1000) - } - } - function 加入(uid, unixTimestamp) { - console.log(unixTimestamp) - // 假设 db 是一个数组,我们将 uid 和 unixTimestamp 作为一个新元素加入到 db 中 - db.unshift(uid, unixTimestamp) - return db // 返回更新后的 db - } -})() diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/db.json" "b/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/db.json" deleted file mode 100644 index a4c94c336..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/db.json" +++ /dev/null @@ -1,1644 +0,0 @@ -[ - 1035800, - 677841607, - 1035700, - 677830615, - 1035600, - 677813562, - 1035500, - 677786620, - 1035400, - 677769301, - 1035300, - 677757935, - 1035200, - 677746362, - 1035100, - 677737166, - 1035000, - 677721948, - 1034900, - 677688874, - 1034800, - 677675116, - 1034700, - 677664759, - 1034600, - 677650336, - 1034500, - 677636319, - 1034400, - 677604978, - 1034300, - 677589081, - 1034200, - 677576315, - 1034100, - 677562058, - 1034000, - 677547321, - 1033900, - 677510019, - 1033800, - 677489626, - 1033700, - 677477640, - 1033600, - 677466107, - 1033500, - 677434108, - 1033400, - 677419383, - 1033300, - 677404585, - 1033200, - 677395693, - 1033100, - 677379921, - 1033000, - 677348499, - 1032900, - 677334132, - 1032800, - 677318822, - 1032700, - 677307587, - 1032600, - 677294280, - 1032500, - 677266765, - 1032400, - 677250553, - 1032300, - 677240848, - 1032200, - 677226925, - 1032100, - 677214185, - 1032000, - 677195809, - 1031900, - 677164830, - 1031800, - 677155213, - 1031700, - 677142974, - 1031600, - 677129208, - 1031500, - 677114084, - 1031400, - 677084172, - 1031300, - 677073190, - 1031200, - 677063052, - 1031100, - 677049131, - 1031000, - 677033633, - 1030900, - 677001661, - 1030800, - 676987797, - 1030700, - 676978029, - 1030600, - 676963828, - 1030500, - 676946927, - 1030400, - 676913040, - 1030300, - 676898398, - 1030200, - 676881106, - 1030100, - 676869809, - 1029900, - 676817541, - 1029800, - 676809397, - 1029700, - 676792856, - 1029600, - 676781291, - 1029500, - 676758300, - 1029400, - 676734328, - 1029300, - 676722935, - 1029200, - 676709375, - 1029100, - 676697314, - 1029000, - 676678940, - 1028900, - 676650774, - 1028800, - 676638538, - 1028700, - 676626424, - 1028600, - 676624129, - 1028500, - 676623098, - 1028400, - 676574905, - 1028300, - 676560413, - 1028200, - 676550644, - 1028100, - 676542504, - 1028000, - 676533159, - 1027900, - 676520563, - 1027800, - 676510852, - 1027700, - 676481255, - 1027600, - 676472448, - 1027500, - 676465742, - 1027400, - 676459585, - 1027300, - 676447471, - 1027200, - 676431987, - 1027100, - 676396521, - 1027000, - 676379650, - 1026900, - 676362479, - 1026800, - 676345488, - 1026600, - 676298218, - 1026500, - 676288146, - 1026400, - 676286336, - 1026300, - 676285226, - 1026200, - 676250850, - 1026100, - 676215087, - 1026000, - 676199061, - 1025900, - 676188735, - 1025800, - 676174508, - 1025700, - 676145824, - 1025600, - 676129556, - 1025500, - 676119640, - 1025400, - 676108852, - 1025300, - 676097285, - 1025200, - 676085774, - 1025100, - 676058084, - 1025000, - 676041341, - 1024900, - 676031574, - 1024800, - 676021511, - 1024700, - 676009460, - 1024600, - 675994882, - 1024500, - 675964012, - 1024400, - 675952921, - 1024300, - 675943515, - 1024200, - 675932897, - 1024100, - 675922453, - 1024000, - 675906603, - 1023900, - 675874259, - 1023800, - 675862881, - 1023700, - 675853412, - 1023600, - 675844551, - 1023500, - 675835569, - 1023400, - 675825685, - 1023300, - 675793260, - 1023200, - 675778915, - 1023100, - 675765775, - 1023000, - 675753481, - 1022900, - 675734265, - 1022800, - 675702663, - 1022700, - 675690000, - 1022600, - 675680957, - 1022500, - 675668119, - 1022400, - 675653584, - 1022300, - 675628175, - 1022200, - 675605657, - 1022100, - 675593057, - 1022000, - 675575705, - 1021900, - 675552277, - 1021800, - 675526654, - 1021700, - 675514240, - 1021600, - 675503257, - 1021500, - 675493734, - 1021400, - 675483628, - 1021200, - 675438014, - 1021100, - 675428153, - 1021000, - 675415819, - 1020900, - 675403524, - 1020800, - 675388842, - 1020700, - 675353636, - 1020600, - 675341219, - 1020500, - 675331751, - 1020400, - 675322707, - 1020300, - 675310647, - 1020200, - 675288332, - 1020100, - 675264539, - 1020000, - 675254410, - 1019900, - 675241934, - 1019800, - 675230786, - 1019700, - 675218674, - 1019600, - 675181804, - 1019500, - 675172999, - 1019400, - 675160580, - 1019300, - 675149550, - 1019200, - 675135272, - 1019100, - 675114829, - 1019000, - 675088337, - 1018900, - 675072916, - 1018800, - 675058397, - 1018700, - 675044362, - 1018600, - 675017142, - 1018500, - 675002377, - 1018400, - 674992426, - 1018300, - 674979110, - 1018200, - 674967960, - 1018100, - 674946095, - 1018000, - 674921886, - 1017900, - 674912539, - 1017800, - 674900666, - 1017700, - 674887106, - 1017600, - 674866198, - 1017500, - 674835263, - 1017400, - 674822779, - 1017300, - 674806853, - 1017200, - 674791248, - 1017100, - 674760717, - 1017000, - 674740713, - 1016900, - 674725731, - 1016800, - 674714116, - 1016700, - 674695133, - 1016600, - 674666253, - 1016500, - 674652978, - 1016400, - 674638003, - 1016300, - 674618719, - 1016200, - 674584647, - 1016100, - 674569126, - 1016000, - 674555380, - 1015900, - 674535619, - 1015800, - 674496453, - 1015700, - 674480869, - 1015600, - 674466283, - 1015500, - 674443574, - 1015400, - 674407358, - 1015300, - 674391241, - 1015200, - 674375204, - 1015100, - 674359370, - 1015000, - 674320140, - 1014900, - 674293408, - 1014800, - 674272972, - 1014700, - 674235078, - 1014600, - 674214810, - 1014500, - 674200175, - 1014400, - 674168236, - 1014300, - 674139317, - 1014200, - 674122257, - 1014100, - 674104608, - 1014000, - 674079137, - 1013900, - 674054031, - 1013800, - 674039531, - 1013700, - 674026576, - 1013600, - 674009107, - 1013500, - 673973183, - 1013400, - 673960193, - 1013300, - 673943082, - 1013200, - 673926995, - 1013100, - 673901822, - 1013000, - 673884370, - 1012900, - 673869292, - 1012800, - 673854169, - 1012700, - 673835796, - 1012600, - 673802044, - 1012500, - 673789233, - 1012400, - 673778909, - 1012300, - 673756559, - 1012200, - 673731317, - 1012100, - 673710852, - 1012000, - 673700065, - 1011900, - 673685619, - 1011800, - 673669941, - 1011700, - 673640735, - 1011600, - 673625058, - 1011500, - 673614743, - 1011400, - 673603373, - 1011300, - 673589559, - 1011200, - 673568926, - 1011100, - 673539191, - 1011000, - 673528173, - 1010900, - 673519245, - 1010800, - 673506451, - 1010700, - 673491860, - 1010600, - 673459040, - 1010500, - 673448341, - 1010400, - 673435715, - 1010300, - 673420769, - 1010200, - 673406711, - 1010100, - 673382152, - 1010000, - 673361882, - 1009900, - 673351595, - 1009800, - 673336822, - 1009700, - 673323321, - 1009600, - 673305114, - 1009500, - 673280187, - 1009400, - 673270044, - 1009300, - 673255392, - 1009200, - 673244597, - 1009100, - 673219061, - 1009000, - 673189564, - 1008900, - 673175521, - 1008800, - 673160760, - 1008700, - 673142809, - 1008600, - 673110734, - 1008500, - 673095968, - 1008400, - 673082474, - 1008300, - 673074394, - 1008200, - 673063181, - 1008100, - 673030091, - 1008000, - 673013884, - 1007900, - 672996951, - 1007800, - 672987968, - 1007700, - 672973208, - 1007600, - 672945219, - 1007500, - 672930639, - 1007400, - 672919102, - 1007300, - 672905712, - 1007200, - 672894745, - 1007100, - 672880646, - 1007000, - 672853547, - 1006900, - 672847090, - 1006800, - 672837136, - 1006700, - 672825251, - 1006600, - 672813312, - 1006500, - 672795844, - 1006400, - 672765567, - 1006300, - 672752907, - 1006200, - 672738501, - 1006100, - 672718861, - 1006000, - 672695074, - 1005900, - 672674663, - 1005800, - 672662902, - 1005700, - 672643861, - 1005600, - 672624885, - 1005500, - 672588405, - 1005400, - 672570017, - 1005300, - 672550739, - 1005200, - 672510379, - 1005100, - 672490855, - 1005000, - 672472600, - 1004900, - 672458137, - 1004800, - 672416483, - 1004700, - 672401710, - 1004600, - 672383517, - 1004500, - 672368938, - 1004400, - 672329638, - 1004300, - 672316314, - 1004200, - 672300395, - 1004100, - 672285452, - 1004000, - 672247266, - 1003900, - 672232314, - 1003800, - 672215929, - 1003700, - 672198996, - 1003600, - 672157364, - 1003500, - 672141271, - 1003400, - 672127892, - 1003300, - 672109336, - 1003200, - 672069075, - 1003100, - 672053042, - 1003000, - 672042911, - 1002900, - 672028907, - 1002800, - 672015169, - 1002700, - 671981948, - 1002600, - 671966096, - 1002500, - 671950911, - 1002400, - 671930786, - 1002300, - 671896796, - 1002200, - 671879983, - 1002100, - 671864162, - 1002000, - 671844997, - 1001900, - 671811780, - 1001800, - 671799302, - 1001700, - 671785436, - 1001600, - 671774099, - 1001500, - 671760181, - 1001400, - 671728226, - 1001300, - 671713342, - 1001200, - 671699302, - 1001100, - 671690389, - 1001000, - 671674121, - 1000900, - 671634601, - 1000800, - 671621665, - 1000700, - 671608054, - 1000600, - 671591043, - 1000500, - 671553608, - 1000400, - 671538299, - 1000300, - 671524260, - 1000200, - 671510582, - 1000100, - 671486622, - 1000000, - 671459641, - 999900, - 671446863, - 999800, - 671433905, - 999700, - 671420048, - 999600, - 671383855, - 999500, - 671364590, - 999400, - 671352114, - 999300, - 671338560, - 999200, - 671304160, - 999100, - 671285365, - 999000, - 671272410, - 998900, - 671261262, - 998800, - 671243791, - 998700, - 671209193, - 998600, - 671194914, - 998500, - 671183159, - 998400, - 671171712, - 998300, - 671159514, - 998200, - 671131332, - 998100, - 671113739, - 998000, - 671103301, - 997900, - 671091830, - 997800, - 671077559, - 997700, - 671065231, - 997600, - 671033431, - 997500, - 671021133, - 995400, - 671020663, - 995300, - 671019484, - 995200, - 670637390, - 995100, - 670604377, - 995000, - 670587751, - 994900, - 670573352, - 994800, - 670559673, - 994700, - 670534873, - 994600, - 670507845, - 994500, - 670495976, - 994400, - 670484049, - 994300, - 670471097, - 994200, - 670440705, - 994100, - 670425047, - 994000, - 670414200, - 993900, - 670402513, - 993800, - 670387937, - 993700, - 670361213, - 993600, - 670339784, - 993500, - 670330545, - 993400, - 670319938, - 993300, - 670308185, - 993200, - 670295171, - 993100, - 670265998, - 993000, - 670252505, - 992900, - 670242742, - 992800, - 670231384, - 992700, - 670220778, - 992600, - 670208910, - 992500, - 670178485, - 992400, - 670165291, - 992300, - 670153236, - 992200, - 670140223, - 992100, - 670124924, - 992000, - 670095788, - 991900, - 670078860, - 991800, - 670067225, - 991700, - 670054454, - 991600, - 670041324, - 991500, - 670012695, - 991400, - 669993604, - 991300, - 669981129, - 991200, - 669971726, - 991100, - 669960335, - 991000, - 669948525, - 990900, - 669922937, - 990800, - 669905166, - 990700, - 669893960, - 990600, - 669882393, - 990500, - 669868473, - 990400, - 669854917, - 990300, - 669824027, - 990200, - 669813062, - 990100, - 669798487, - 990000, - 669785054, - 989900, - 669770418, - 989800, - 669738639, - 989700, - 669724626, - 989600, - 669710528, - 989500, - 669700281, - 989400, - 669683822, - 989300, - 669647795, - 989200, - 669635390, - 989100, - 669623873, - 989000, - 669613807, - 988900, - 669602296, - 988800, - 669568172, - 988700, - 669552682, - 988600, - 669535085, - 988500, - 669519420, - 988400, - 669493043, - 988300, - 669472325, - 988200, - 669457008, - 988100, - 669441994, - 988000, - 669427953, - 987900, - 669406824, - 987800, - 669405797, - 987700, - 669404772, - 987600, - 669402070, - 987500, - 669401043, - 987400, - 669398398, - 987300, - 669397373, - 987200, - 669396346, - 987100, - 669395318, - 987000, - 669394231, - 986900, - 669391586, - 986800, - 669390557, - 986700, - 669389527, - 986600, - 669388490, - 986500, - 669387460, - 986400, - 669104564, - 986300, - 669091648, - 986200, - 669066971, - 986100, - 669036567, - 986000, - 669023485, - 985900, - 669009443, - 985800, - 668995225, - 985700, - 668959526, - 985600, - 668944936, - 985500, - 668924876, - 985400, - 668904512, - 985300, - 668868634, - 985200, - 668856340, - 985100, - 668840787, - 985000, - 668824037, - 984900, - 668786517, - 984800, - 668771331, - 984700, - 668755066, - 984600, - 668736029, - 984500, - 668696263, - 984400, - 668678919, - 984300, - 668660139, - 984200, - 668642398, - 984100, - 668610692, - 984000, - 668598861, - 983900, - 668584300, - 983800, - 668566830, - 983700, - 668527169, - 983600, - 668512340, - 983500, - 668496856, - 983400, - 668478240, - 983300, - 668440379, - 983200, - 668423564, - 983100, - 668408005, - 983000, - 668389746, - 982900, - 668354207, - 982800, - 668341364, - 982700, - 668324961, - 982600, - 668306764, - 982500, - 668268380, - 982400, - 668253550, - 982300, - 668237940, - 982200, - 668222031, - 982100, - 668186889, - 982000, - 668171755, - 981900, - 668157770, - 981800, - 668141752, - 981600, - 668087993, - 981500, - 668068019, - 981400, - 668052410, - 981300, - 668021193, - 981200, - 668001890, - 981100, - 667987848, - 981000, - 667972182, - 980900, - 667952723, - 980800, - 667917467, - 980700, - 667902515, - 980600, - 667888293, - 980500, - 667866059, - 980400, - 667829476, - 980300, - 667812846, - 980200, - 667794230, - 980100, - 667760283, - 980000, - 667738493, - 979900, - 667722464, - 979800, - 667703785, - 979700, - 667669370, - 979600, - 667652127, - 979500, - 667635558, - 979400, - 667616578, - 979300, - 667578176, - 979200, - 667559902, - 979100, - 667543872, - 979000, - 667526040, - 978900, - 667489809, - 978800, - 667476798, - 978700, - 667459685, - 978600, - 667442376, - 978500, - 667408506, - 978400, - 667388140, - 978300, - 667373353, - 978200, - 667353818, - 978100, - 667314855, - 978000, - 667300239, - 977900, - 667285293, - 977800, - 667271067, - 977700, - 667231369, - 977600, - 667219248, - 977500, - 667205188, - 977400, - 667188114, - 977300, - 667176414, - 977200, - 667138537, - 977100, - 667120458, - 977000, - 667103708, - 976900, - 667084434, - 976800, - 667055711, - 976700, - 667040165, - 976600, - 667026100, - 976500, - 667007027, - 976400, - 666971896, - 976300, - 666957129, - 976200, - 666941593, - 976100, - 666923582, - 976000, - 666888903, - 975900, - 666873717, - 975800, - 666857252, - 975700, - 666838980, - 975600, - 666803590, - 975500, - 666789267, - 975400, - 666773973, - 975300, - 666755415, - 975200, - 666723327, - 975100, - 666704527, - 975000, - 666692468, - 974900, - 666673993, - 974800, - 666642395, - 974700, - 666617673, - 974600, - 666602618, - 974500, - 666582976, - 974400, - 666550675, - 974300, - 666528683, - 974200, - 666512597, - 974100, - 666496563, - 974000, - 666460143, - 973900, - 666443573, - 973800, - 666426271, - 973700, - 666408016, - 973600, - 666372674, - 973500, - 666354826, - 973400, - 666339333, - 973300, - 666320474, - 973200, - 666284565, - 973100, - 666270762, - 973000, - 666254372, - 972900, - 666235268, - 972800, - 666196525, - 972700, - 666179168, - 972600, - 666162237, - 972500, - 666142892, - 972400, - 666105157, - 972300, - 666088040, - 972200, - 666071397, - 972000, - 666014079, - 971900, - 665998712, - 971800, - 665981533, - 971700, - 665948123, - 971600, - 665925088, - 971500, - 665909176, - 971400, - 665894351, - 971300, - 665873322, - 971200, - 665844824, - 971100, - 665832939, - 971000, - 665818835, - 970900, - 665803346, - 970800, - 665770720, - 970700, - 665756253, - 970600, - 665743655, - 970500, - 665729346, - 970400, - 665714941, - 970300, - 665680359, - 970200, - 665665954, - 970100, - 665651005, - 970000, - 665637127, - 969900, - 665621819, - 969800, - 665589251, - 969700, - 665579643, - 969600, - 665565601, - 969500, - 665553292, - 969400, - 665528591, - 969300, - 665500105, - 969200, - 665485329, - 969100, - 665472490, - 969000, - 665456158, - 968900, - 665423290, - 968800, - 665404184, - 968700, - 665390262, - 968600, - 665373609, - 968500, - 665342007, - 968400, - 665322902, - 968300, - 665306324, - 968200, - 665292221, - 968100, - 665273482, - 968000, - 665237429, - 967900, - 665222123, - 967800, - 665206997, - 967700, - 665186394, - 967600, - 665150333, - 967500, - 665129424, - 967400, - 665113209, - 967300, - 665074984, - 967200, - 665057147, - 967100, - 665041779, - 967000, - 665021441, - 966900, - 664982705, - 966800, - 664967452, - 966700, - 664950398, - 966500, - 664890618, - 966400, - 664874229, - 966300, - 664854047, - 966200, - 664819290, - 966100, - 664800965, - 966000, - 664782154, - 965900, - 664761989, - 965800, - 664724755, - 965700, - 664704423, - 965600, - 664688774, - 965500, - 664652863, - 965400, - 664629136, - 965300, - 664610958, - 965200, - 664589213, - 965100, - 664546952, - 965000, - 664528622, - 964900, - 664507590, - 964800, - 664470250, - 964700, - 664449945, - 964600, - 664429592, - 964500, - 664387645, - 964400, - 664365089, - 964300, - 664346071, - 964200, - 664322609, - 964100, - 664284152, - 964000, - 664270402, - 963900, - 664252473, - 963800, - 664212642, - 963700, - 664194308, - 963600, - 664174229, - 963500, - 664137818, - 963400, - 664109930, - 963300, - 664089978, - 963200, - 664066802, - 963100, - 664032222, - 963000, - 664013022, - 962900, - 663995462, - 962700, - 663938406, - 962600, - 663918419, - 962500, - 663895828, - 962400, - 663857540, - 962300, - 663842332, - 962200, - 663821708, - 962000, - 663766324, - 961900, - 663747259, - 961800, - 663730022, - 961700, - 663690329, - 961600, - 663676962, - 961500, - 663662295, - 961400, - 663646405, - 961300, - 663611321, - 961200, - 663594818, - 961100, - 663576748, - 961000, - 663563139, - 960900, - 663531824, - 960800, - 663507485, - 960700, - 663488983, - 960600, - 663470909, - 960500, - 663436338, - 960400, - 663417717, - 960300, - 663400302, - 960200, - 663384410, - 960100, - 663344944, - 960000, - 663330422, - 959900, - 663311771, - 959800, - 663293717, - 959700, - 663256744, - 959600, - 663243351, - 959500, - 663226052, - 959400, - 663210649, - 959300, - 663177534, - 959200, - 663161430, - 959100, - 663144367, - 959000, - 663130634, - 958900, - 663118409, - 958800, - 663084841, - 958700, - 663070178, - 958600, - 663058983, - 958500, - 663049965, - 958400, - 663036782, - 958300, - 663005135, - 958200, - 662992657, - 958100, - 662985428, - 958000, - 662976776, - 957900, - 662967959, - 957800, - 662955523, - 957700, - 662941462, - 957600, - 662910769, - 957500, - 662899952, - 957400, - 662889686, - 957300, - 662881953, - 957200, - 662873679, - 957100, - 662859435, - 957000, - 662825142, - 956900, - 662806192, - 956800, - 662787064, - 956700, - 662757454, - 956600, - 662731261, - 956500, - 662717919, - 956400, - 662703494, - 956300, - 662686174, - 956200, - 662649867, - 956100, - 662636344, - 956000, - 662622098, - 955900, - 662606040, - 955800, - 662572112, - 955700, - 662553161, - 955600, - 662538916, - 955500, - 662520861, - 955400, - 662486546, - 955300, - 662468672, - 955200, - 662451342, - 955100, - 662434918, - 955000, - 662398481, - 954900, - 662380251, - 954800, - 662361842, - 954700, - 662343961, - 954600, - 662310052, - 954500, - 662288547, - 954400, - 662272431, - 954300, - 662252470, - 954200, - 662215747, - 954100, - 662200007, - 954000, - 662185508, - 953900, - 662166859, - 953800, - 662130665, - 953700, - 662115388, - 953600, - 662101459, - 953500, - 662083190, - 953400, - 662045761, - 953300, - 662032234, - 953200, - 662012737, - 953100, - 661993968, - 953000, - 661957004, - 952900, - 661942373, - 952800, - 661928309, - 952700, - 661912615, - 952600, - 661879769, - 952500, - 661864012, - 952400, - 661846448, - 952300, - 661825335, - 952200, - 661786346, - 952100, - 661769417, - 952000, - 661761158, - 951900, - 661738402, - 951800, - 661705340, - 951700, - 661686741, - 951600, - 661669046, - 951500, - 661643758, - 951400, - 661608874, - 951300, - 661584112, - 951200, - 661563513, - 951100, - 661524838, - 951000, - 661515647 -] \ No newline at end of file diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/dbnew.json" "b/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/dbnew.json" deleted file mode 100644 index 33424576c..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/GreasyFork/dbnew.json" +++ /dev/null @@ -1,33138 +0,0 @@ -[ - 1359500, - 689742110, - 1359400, - 689720510, - 1359300, - 689698910, - 1359200, - 689677310, - 1359100, - 689655710, - 1359000, - 689634110, - 1358900, - 689612510, - 1358800, - 689590910, - 1358700, - 689569310, - 1358600, - 689547710, - 1358500, - 689526110, - 1358400, - 689504510, - 1358300, - 689482910, - 1358200, - 689461310, - 1358100, - 689439710, - 1358000, - 689418110, - 1357900, - 689396510, - 1357800, - 689374910, - 1357700, - 689353310, - 1357600, - 689331710, - 1357500, - 689310110, - 1357400, - 689288510, - 1357300, - 689266910, - 1357200, - 689245310, - 1357100, - 689223710, - 1357000, - 689202110, - 1356900, - 689180510, - 1356800, - 689158910, - 1356700, - 689137310, - 1356600, - 689115710, - 1356500, - 689094110, - 1356400, - 689072510, - 1356300, - 689050910, - 1356200, - 689029310, - 1356100, - 689007710, - 1356000, - 688986110, - 1355900, - 688964510, - 1355800, - 688942910, - 1355700, - 688921310, - 1355600, - 688899710, - 1355500, - 688878110, - 1355400, - 688856510, - 1355300, - 688834910, - 1355200, - 688813310, - 1355100, - 688791710, - 1355000, - 688770110, - 1354900, - 688748510, - 1354800, - 688726910, - 1354700, - 688705310, - 1354600, - 688683710, - 1354500, - 688662110, - 1354400, - 688640510, - 1354300, - 688618910, - 1354200, - 688597310, - 1354100, - 688575710, - 1354000, - 688554110, - 1353900, - 688532510, - 1353800, - 688510910, - 1353700, - 688489310, - 1353600, - 688467710, - 1353500, - 688446110, - 1353400, - 688424510, - 1353300, - 688402910, - 1353200, - 688381310, - 1353100, - 688359710, - 1353000, - 688338110, - 1352900, - 688316510, - 1352800, - 688294910, - 1352700, - 688273310, - 1352600, - 688251710, - 1352500, - 688230110, - 1352400, - 688208510, - 1352300, - 688186910, - 1352200, - 688165310, - 1352100, - 688143710, - 1352000, - 688122110, - 1351900, - 688100510, - 1351800, - 688078910, - 1351700, - 688057310, - 1351600, - 688035710, - 1351500, - 688014110, - 1351400, - 687992510, - 1351300, - 687970910, - 1351200, - 687949310, - 1351100, - 687927710, - 1351000, - 687906110, - 1350900, - 687884510, - 1350800, - 687862910, - 1350700, - 687841310, - 1350600, - 687819710, - 1350500, - 687798110, - 1350400, - 687776510, - 1350300, - 687754910, - 1350200, - 687733310, - 1350100, - 687711710, - 1350000, - 687690110, - 1349900, - 687668510, - 1349800, - 687646910, - 1349700, - 687625310, - 1349600, - 687603710, - 1349500, - 687582110, - 1349400, - 687560510, - 1349300, - 687538910, - 1349200, - 687517310, - 1349100, - 687495710, - 1349000, - 687474110, - 1348900, - 687452510, - 1348800, - 687430910, - 1348700, - 687409310, - 1348600, - 687387710, - 1348500, - 687366110, - 1348400, - 687344510, - 1348300, - 687322910, - 1348200, - 687301310, - 1348100, - 687279710, - 1348000, - 687258110, - 1347900, - 687236510, - 1347800, - 687214910, - 1347700, - 687193310, - 1347600, - 687171710, - 1347500, - 687150110, - 1347400, - 687128510, - 1347300, - 687106910, - 1347200, - 687085310, - 1347100, - 687063710, - 1347000, - 687042110, - 1346900, - 687020510, - 1346800, - 686998910, - 1346700, - 686977310, - 1346600, - 686955710, - 1346500, - 686934110, - 1346400, - 686912510, - 1346300, - 686890910, - 1346200, - 686869310, - 1346100, - 686847710, - 1346000, - 686826110, - 1345900, - 686804510, - 1345800, - 686782910, - 1345700, - 686761310, - 1345600, - 686739710, - 1345500, - 686718110, - 1345400, - 686696510, - 1345300, - 686674910, - 1345200, - 686653310, - 1345100, - 686631710, - 1345000, - 686610110, - 1344900, - 686588510, - 1344800, - 686566910, - 1344700, - 686545310, - 1344600, - 686523710, - 1344500, - 686502110, - 1344400, - 686480510, - 1344300, - 686458910, - 1344200, - 686437310, - 1344100, - 686415710, - 1344000, - 686394110, - 1343900, - 686372510, - 1343800, - 686350910, - 1343700, - 686329310, - 1343600, - 686307710, - 1343500, - 686286110, - 1343400, - 686264510, - 1343300, - 686242910, - 1343200, - 686221310, - 1343100, - 686199710, - 1343000, - 686178110, - 1342900, - 686156510, - 1342800, - 686134910, - 1342700, - 686113310, - 1342600, - 686091710, - 1342500, - 686070110, - 1342400, - 686048510, - 1342300, - 686026910, - 1342200, - 686005310, - 1342100, - 685983710, - 1342000, - 685962110, - 1341900, - 685940510, - 1341800, - 685918910, - 1341700, - 685897310, - 1341600, - 685875710, - 1341500, - 685854110, - 1341400, - 685832510, - 1341300, - 685810910, - 1341200, - 685789310, - 1341100, - 685767710, - 1341000, - 685746110, - 1340900, - 685724510, - 1340800, - 685702910, - 1340700, - 685681310, - 1340600, - 685659710, - 1340500, - 685638110, - 1340400, - 685616510, - 1340300, - 685594910, - 1340200, - 685573310, - 1340100, - 685551710, - 1340000, - 685530110, - 1339900, - 685508510, - 1339800, - 685486910, - 1339700, - 685465310, - 1339600, - 685443710, - 1339500, - 685422110, - 1339400, - 685400510, - 1339300, - 685378910, - 1339200, - 685357310, - 1339100, - 685335710, - 1339000, - 685314110, - 1338900, - 685292510, - 1338800, - 685270910, - 1338700, - 685249310, - 1338600, - 685227710, - 1338500, - 685206110, - 1338400, - 685184510, - 1338300, - 685162910, - 1338200, - 685141310, - 1338100, - 685119710, - 1338000, - 685098110, - 1337900, - 685076510, - 1337800, - 685054910, - 1337700, - 685033310, - 1337600, - 685011710, - 1337500, - 684990110, - 1337400, - 684968510, - 1337300, - 684946910, - 1337200, - 684925310, - 1337100, - 684903710, - 1337000, - 684882110, - 1336900, - 684860510, - 1336800, - 684838910, - 1336700, - 684817310, - 1336600, - 684795710, - 1336500, - 684774110, - 1336400, - 684752510, - 1336300, - 684730910, - 1336200, - 684709310, - 1336100, - 684687710, - 1336000, - 684666110, - 1335900, - 684644510, - 1335800, - 684622910, - 1335700, - 684601310, - 1335600, - 684579710, - 1335500, - 684558110, - 1335400, - 684536510, - 1335300, - 684514910, - 1335200, - 684493310, - 1335100, - 684471710, - 1335000, - 684450110, - 1334900, - 684428510, - 1334800, - 684406910, - 1334700, - 684385310, - 1334600, - 684363710, - 1334500, - 684342110, - 1334400, - 684320510, - 1334300, - 684298910, - 1334200, - 684277310, - 1334100, - 684255710, - 1334000, - 684234110, - 1333900, - 684212510, - 1333800, - 684190910, - 1333700, - 684169310, - 1333600, - 684147710, - 1333500, - 684126110, - 1333400, - 684104510, - 1333300, - 684082910, - 1333200, - 684061310, - 1333100, - 684039710, - 1333000, - 684018110, - 1332900, - 683996510, - 1332800, - 683974910, - 1332700, - 683953310, - 1332600, - 683931710, - 1332500, - 683910110, - 1332400, - 683888510, - 1332300, - 683866910, - 1332200, - 683845310, - 1332100, - 683823710, - 1332000, - 683802110, - 1331900, - 683780510, - 1331800, - 683758910, - 1331700, - 683737310, - 1331600, - 683715710, - 1331500, - 683694110, - 1331400, - 683672510, - 1331300, - 683650910, - 1331200, - 683629310, - 1331100, - 683607710, - 1331000, - 683586110, - 1330900, - 683564510, - 1330800, - 683542910, - 1330700, - 683521310, - 1330600, - 683499710, - 1330500, - 683478110, - 1330400, - 683456510, - 1330300, - 683434910, - 1330200, - 683413310, - 1330100, - 683391710, - 1330000, - 683370110, - 1329900, - 683348510, - 1329800, - 683326910, - 1329700, - 683305310, - 1329600, - 683283710, - 1329500, - 683262110, - 1329400, - 683240510, - 1329300, - 683218910, - 1329200, - 683197310, - 1329100, - 683175710, - 1329000, - 683154110, - 1328900, - 683132510, - 1328800, - 683110910, - 1328700, - 683089310, - 1328600, - 683067710, - 1328500, - 683046110, - 1328400, - 683024510, - 1328300, - 683002910, - 1328200, - 682981310, - 1328100, - 682959710, - 1328000, - 682938110, - 1327900, - 682916510, - 1327800, - 682894910, - 1327700, - 682873310, - 1327600, - 682851710, - 1327500, - 682830110, - 1327400, - 682808510, - 1327300, - 682786910, - 1327200, - 682765310, - 1327100, - 682743710, - 1327000, - 682722110, - 1326900, - 682700510, - 1326800, - 682678910, - 1326700, - 682657310, - 1326600, - 682635710, - 1326500, - 682614110, - 1326400, - 682592510, - 1326300, - 682570910, - 1326200, - 682549310, - 1326100, - 682527710, - 1326000, - 682506110, - 1325900, - 682484510, - 1325800, - 682462910, - 1325700, - 682441310, - 1325600, - 682419710, - 1325500, - 682398110, - 1325400, - 682376510, - 1325300, - 682354910, - 1325200, - 682333310, - 1325100, - 682311710, - 1325000, - 682290110, - 1324900, - 682268510, - 1324800, - 682246910, - 1324700, - 682225310, - 1324600, - 682203710, - 1324500, - 682182110, - 1324400, - 682160510, - 1324300, - 682138910, - 1324200, - 682117310, - 1324100, - 682095710, - 1324000, - 682074110, - 1323900, - 682052510, - 1323800, - 682030910, - 1323700, - 682009310, - 1323600, - 681987710, - 1323500, - 681966110, - 1323400, - 681944510, - 1323300, - 681922910, - 1323200, - 681901310, - 1323100, - 681879710, - 1323000, - 681858110, - 1322900, - 681836510, - 1322800, - 681814910, - 1322700, - 681793310, - 1322600, - 681771710, - 1322500, - 681750110, - 1322400, - 681728510, - 1322300, - 681706910, - 1322200, - 681685310, - 1322100, - 681663710, - 1322000, - 681642110, - 1321900, - 681620510, - 1321800, - 681598910, - 1321700, - 681577310, - 1321600, - 681555710, - 1321500, - 681534110, - 1321400, - 681512510, - 1321300, - 681490910, - 1321200, - 681469310, - 1321100, - 681447710, - 1321000, - 681426110, - 1320900, - 681404510, - 1320800, - 681382910, - 1320700, - 681361310, - 1320600, - 681339710, - 1320500, - 681318110, - 1320400, - 681296510, - 1320300, - 681274910, - 1320200, - 681253310, - 1320100, - 681231710, - 1320000, - 681210110, - 1319900, - 681188510, - 1319800, - 681166910, - 1319700, - 681145310, - 1319600, - 681123710, - 1319500, - 681102110, - 1319400, - 681080510, - 1319300, - 681058910, - 1319200, - 681037310, - 1319100, - 681015710, - 1319000, - 680994110, - 1318900, - 680972510, - 1318800, - 680950910, - 1318700, - 680929310, - 1318600, - 680907710, - 1318500, - 680886110, - 1318400, - 680864510, - 1318300, - 680842910, - 1318200, - 680821310, - 1318100, - 680799710, - 1318000, - 680778110, - 1317900, - 680756510, - 1317800, - 680734910, - 1317700, - 680713310, - 1317600, - 680691710, - 1317500, - 680670110, - 1317400, - 680648510, - 1317300, - 680626910, - 1317200, - 680605310, - 1317100, - 680583710, - 1317000, - 680562110, - 1316900, - 680540510, - 1316800, - 680518910, - 1316700, - 680497310, - 1316600, - 680475710, - 1316500, - 680454110, - 1316400, - 680432510, - 1316300, - 680410910, - 1316200, - 680389310, - 1316100, - 680367710, - 1316000, - 680346110, - 1315900, - 680324510, - 1315800, - 680302910, - 1315700, - 680281310, - 1315600, - 680259710, - 1315500, - 680238110, - 1315400, - 680216510, - 1315300, - 680194910, - 1315200, - 680173310, - 1315100, - 680151710, - 1315000, - 680130110, - 1314900, - 680108510, - 1314800, - 680086910, - 1314700, - 680065310, - 1314600, - 680043710, - 1314500, - 680022110, - 1314400, - 680000510, - 1314300, - 679978910, - 1314200, - 679957310, - 1314100, - 679935710, - 1314000, - 679914110, - 1313900, - 679892510, - 1313800, - 679870910, - 1313700, - 679849310, - 1313600, - 679827710, - 1313500, - 679806110, - 1313400, - 679784510, - 1313300, - 679762910, - 1313200, - 679741310, - 1313100, - 679719710, - 1313000, - 679698110, - 1312900, - 679676510, - 1312800, - 679654910, - 1312700, - 679633310, - 1312600, - 679611710, - 1312500, - 679590110, - 1312400, - 679568510, - 1312300, - 679546910, - 1312200, - 679525310, - 1312100, - 679503710, - 1312000, - 679482110, - 1311900, - 679460510, - 1311800, - 679438910, - 1311700, - 679417310, - 1311600, - 679395710, - 1311500, - 679374110, - 1311400, - 679352510, - 1311300, - 679330910, - 1311200, - 679309310, - 1311100, - 679287710, - 1311000, - 679266110, - 1310900, - 679244510, - 1310800, - 679222910, - 1310700, - 679201310, - 1310600, - 679179710, - 1310500, - 679158110, - 1310400, - 679136510, - 1310300, - 679114910, - 1310200, - 679093310, - 1310100, - 679071710, - 1310000, - 679050110, - 1309900, - 679028510, - 1309800, - 679006910, - 1309700, - 678985310, - 1309600, - 678963710, - 1309500, - 678942110, - 1309400, - 678920510, - 1309300, - 678898910, - 1309200, - 678877310, - 1309100, - 678855710, - 1309000, - 678834110, - 1308900, - 678812510, - 1308800, - 678790910, - 1308700, - 678769310, - 1308600, - 678747710, - 1308500, - 678726110, - 1308400, - 678704510, - 1308300, - 678682910, - 1308200, - 678661310, - 1308100, - 678639710, - 1308000, - 678618110, - 1307900, - 678596510, - 1307800, - 678574910, - 1307700, - 678553310, - 1307600, - 678531710, - 1307500, - 678510110, - 1307400, - 678488510, - 1307300, - 678466910, - 1307200, - 678445310, - 1307100, - 678423710, - 1307000, - 678402110, - 1306900, - 678380510, - 1306800, - 678358910, - 1306700, - 678337310, - 1306600, - 678315710, - 1306500, - 678294110, - 1306400, - 678272510, - 1306300, - 678250910, - 1306200, - 678229310, - 1306100, - 678207710, - 1306000, - 678186110, - 1305900, - 678164510, - 1305800, - 678142910, - 1305700, - 678121310, - 1305600, - 678099710, - 1305500, - 678078110, - 1305400, - 678056510, - 1305300, - 678034910, - 1305200, - 678013310, - 1305100, - 677991710, - 1305000, - 677970110, - 1304900, - 677948510, - 1304800, - 677926910, - 1304700, - 677905310, - 1304600, - 677883710, - 1304500, - 677862110, - 1304400, - 677840510, - 1304300, - 677818910, - 1304200, - 677797310, - 1304100, - 677775710, - 1304000, - 677754110, - 1303900, - 677732510, - 1303800, - 677710910, - 1303700, - 677689310, - 1303600, - 677667710, - 1303500, - 677646110, - 1303400, - 677624510, - 1303300, - 677602910, - 1303200, - 677581310, - 1303100, - 677559710, - 1303000, - 677538110, - 1302900, - 677516510, - 1302800, - 677494910, - 1302700, - 677473310, - 1302600, - 677451710, - 1302500, - 677430110, - 1302400, - 677408510, - 1302300, - 677386910, - 1302200, - 677365310, - 1302100, - 677343710, - 1302000, - 677322110, - 1301900, - 677300510, - 1301800, - 677278910, - 1301700, - 677257310, - 1301600, - 677235710, - 1301500, - 677214110, - 1301400, - 677192510, - 1301300, - 677170910, - 1301200, - 677149310, - 1301100, - 677127710, - 1301000, - 677106110, - 1300900, - 677084510, - 1300800, - 677062910, - 1300700, - 677041310, - 1300600, - 677019710, - 1300500, - 676998110, - 1300400, - 676976510, - 1300300, - 676954910, - 1300200, - 676933310, - 1300100, - 676911710, - 1300000, - 676890110, - 1299900, - 676868510, - 1299800, - 676846910, - 1299700, - 676825310, - 1299600, - 676803710, - 1299500, - 676782110, - 1299400, - 676760510, - 1299300, - 676738910, - 1299200, - 676717310, - 1299100, - 676695710, - 1299000, - 676674110, - 1298900, - 676652510, - 1298800, - 676630910, - 1298700, - 676609310, - 1298600, - 676587710, - 1298500, - 676566110, - 1298400, - 676544510, - 1298300, - 676522910, - 1298200, - 676501310, - 1298100, - 676479710, - 1298000, - 676458110, - 1297900, - 676436510, - 1297800, - 676414910, - 1297700, - 676393310, - 1297600, - 676371710, - 1297500, - 676350110, - 1297400, - 676328510, - 1297300, - 676306910, - 1297200, - 676285310, - 1297100, - 676263710, - 1297000, - 676242110, - 1296900, - 676220510, - 1296800, - 676198910, - 1296700, - 676177310, - 1296600, - 676155710, - 1296500, - 676134110, - 1296400, - 676112510, - 1296300, - 676090910, - 1296200, - 676069310, - 1296100, - 676047710, - 1296000, - 676026110, - 1295900, - 676004510, - 1295800, - 675982910, - 1295700, - 675961310, - 1295600, - 675939710, - 1295500, - 675918110, - 1295400, - 675896510, - 1295300, - 675874910, - 1295200, - 675853310, - 1295100, - 675831710, - 1295000, - 675810110, - 1294900, - 675788510, - 1294800, - 675766910, - 1294700, - 675745310, - 1294600, - 675723710, - 1294500, - 675702110, - 1294400, - 675680510, - 1294300, - 675658910, - 1294200, - 675637310, - 1294100, - 675615710, - 1294000, - 675594110, - 1293900, - 675572510, - 1293800, - 675550910, - 1293700, - 675529310, - 1293600, - 675507710, - 1293500, - 675486110, - 1293400, - 675464510, - 1293300, - 675442910, - 1293200, - 675421310, - 1293100, - 675399710, - 1293000, - 675378110, - 1292900, - 675356510, - 1292800, - 675334910, - 1292700, - 675313310, - 1292600, - 675291710, - 1292500, - 675270110, - 1292400, - 675248510, - 1292300, - 675226910, - 1292200, - 675205310, - 1292100, - 675183710, - 1292000, - 675162110, - 1291900, - 675140510, - 1291800, - 675118910, - 1291700, - 675097310, - 1291600, - 675075710, - 1291500, - 675054110, - 1291400, - 675032510, - 1291300, - 675010910, - 1291200, - 674989310, - 1291100, - 674967710, - 1291000, - 674946110, - 1290900, - 674924510, - 1290800, - 674902910, - 1290700, - 674881310, - 1290600, - 674859710, - 1290500, - 674838110, - 1290400, - 674816510, - 1290300, - 674794910, - 1290200, - 674773310, - 1290100, - 674751710, - 1290000, - 674730110, - 1289900, - 674708510, - 1289800, - 674686910, - 1289700, - 674665310, - 1289600, - 674643710, - 1289500, - 674622110, - 1289400, - 674600510, - 1289300, - 674578910, - 1289200, - 674557310, - 1289100, - 674535710, - 1289000, - 674514110, - 1288900, - 674492510, - 1288800, - 674470910, - 1288700, - 674449310, - 1288600, - 674427710, - 1288500, - 674406110, - 1288400, - 674384510, - 1288300, - 674362910, - 1288200, - 674341310, - 1288100, - 674319710, - 1288000, - 674298110, - 1287900, - 674276510, - 1287800, - 674254910, - 1287700, - 674233310, - 1287600, - 674211710, - 1287500, - 674190110, - 1287400, - 674168510, - 1287300, - 674146910, - 1287200, - 674125310, - 1287100, - 674103710, - 1287000, - 674082110, - 1286900, - 674060510, - 1286800, - 674038910, - 1286700, - 674017310, - 1286600, - 673995710, - 1286500, - 673974110, - 1286400, - 673952510, - 1286300, - 673930910, - 1286200, - 673909310, - 1286100, - 673887710, - 1286000, - 673866110, - 1285900, - 673844510, - 1285800, - 673822910, - 1285700, - 673801310, - 1285600, - 673779710, - 1285500, - 673758110, - 1285400, - 673736510, - 1285300, - 673714910, - 1285200, - 673693310, - 1285100, - 673671710, - 1285000, - 673650110, - 1284900, - 673628510, - 1284800, - 673606910, - 1284700, - 673585310, - 1284600, - 673563710, - 1284500, - 673542110, - 1284400, - 673520510, - 1284300, - 673498910, - 1284200, - 673477310, - 1284100, - 673455710, - 1284000, - 673434110, - 1283900, - 673412510, - 1283800, - 673390910, - 1283700, - 673369310, - 1283600, - 673347710, - 1283500, - 673326110, - 1283400, - 673304510, - 1283300, - 673282910, - 1283200, - 673261310, - 1283100, - 673239710, - 1283000, - 673218110, - 1282900, - 673196510, - 1282800, - 673174910, - 1282700, - 673153310, - 1282600, - 673131710, - 1282500, - 673110110, - 1282400, - 673088510, - 1282300, - 673066910, - 1282200, - 673045310, - 1282100, - 673023710, - 1282000, - 673002110, - 1281900, - 672980510, - 1281800, - 672958910, - 1281700, - 672937310, - 1281600, - 672915710, - 1281500, - 672894110, - 1281400, - 672872510, - 1281300, - 672850910, - 1281200, - 672829310, - 1281100, - 672807710, - 1281000, - 672786110, - 1280900, - 672764510, - 1280800, - 672742910, - 1280700, - 672721310, - 1280600, - 672699710, - 1280500, - 672678110, - 1280400, - 672656510, - 1280300, - 672634910, - 1280200, - 672613310, - 1280100, - 672591710, - 1280000, - 672570110, - 1279900, - 672548510, - 1279800, - 672526910, - 1279700, - 672505310, - 1279600, - 672483710, - 1279500, - 672462110, - 1279400, - 672440510, - 1279300, - 672418910, - 1279200, - 672397310, - 1279100, - 672375710, - 1279000, - 672354110, - 1278900, - 672332510, - 1278800, - 672310910, - 1278700, - 672289310, - 1278600, - 672267710, - 1278500, - 672246110, - 1278400, - 672224510, - 1278300, - 672202910, - 1278200, - 672181310, - 1278100, - 672159710, - 1278000, - 672138110, - 1277900, - 672116510, - 1277800, - 672094910, - 1277700, - 672073310, - 1277600, - 672051710, - 1277500, - 672030110, - 1277400, - 672008510, - 1277300, - 671986910, - 1277200, - 671965310, - 1277100, - 671943710, - 1277000, - 671922110, - 1276900, - 671900510, - 1276800, - 671878910, - 1276700, - 671857310, - 1276600, - 671835710, - 1276500, - 671814110, - 1276400, - 671792510, - 1276300, - 671770910, - 1276200, - 671749310, - 1276100, - 671727710, - 1276000, - 671706110, - 1275900, - 671684510, - 1275800, - 671662910, - 1275700, - 671641310, - 1275600, - 671619710, - 1275500, - 671598110, - 1275400, - 671576510, - 1275300, - 671554910, - 1275200, - 671533310, - 1275100, - 671511710, - 1275000, - 671490110, - 1274900, - 671468510, - 1274800, - 671446910, - 1274700, - 671425310, - 1274600, - 671403710, - 1274500, - 671382110, - 1274400, - 671360510, - 1274300, - 671338910, - 1274200, - 671317310, - 1274100, - 671295710, - 1274000, - 671274110, - 1273900, - 671252510, - 1273800, - 671230910, - 1273700, - 671209310, - 1273600, - 671187710, - 1273500, - 671166110, - 1273400, - 671144510, - 1273300, - 671122910, - 1273200, - 671101310, - 1273100, - 671079710, - 1273000, - 671058110, - 1272900, - 671036510, - 1272800, - 671014910, - 1272700, - 670993310, - 1272600, - 670971710, - 1272500, - 670950110, - 1272400, - 670928510, - 1272300, - 670906910, - 1272200, - 670885310, - 1272100, - 670863710, - 1272000, - 670842110, - 1271900, - 670820510, - 1271800, - 670798910, - 1271700, - 670777310, - 1271600, - 670755710, - 1271500, - 670734110, - 1271400, - 670712510, - 1271300, - 670690910, - 1271200, - 670669310, - 1271100, - 670647710, - 1271000, - 670626110, - 1270900, - 670604510, - 1270800, - 670582910, - 1270700, - 670561310, - 1270600, - 670539710, - 1270500, - 670518110, - 1270400, - 670496510, - 1270300, - 670474910, - 1270200, - 670453310, - 1270100, - 670431710, - 1270000, - 670410110, - 1269900, - 670388510, - 1269800, - 670366910, - 1269700, - 670345310, - 1269600, - 670323710, - 1269500, - 670302110, - 1269400, - 670280510, - 1269300, - 670258910, - 1269200, - 670237310, - 1269100, - 670215710, - 1269000, - 670194110, - 1268900, - 670172510, - 1268800, - 670150910, - 1268700, - 670129310, - 1268600, - 670107710, - 1268500, - 670086110, - 1268400, - 670064510, - 1268300, - 670042910, - 1268200, - 670021310, - 1268100, - 669999710, - 1268000, - 669978110, - 1267900, - 669956510, - 1267800, - 669934910, - 1267700, - 669913310, - 1267600, - 669891710, - 1267500, - 669870110, - 1267400, - 669848510, - 1267300, - 669826910, - 1267200, - 669805310, - 1267100, - 669783710, - 1267000, - 669762110, - 1266900, - 669740510, - 1266800, - 669718910, - 1266700, - 669697310, - 1266600, - 669675710, - 1266500, - 669654110, - 1266400, - 669632510, - 1266300, - 669610910, - 1266200, - 669589310, - 1266100, - 669567710, - 1266000, - 669546110, - 1265900, - 669524510, - 1265800, - 669502910, - 1265700, - 669481310, - 1265600, - 669459710, - 1265500, - 669438110, - 1265400, - 669416510, - 1265300, - 669394910, - 1265200, - 669373310, - 1265100, - 669351710, - 1265000, - 669330110, - 1264900, - 669308510, - 1264800, - 669286910, - 1264700, - 669265310, - 1264600, - 669243710, - 1264500, - 669222110, - 1264400, - 669200510, - 1264300, - 669178910, - 1264200, - 669157310, - 1264100, - 669135710, - 1264000, - 669114110, - 1263900, - 669092510, - 1263800, - 669070910, - 1263700, - 669049310, - 1263600, - 669027710, - 1263500, - 669006110, - 1263400, - 668984510, - 1263300, - 668962910, - 1263200, - 668941310, - 1263100, - 668919710, - 1263000, - 668898110, - 1262900, - 668876510, - 1262800, - 668854910, - 1262700, - 668833310, - 1262600, - 668811710, - 1262500, - 668790110, - 1262400, - 668768510, - 1262300, - 668746910, - 1262200, - 668725310, - 1262100, - 668703710, - 1262000, - 668682110, - 1261900, - 668660510, - 1261800, - 668638910, - 1261700, - 668617310, - 1261600, - 668595710, - 1261500, - 668574110, - 1261400, - 668552510, - 1261300, - 668530910, - 1261200, - 668509310, - 1261100, - 668487710, - 1261000, - 668466110, - 1260900, - 668444510, - 1260800, - 668422910, - 1260700, - 668401310, - 1260600, - 668379710, - 1260500, - 668358110, - 1260400, - 668336510, - 1260300, - 668314910, - 1260200, - 668293310, - 1260100, - 668271710, - 1260000, - 668250110, - 1259900, - 668228510, - 1259800, - 668206910, - 1259700, - 668185310, - 1259600, - 668163710, - 1259500, - 668142110, - 1259400, - 668120510, - 1259300, - 668098910, - 1259200, - 668077310, - 1259100, - 668055710, - 1259000, - 668034110, - 1258900, - 668012510, - 1258800, - 667990910, - 1258700, - 667969310, - 1258600, - 667947710, - 1258500, - 667926110, - 1258400, - 667904510, - 1258300, - 667882910, - 1258200, - 667861310, - 1258100, - 667839710, - 1258000, - 667818110, - 1257900, - 667796510, - 1257800, - 667774910, - 1257700, - 667753310, - 1257600, - 667731710, - 1257500, - 667710110, - 1257400, - 667688510, - 1257300, - 667666910, - 1257200, - 667645310, - 1257100, - 667623710, - 1257000, - 667602110, - 1256900, - 667580510, - 1256800, - 667558910, - 1256700, - 667537310, - 1256600, - 667515710, - 1256500, - 667494110, - 1256400, - 667472510, - 1256300, - 667450910, - 1256200, - 667429310, - 1256100, - 667407710, - 1256000, - 667386110, - 1255900, - 667364510, - 1255800, - 667342910, - 1255700, - 667321310, - 1255600, - 667299710, - 1255500, - 667278110, - 1255400, - 667256510, - 1255300, - 667234910, - 1255200, - 667213310, - 1255100, - 667191710, - 1255000, - 667170110, - 1254900, - 667148510, - 1254800, - 667126910, - 1254700, - 667105310, - 1254600, - 667083710, - 1254500, - 667062110, - 1254400, - 667040510, - 1254300, - 667018910, - 1254200, - 666997310, - 1254100, - 666975710, - 1254000, - 666954110, - 1253900, - 666932510, - 1253800, - 666910910, - 1253700, - 666889310, - 1253600, - 666867710, - 1253500, - 666846110, - 1253400, - 666824510, - 1253300, - 666802910, - 1253200, - 666781310, - 1253100, - 666759710, - 1253000, - 666738110, - 1252900, - 666716510, - 1252800, - 666694910, - 1252700, - 666673310, - 1252600, - 666651710, - 1252500, - 666630110, - 1252400, - 666608510, - 1252300, - 666586910, - 1252200, - 666565310, - 1252100, - 666543710, - 1252000, - 666522110, - 1251900, - 666500510, - 1251800, - 666478910, - 1251700, - 666457310, - 1251600, - 666435710, - 1251500, - 666414110, - 1251400, - 666392510, - 1251300, - 666370910, - 1251200, - 666349310, - 1251100, - 666327710, - 1251000, - 666306110, - 1250900, - 666284510, - 1250800, - 666262910, - 1250700, - 666241310, - 1250600, - 666219710, - 1250500, - 666198110, - 1250400, - 666176510, - 1250300, - 666154910, - 1250200, - 666133310, - 1250100, - 666111710, - 1250000, - 666090110, - 1249900, - 666068510, - 1249800, - 666046910, - 1249700, - 666025310, - 1249600, - 666003710, - 1249500, - 665982110, - 1249400, - 665960510, - 1249300, - 665938910, - 1249200, - 665917310, - 1249100, - 665895710, - 1249000, - 665874110, - 1248900, - 665852510, - 1248800, - 665830910, - 1248700, - 665809310, - 1248600, - 665787710, - 1248500, - 665766110, - 1248400, - 665744510, - 1248300, - 665722910, - 1248200, - 665701310, - 1248100, - 665679710, - 1248000, - 665658110, - 1247900, - 665636510, - 1247800, - 665614910, - 1247700, - 665593310, - 1247600, - 665571710, - 1247500, - 665550110, - 1247400, - 665528510, - 1247300, - 665506910, - 1247200, - 665485310, - 1247100, - 665463710, - 1247000, - 665442110, - 1246900, - 665420510, - 1246800, - 665398910, - 1246700, - 665377310, - 1246600, - 665355710, - 1246500, - 665334110, - 1246400, - 665312510, - 1246300, - 665290910, - 1246200, - 665269310, - 1246100, - 665247710, - 1246000, - 665226110, - 1245900, - 665204510, - 1245800, - 665182910, - 1245700, - 665161310, - 1245600, - 665139710, - 1245500, - 665118110, - 1245400, - 665096510, - 1245300, - 665074910, - 1245200, - 665053310, - 1245100, - 665031710, - 1245000, - 665010110, - 1244900, - 664988510, - 1244800, - 664966910, - 1244700, - 664945310, - 1244600, - 664923710, - 1244500, - 664902110, - 1244400, - 664880510, - 1244300, - 664858910, - 1244200, - 664837310, - 1244100, - 664815710, - 1244000, - 664794110, - 1243900, - 664772510, - 1243800, - 664750910, - 1243700, - 664729310, - 1243600, - 664707710, - 1243500, - 664686110, - 1243400, - 664664510, - 1243300, - 664642910, - 1243200, - 664621310, - 1243100, - 664599710, - 1243000, - 664578110, - 1242900, - 664556510, - 1242800, - 664534910, - 1242700, - 664513310, - 1242600, - 664491710, - 1242500, - 664470110, - 1242400, - 664448510, - 1242300, - 664426910, - 1242200, - 664405310, - 1242100, - 664383710, - 1242000, - 664362110, - 1241900, - 664340510, - 1241800, - 664318910, - 1241700, - 664297310, - 1241600, - 664275710, - 1241500, - 664254110, - 1241400, - 664232510, - 1241300, - 664210910, - 1241200, - 664189310, - 1241100, - 664167710, - 1241000, - 664146110, - 1240900, - 664124510, - 1240800, - 664102910, - 1240700, - 664081310, - 1240600, - 664059710, - 1240500, - 664038110, - 1240400, - 664016510, - 1240300, - 663994910, - 1240200, - 663973310, - 1240100, - 663951710, - 1240000, - 663930110, - 1239900, - 663908510, - 1239800, - 663886910, - 1239700, - 663865310, - 1239600, - 663843710, - 1239500, - 663822110, - 1239400, - 663800510, - 1239300, - 663778910, - 1239200, - 663757310, - 1239100, - 663735710, - 1239000, - 663714110, - 1238900, - 663692510, - 1238800, - 663670910, - 1238700, - 663649310, - 1238600, - 663627710, - 1238500, - 663606110, - 1238400, - 663584510, - 1238300, - 663562910, - 1238200, - 663541310, - 1238100, - 663519710, - 1238000, - 663498110, - 1237900, - 663476510, - 1237800, - 663454910, - 1237700, - 663433310, - 1237600, - 663411710, - 1237500, - 663390110, - 1237400, - 663368510, - 1237300, - 663346910, - 1237200, - 663325310, - 1237100, - 663303710, - 1237000, - 663282110, - 1236900, - 663260510, - 1236800, - 663238910, - 1236700, - 663217310, - 1236600, - 663195710, - 1236500, - 663174110, - 1236400, - 663152510, - 1236300, - 663130910, - 1236200, - 663109310, - 1236100, - 663087710, - 1236000, - 663066110, - 1235900, - 663044510, - 1235800, - 663022910, - 1235700, - 663001310, - 1235600, - 662979710, - 1235500, - 662958110, - 1235400, - 662936510, - 1235300, - 662914910, - 1235200, - 662893310, - 1235100, - 662871710, - 1235000, - 662850110, - 1234900, - 662828510, - 1234800, - 662806910, - 1234700, - 662785310, - 1234600, - 662763710, - 1234500, - 662742110, - 1234400, - 662720510, - 1234300, - 662698910, - 1234200, - 662677310, - 1234100, - 662655710, - 1234000, - 662634110, - 1233900, - 662612510, - 1233800, - 662590910, - 1233700, - 662569310, - 1233600, - 662547710, - 1233500, - 662526110, - 1233400, - 662504510, - 1233300, - 662482910, - 1233200, - 662461310, - 1233100, - 662439710, - 1233000, - 662418110, - 1232900, - 662396510, - 1232800, - 662374910, - 1232700, - 662353310, - 1232600, - 662331710, - 1232500, - 662310110, - 1232400, - 662288510, - 1232300, - 662266910, - 1232200, - 662245310, - 1232100, - 662223710, - 1232000, - 662202110, - 1231900, - 662180510, - 1231800, - 662158910, - 1231700, - 662137310, - 1231600, - 662115710, - 1231500, - 662094110, - 1231400, - 662072510, - 1231300, - 662050910, - 1231200, - 662029310, - 1231100, - 662007710, - 1231000, - 661986110, - 1230900, - 661964510, - 1230800, - 661942910, - 1230700, - 661921310, - 1230600, - 661899710, - 1230500, - 661878110, - 1230400, - 661856510, - 1230300, - 661834910, - 1230200, - 661813310, - 1230100, - 661791710, - 1230000, - 661770110, - 1229900, - 661748510, - 1229800, - 661726910, - 1229700, - 661705310, - 1229600, - 661683710, - 1229500, - 661662110, - 1229400, - 661640510, - 1229300, - 661618910, - 1229200, - 661597310, - 1229100, - 661575710, - 1229000, - 661554110, - 1228900, - 661532510, - 1228800, - 661510910, - 1228700, - 661489310, - 1228600, - 661467710, - 1228500, - 661446110, - 1228400, - 661424510, - 1228300, - 661402910, - 1228200, - 661381310, - 1228100, - 661359710, - 1228000, - 661338110, - 1227900, - 661316510, - 1227800, - 661294910, - 1227700, - 661273310, - 1227600, - 661251710, - 1227500, - 661230110, - 1227400, - 661208510, - 1227300, - 661186910, - 1227200, - 661165310, - 1227100, - 661143710, - 1227000, - 661122110, - 1226900, - 661100510, - 1226800, - 661078910, - 1226700, - 661057310, - 1226600, - 661035710, - 1226500, - 661014110, - 1226400, - 660992510, - 1226300, - 660970910, - 1226200, - 660949310, - 1226100, - 660927710, - 1226000, - 660906110, - 1225900, - 660884510, - 1225800, - 660862910, - 1225700, - 660841310, - 1225600, - 660819710, - 1225500, - 660798110, - 1225400, - 660776510, - 1225300, - 660754910, - 1225200, - 660733310, - 1225100, - 660711710, - 1225000, - 660690110, - 1224900, - 660668510, - 1224800, - 660646910, - 1224700, - 660625310, - 1224600, - 660603710, - 1224500, - 660582110, - 1224400, - 660560510, - 1224300, - 660538910, - 1224200, - 660517310, - 1224100, - 660495710, - 1224000, - 660474110, - 1223900, - 660452510, - 1223800, - 660430910, - 1223700, - 660409310, - 1223600, - 660387710, - 1223500, - 660366110, - 1223400, - 660344510, - 1223300, - 660322910, - 1223200, - 660301310, - 1223100, - 660279710, - 1223000, - 660258110, - 1222900, - 660236510, - 1222800, - 660214910, - 1222700, - 660193310, - 1222600, - 660171710, - 1222500, - 660150110, - 1222400, - 660128510, - 1222300, - 660106910, - 1222200, - 660085310, - 1222100, - 660063710, - 1222000, - 660042110, - 1221900, - 660020510, - 1221800, - 659998910, - 1221700, - 659977310, - 1221600, - 659955710, - 1221500, - 659934110, - 1221400, - 659912510, - 1221300, - 659890910, - 1221200, - 659869310, - 1221100, - 659847710, - 1221000, - 659826110, - 1220900, - 659804510, - 1220800, - 659782910, - 1220700, - 659761310, - 1220600, - 659739710, - 1220500, - 659718110, - 1220400, - 659696510, - 1220300, - 659674910, - 1220200, - 659653310, - 1220100, - 659631710, - 1220000, - 659610110, - 1219900, - 659588510, - 1219800, - 659566910, - 1219700, - 659545310, - 1219600, - 659523710, - 1219500, - 659502110, - 1219400, - 659480510, - 1219300, - 659458910, - 1219200, - 659437310, - 1219100, - 659415710, - 1219000, - 659394110, - 1218900, - 659372510, - 1218800, - 659350910, - 1218700, - 659329310, - 1218600, - 659307710, - 1218500, - 659286110, - 1218400, - 659264510, - 1218300, - 659242910, - 1218200, - 659221310, - 1218100, - 659199710, - 1218000, - 659178110, - 1217900, - 659156510, - 1217800, - 659134910, - 1217700, - 659113310, - 1217600, - 659091710, - 1217500, - 659070110, - 1217400, - 659048510, - 1217300, - 659026910, - 1217200, - 659005310, - 1217100, - 658983710, - 1217000, - 658962110, - 1216900, - 658940510, - 1216800, - 658918910, - 1216700, - 658897310, - 1216600, - 658875710, - 1216500, - 658854110, - 1216400, - 658832510, - 1216300, - 658810910, - 1216200, - 658789310, - 1216100, - 658767710, - 1216000, - 658746110, - 1215900, - 658724510, - 1215800, - 658702910, - 1215700, - 658681310, - 1215600, - 658659710, - 1215500, - 658638110, - 1215400, - 658616510, - 1215300, - 658594910, - 1215200, - 658573310, - 1215100, - 658551710, - 1215000, - 658530110, - 1214900, - 658508510, - 1214800, - 658486910, - 1214700, - 658465310, - 1214600, - 658443710, - 1214500, - 658422110, - 1214400, - 658400510, - 1214300, - 658378910, - 1214200, - 658357310, - 1214100, - 658335710, - 1214000, - 658314110, - 1213900, - 658292510, - 1213800, - 658270910, - 1213700, - 658249310, - 1213600, - 658227710, - 1213500, - 658206110, - 1213400, - 658184510, - 1213300, - 658162910, - 1213200, - 658141310, - 1213100, - 658119710, - 1213000, - 658098110, - 1212900, - 658076510, - 1212800, - 658054910, - 1212700, - 658033310, - 1212600, - 658011710, - 1212500, - 657990110, - 1212400, - 657968510, - 1212300, - 657946910, - 1212200, - 657925310, - 1212100, - 657903710, - 1212000, - 657882110, - 1211900, - 657860510, - 1211800, - 657838910, - 1211700, - 657817310, - 1211600, - 657795710, - 1211500, - 657774110, - 1211400, - 657752510, - 1211300, - 657730910, - 1211200, - 657709310, - 1211100, - 657687710, - 1211000, - 657666110, - 1210900, - 657644510, - 1210800, - 657622910, - 1210700, - 657601310, - 1210600, - 657579710, - 1210500, - 657558110, - 1210400, - 657536510, - 1210300, - 657514910, - 1210200, - 657493310, - 1210100, - 657471710, - 1210000, - 657450110, - 1209900, - 657428510, - 1209800, - 657406910, - 1209700, - 657385310, - 1209600, - 657363710, - 1209500, - 657342110, - 1209400, - 657320510, - 1209300, - 657298910, - 1209200, - 657277310, - 1209100, - 657255710, - 1209000, - 657234110, - 1208900, - 657212510, - 1208800, - 657190910, - 1208700, - 657169310, - 1208600, - 657147710, - 1208500, - 657126110, - 1208400, - 657104510, - 1208300, - 657082910, - 1208200, - 657061310, - 1208100, - 657039710, - 1208000, - 657018110, - 1207900, - 656996510, - 1207800, - 656974910, - 1207700, - 656953310, - 1207600, - 656931710, - 1207500, - 656910110, - 1207400, - 656888510, - 1207300, - 656866910, - 1207200, - 656845310, - 1207100, - 656823710, - 1207000, - 656802110, - 1206900, - 656780510, - 1206800, - 656758910, - 1206700, - 656737310, - 1206600, - 656715710, - 1206500, - 656694110, - 1206400, - 656672510, - 1206300, - 656650910, - 1206200, - 656629310, - 1206100, - 656607710, - 1206000, - 656586110, - 1205900, - 656564510, - 1205800, - 656542910, - 1205700, - 656521310, - 1205600, - 656499710, - 1205500, - 656478110, - 1205400, - 656456510, - 1205300, - 656434910, - 1205200, - 656413310, - 1205100, - 656391710, - 1205000, - 656370110, - 1204900, - 656348510, - 1204800, - 656326910, - 1204700, - 656305310, - 1204600, - 656283710, - 1204500, - 656262110, - 1204400, - 656240510, - 1204300, - 656218910, - 1204200, - 656197310, - 1204100, - 656175710, - 1204000, - 656154110, - 1203900, - 656132510, - 1203800, - 656110910, - 1203700, - 656089310, - 1203600, - 656067710, - 1203500, - 656046110, - 1203400, - 656024510, - 1203300, - 656002910, - 1203200, - 655981310, - 1203100, - 655959710, - 1203000, - 655938110, - 1202900, - 655916510, - 1202800, - 655894910, - 1202700, - 655873310, - 1202600, - 655851710, - 1202500, - 655830110, - 1202400, - 655808510, - 1202300, - 655786910, - 1202200, - 655765310, - 1202100, - 655743710, - 1202000, - 655722110, - 1201900, - 655700510, - 1201800, - 655678910, - 1201700, - 655657310, - 1201600, - 655635710, - 1201500, - 655614110, - 1201400, - 655592510, - 1201300, - 655570910, - 1201200, - 655549310, - 1201100, - 655527710, - 1201000, - 655506110, - 1200900, - 655484510, - 1200800, - 655462910, - 1200700, - 655441310, - 1200600, - 655419710, - 1200500, - 655398110, - 1200400, - 655376510, - 1200300, - 655354910, - 1200200, - 655333310, - 1200100, - 655311710, - 1200000, - 655290110, - 1199900, - 655268510, - 1199800, - 655246910, - 1199700, - 655225310, - 1199600, - 655203710, - 1199500, - 655182110, - 1199400, - 655160510, - 1199300, - 655138910, - 1199200, - 655117310, - 1199100, - 655095710, - 1199000, - 655074110, - 1198900, - 655052510, - 1198800, - 655030910, - 1198700, - 655009310, - 1198600, - 654987710, - 1198500, - 654966110, - 1198400, - 654944510, - 1198300, - 654922910, - 1198200, - 654901310, - 1198100, - 654879710, - 1198000, - 654858110, - 1197900, - 654836510, - 1197800, - 654814910, - 1197700, - 654793310, - 1197600, - 654771710, - 1197500, - 654750110, - 1197400, - 654728510, - 1197300, - 654706910, - 1197200, - 654685310, - 1197100, - 654663710, - 1197000, - 654642110, - 1196900, - 654620510, - 1196800, - 654598910, - 1196700, - 654577310, - 1196600, - 654555710, - 1196500, - 654534110, - 1196400, - 654512510, - 1196300, - 654490910, - 1196200, - 654469310, - 1196100, - 654447710, - 1196000, - 654426110, - 1195900, - 654404510, - 1195800, - 654382910, - 1195700, - 654361310, - 1195600, - 654339710, - 1195500, - 654318110, - 1195400, - 654296510, - 1195300, - 654274910, - 1195200, - 654253310, - 1195100, - 654231710, - 1195000, - 654210110, - 1194900, - 654188510, - 1194800, - 654166910, - 1194700, - 654145310, - 1194600, - 654123710, - 1194500, - 654102110, - 1194400, - 654080510, - 1194300, - 654058910, - 1194200, - 654037310, - 1194100, - 654015710, - 1194000, - 653994110, - 1193900, - 653972510, - 1193800, - 653950910, - 1193700, - 653929310, - 1193600, - 653907710, - 1193500, - 653886110, - 1193400, - 653864510, - 1193300, - 653842910, - 1193200, - 653821310, - 1193100, - 653799710, - 1193000, - 653778110, - 1192900, - 653756510, - 1192800, - 653734910, - 1192700, - 653713310, - 1192600, - 653691710, - 1192500, - 653670110, - 1192400, - 653648510, - 1192300, - 653626910, - 1192200, - 653605310, - 1192100, - 653583710, - 1192000, - 653562110, - 1191900, - 653540510, - 1191800, - 653518910, - 1191700, - 653497310, - 1191600, - 653475710, - 1191500, - 653454110, - 1191400, - 653432510, - 1191300, - 653410910, - 1191200, - 653389310, - 1191100, - 653367710, - 1191000, - 653346110, - 1190900, - 653324510, - 1190800, - 653302910, - 1190700, - 653281310, - 1190600, - 653259710, - 1190500, - 653238110, - 1190400, - 653216510, - 1190300, - 653194910, - 1190200, - 653173310, - 1190100, - 653151710, - 1190000, - 653130110, - 1189900, - 653108510, - 1189800, - 653086910, - 1189700, - 653065310, - 1189600, - 653043710, - 1189500, - 653022110, - 1189400, - 653000510, - 1189300, - 652978910, - 1189200, - 652957310, - 1189100, - 652935710, - 1189000, - 652914110, - 1188900, - 652892510, - 1188800, - 652870910, - 1188700, - 652849310, - 1188600, - 652827710, - 1188500, - 652806110, - 1188400, - 652784510, - 1188300, - 652762910, - 1188200, - 652741310, - 1188100, - 652719710, - 1188000, - 652698110, - 1187900, - 652676510, - 1187800, - 652654910, - 1187700, - 652633310, - 1187600, - 652611710, - 1187500, - 652590110, - 1187400, - 652568510, - 1187300, - 652546910, - 1187200, - 652525310, - 1187100, - 652503710, - 1187000, - 652482110, - 1186900, - 652460510, - 1186800, - 652438910, - 1186700, - 652417310, - 1186600, - 652395710, - 1186500, - 652374110, - 1186400, - 652352510, - 1186300, - 652330910, - 1186200, - 652309310, - 1186100, - 652287710, - 1186000, - 652266110, - 1185900, - 652244510, - 1185800, - 652222910, - 1185700, - 652201310, - 1185600, - 652179710, - 1185500, - 652158110, - 1185400, - 652136510, - 1185300, - 652114910, - 1185200, - 652093310, - 1185100, - 652071710, - 1185000, - 652050110, - 1184900, - 652028510, - 1184800, - 652006910, - 1184700, - 651985310, - 1184600, - 651963710, - 1184500, - 651942110, - 1184400, - 651920510, - 1184300, - 651898910, - 1184200, - 651877310, - 1184100, - 651855710, - 1184000, - 651834110, - 1183900, - 651812510, - 1183800, - 651790910, - 1183700, - 651769310, - 1183600, - 651747710, - 1183500, - 651726110, - 1183400, - 651704510, - 1183300, - 651682910, - 1183200, - 651661310, - 1183100, - 651639710, - 1183000, - 651618110, - 1182900, - 651596510, - 1182800, - 651574910, - 1182700, - 651553310, - 1182600, - 651531710, - 1182500, - 651510110, - 1182400, - 651488510, - 1182300, - 651466910, - 1182200, - 651445310, - 1182100, - 651423710, - 1182000, - 651402110, - 1181900, - 651380510, - 1181800, - 651358910, - 1181700, - 651337310, - 1181600, - 651315710, - 1181500, - 651294110, - 1181400, - 651272510, - 1181300, - 651250910, - 1181200, - 651229310, - 1181100, - 651207710, - 1181000, - 651186110, - 1180900, - 651164510, - 1180800, - 651142910, - 1180700, - 651121310, - 1180600, - 651099710, - 1180500, - 651078110, - 1180400, - 651056510, - 1180300, - 651034910, - 1180200, - 651013310, - 1180100, - 650991710, - 1180000, - 650970110, - 1179900, - 650948510, - 1179800, - 650926910, - 1179700, - 650905310, - 1179600, - 650883710, - 1179500, - 650862110, - 1179400, - 650840510, - 1179300, - 650818910, - 1179200, - 650797310, - 1179100, - 650775710, - 1179000, - 650754110, - 1178900, - 650732510, - 1178800, - 650710910, - 1178700, - 650689310, - 1178600, - 650667710, - 1178500, - 650646110, - 1178400, - 650624510, - 1178300, - 650602910, - 1178200, - 650581310, - 1178100, - 650559710, - 1178000, - 650538110, - 1177900, - 650516510, - 1177800, - 650494910, - 1177700, - 650473310, - 1177600, - 650451710, - 1177500, - 650430110, - 1177400, - 650408510, - 1177300, - 650386910, - 1177200, - 650365310, - 1177100, - 650343710, - 1177000, - 650322110, - 1176900, - 650300510, - 1176800, - 650278910, - 1176700, - 650257310, - 1176600, - 650235710, - 1176500, - 650214110, - 1176400, - 650192510, - 1176300, - 650170910, - 1176200, - 650149310, - 1176100, - 650127710, - 1176000, - 650106110, - 1175900, - 650084510, - 1175800, - 650062910, - 1175700, - 650041310, - 1175600, - 650019710, - 1175500, - 649998110, - 1175400, - 649976510, - 1175300, - 649954910, - 1175200, - 649933310, - 1175100, - 649911710, - 1175000, - 649890110, - 1174900, - 649868510, - 1174800, - 649846910, - 1174700, - 649825310, - 1174600, - 649803710, - 1174500, - 649782110, - 1174400, - 649760510, - 1174300, - 649738910, - 1174200, - 649717310, - 1174100, - 649695710, - 1174000, - 649674110, - 1173900, - 649652510, - 1173800, - 649630910, - 1173700, - 649609310, - 1173600, - 649587710, - 1173500, - 649566110, - 1173400, - 649544510, - 1173300, - 649522910, - 1173200, - 649501310, - 1173100, - 649479710, - 1173000, - 649458110, - 1172900, - 649436510, - 1172800, - 649414910, - 1172700, - 649393310, - 1172600, - 649371710, - 1172500, - 649350110, - 1172400, - 649328510, - 1172300, - 649306910, - 1172200, - 649285310, - 1172100, - 649263710, - 1172000, - 649242110, - 1171900, - 649220510, - 1171800, - 649198910, - 1171700, - 649177310, - 1171600, - 649155710, - 1171500, - 649134110, - 1171400, - 649112510, - 1171300, - 649090910, - 1171200, - 649069310, - 1171100, - 649047710, - 1171000, - 649026110, - 1170900, - 649004510, - 1170800, - 648982910, - 1170700, - 648961310, - 1170600, - 648939710, - 1170500, - 648918110, - 1170400, - 648896510, - 1170300, - 648874910, - 1170200, - 648853310, - 1170100, - 648831710, - 1170000, - 648810110, - 1169900, - 648788510, - 1169800, - 648766910, - 1169700, - 648745310, - 1169600, - 648723710, - 1169500, - 648702110, - 1169400, - 648680510, - 1169300, - 648658910, - 1169200, - 648637310, - 1169100, - 648615710, - 1169000, - 648594110, - 1168900, - 648572510, - 1168800, - 648550910, - 1168700, - 648529310, - 1168600, - 648507710, - 1168500, - 648486110, - 1168400, - 648464510, - 1168300, - 648442910, - 1168200, - 648421310, - 1168100, - 648399710, - 1168000, - 648378110, - 1167900, - 648356510, - 1167800, - 648334910, - 1167700, - 648313310, - 1167600, - 648291710, - 1167500, - 648270110, - 1167400, - 648248510, - 1167300, - 648226910, - 1167200, - 648205310, - 1167100, - 648183710, - 1167000, - 648162110, - 1166900, - 648140510, - 1166800, - 648118910, - 1166700, - 648097310, - 1166600, - 648075710, - 1166500, - 648054110, - 1166400, - 648032510, - 1166300, - 648010910, - 1166200, - 647989310, - 1166100, - 647967710, - 1166000, - 647946110, - 1165900, - 647924510, - 1165800, - 647902910, - 1165700, - 647881310, - 1165600, - 647859710, - 1165500, - 647838110, - 1165400, - 647816510, - 1165300, - 647794910, - 1165200, - 647773310, - 1165100, - 647751710, - 1165000, - 647730110, - 1164900, - 647708510, - 1164800, - 647686910, - 1164700, - 647665310, - 1164600, - 647643710, - 1164500, - 647622110, - 1164400, - 647600510, - 1164300, - 647578910, - 1164200, - 647557310, - 1164100, - 647535710, - 1164000, - 647514110, - 1163900, - 647492510, - 1163800, - 647470910, - 1163700, - 647449310, - 1163600, - 647427710, - 1163500, - 647406110, - 1163400, - 647384510, - 1163300, - 647362910, - 1163200, - 647341310, - 1163100, - 647319710, - 1163000, - 647298110, - 1162900, - 647276510, - 1162800, - 647254910, - 1162700, - 647233310, - 1162600, - 647211710, - 1162500, - 647190110, - 1162400, - 647168510, - 1162300, - 647146910, - 1162200, - 647125310, - 1162100, - 647103710, - 1162000, - 647082110, - 1161900, - 647060510, - 1161800, - 647038910, - 1161700, - 647017310, - 1161600, - 646995710, - 1161500, - 646974110, - 1161400, - 646952510, - 1161300, - 646930910, - 1161200, - 646909310, - 1161100, - 646887710, - 1161000, - 646866110, - 1160900, - 646844510, - 1160800, - 646822910, - 1160700, - 646801310, - 1160600, - 646779710, - 1160500, - 646758110, - 1160400, - 646736510, - 1160300, - 646714910, - 1160200, - 646693310, - 1160100, - 646671710, - 1160000, - 646650110, - 1159900, - 646628510, - 1159800, - 646606910, - 1159700, - 646585310, - 1159600, - 646563710, - 1159500, - 646542110, - 1159400, - 646520510, - 1159300, - 646498910, - 1159200, - 646477310, - 1159100, - 646455710, - 1159000, - 646434110, - 1158900, - 646412510, - 1158800, - 646390910, - 1158700, - 646369310, - 1158600, - 646347710, - 1158500, - 646326110, - 1158400, - 646304510, - 1158300, - 646282910, - 1158200, - 646261310, - 1158100, - 646239710, - 1158000, - 646218110, - 1157900, - 646196510, - 1157800, - 646174910, - 1157700, - 646153310, - 1157600, - 646131710, - 1157500, - 646110110, - 1157400, - 646088510, - 1157300, - 646066910, - 1157200, - 646045310, - 1157100, - 646023710, - 1157000, - 646002110, - 1156900, - 645980510, - 1156800, - 645958910, - 1156700, - 645937310, - 1156600, - 645915710, - 1156500, - 645894110, - 1156400, - 645872510, - 1156300, - 645850910, - 1156200, - 645829310, - 1156100, - 645807710, - 1156000, - 645786110, - 1155900, - 645764510, - 1155800, - 645742910, - 1155700, - 645721310, - 1155600, - 645699710, - 1155500, - 645678110, - 1155400, - 645656510, - 1155300, - 645634910, - 1155200, - 645613310, - 1155100, - 645591710, - 1155000, - 645570110, - 1154900, - 645548510, - 1154800, - 645526910, - 1154700, - 645505310, - 1154600, - 645483710, - 1154500, - 645462110, - 1154400, - 645440510, - 1154300, - 645418910, - 1154200, - 645397310, - 1154100, - 645375710, - 1154000, - 645354110, - 1153900, - 645332510, - 1153800, - 645310910, - 1153700, - 645289310, - 1153600, - 645267710, - 1153500, - 645246110, - 1153400, - 645224510, - 1153300, - 645202910, - 1153200, - 645181310, - 1153100, - 645159710, - 1153000, - 645138110, - 1152900, - 645116510, - 1152800, - 645094910, - 1152700, - 645073310, - 1152600, - 645051710, - 1152500, - 645030110, - 1152400, - 645008510, - 1152300, - 644986910, - 1152200, - 644965310, - 1152100, - 644943710, - 1152000, - 644922110, - 1151900, - 644900510, - 1151800, - 644878910, - 1151700, - 644857310, - 1151600, - 644835710, - 1151500, - 644814110, - 1151400, - 644792510, - 1151300, - 644770910, - 1151200, - 644749310, - 1151100, - 644727710, - 1151000, - 644706110, - 1150900, - 644684510, - 1150800, - 644662910, - 1150700, - 644641310, - 1150600, - 644619710, - 1150500, - 644598110, - 1150400, - 644576510, - 1150300, - 644554910, - 1150200, - 644533310, - 1150100, - 644511710, - 1150000, - 644490110, - 1149900, - 644468510, - 1149800, - 644446910, - 1149700, - 644425310, - 1149600, - 644403710, - 1149500, - 644382110, - 1149400, - 644360510, - 1149300, - 644338910, - 1149200, - 644317310, - 1149100, - 644295710, - 1149000, - 644274110, - 1148900, - 644252510, - 1148800, - 644230910, - 1148700, - 644209310, - 1148600, - 644187710, - 1148500, - 644166110, - 1148400, - 644144510, - 1148300, - 644122910, - 1148200, - 644101310, - 1148100, - 644079710, - 1148000, - 644058110, - 1147900, - 644036510, - 1147800, - 644014910, - 1147700, - 643993310, - 1147600, - 643971710, - 1147500, - 643950110, - 1147400, - 643928510, - 1147300, - 643906910, - 1147200, - 643885310, - 1147100, - 643863710, - 1147000, - 643842110, - 1146900, - 643820510, - 1146800, - 643798910, - 1146700, - 643777310, - 1146600, - 643755710, - 1146500, - 643734110, - 1146400, - 643712510, - 1146300, - 643690910, - 1146200, - 643669310, - 1146100, - 643647710, - 1146000, - 643626110, - 1145900, - 643604510, - 1145800, - 643582910, - 1145700, - 643561310, - 1145600, - 643539710, - 1145500, - 643518110, - 1145400, - 643496510, - 1145300, - 643474910, - 1145200, - 643453310, - 1145100, - 643431710, - 1145000, - 643410110, - 1144900, - 643388510, - 1144800, - 643366910, - 1144700, - 643345310, - 1144600, - 643323710, - 1144500, - 643302110, - 1144400, - 643280510, - 1144300, - 643258910, - 1144200, - 643237310, - 1144100, - 643215710, - 1144000, - 643194110, - 1143900, - 643172510, - 1143800, - 643150910, - 1143700, - 643129310, - 1143600, - 643107710, - 1143500, - 643086110, - 1143400, - 643064510, - 1143300, - 643042910, - 1143200, - 643021310, - 1143100, - 642999710, - 1143000, - 642978110, - 1142900, - 642956510, - 1142800, - 642934910, - 1142700, - 642913310, - 1142600, - 642891710, - 1142500, - 642870110, - 1142400, - 642848510, - 1142300, - 642826910, - 1142200, - 642805310, - 1142100, - 642783710, - 1142000, - 642762110, - 1141900, - 642740510, - 1141800, - 642718910, - 1141700, - 642697310, - 1141600, - 642675710, - 1141500, - 642654110, - 1141400, - 642632510, - 1141300, - 642610910, - 1141200, - 642589310, - 1141100, - 642567710, - 1141000, - 642546110, - 1140900, - 642524510, - 1140800, - 642502910, - 1140700, - 642481310, - 1140600, - 642459710, - 1140500, - 642438110, - 1140400, - 642416510, - 1140300, - 642394910, - 1140200, - 642373310, - 1140100, - 642351710, - 1140000, - 642330110, - 1139900, - 642308510, - 1139800, - 642286910, - 1139700, - 642265310, - 1139600, - 642243710, - 1139500, - 642222110, - 1139400, - 642200510, - 1139300, - 642178910, - 1139200, - 642157310, - 1139100, - 642135710, - 1139000, - 642114110, - 1138900, - 642092510, - 1138800, - 642070910, - 1138700, - 642049310, - 1138600, - 642027710, - 1138500, - 642006110, - 1138400, - 641984510, - 1138300, - 641962910, - 1138200, - 641941310, - 1138100, - 641919710, - 1138000, - 641898110, - 1137900, - 641876510, - 1137800, - 641854910, - 1137700, - 641833310, - 1137600, - 641811710, - 1137500, - 641790110, - 1137400, - 641768510, - 1137300, - 641746910, - 1137200, - 641725310, - 1137100, - 641703710, - 1137000, - 641682110, - 1136900, - 641660510, - 1136800, - 641638910, - 1136700, - 641617310, - 1136600, - 641595710, - 1136500, - 641574110, - 1136400, - 641552510, - 1136300, - 641530910, - 1136200, - 641509310, - 1136100, - 641487710, - 1136000, - 641466110, - 1135900, - 641444510, - 1135800, - 641422910, - 1135700, - 641401310, - 1135600, - 641379710, - 1135500, - 641358110, - 1135400, - 641336510, - 1135300, - 641314910, - 1135200, - 641293310, - 1135100, - 641271710, - 1135000, - 641250110, - 1134900, - 641228510, - 1134800, - 641206910, - 1134700, - 641185310, - 1134600, - 641163710, - 1134500, - 641142110, - 1134400, - 641120510, - 1134300, - 641098910, - 1134200, - 641077310, - 1134100, - 641055710, - 1134000, - 641034110, - 1133900, - 641012510, - 1133800, - 640990910, - 1133700, - 640969310, - 1133600, - 640947710, - 1133500, - 640926110, - 1133400, - 640904510, - 1133300, - 640882910, - 1133200, - 640861310, - 1133100, - 640839710, - 1133000, - 640818110, - 1132900, - 640796510, - 1132800, - 640774910, - 1132700, - 640753310, - 1132600, - 640731710, - 1132500, - 640710110, - 1132400, - 640688510, - 1132300, - 640666910, - 1132200, - 640645310, - 1132100, - 640623710, - 1132000, - 640602110, - 1131900, - 640580510, - 1131800, - 640558910, - 1131700, - 640537310, - 1131600, - 640515710, - 1131500, - 640494110, - 1131400, - 640472510, - 1131300, - 640450910, - 1131200, - 640429310, - 1131100, - 640407710, - 1131000, - 640386110, - 1130900, - 640364510, - 1130800, - 640342910, - 1130700, - 640321310, - 1130600, - 640299710, - 1130500, - 640278110, - 1130400, - 640256510, - 1130300, - 640234910, - 1130200, - 640213310, - 1130100, - 640191710, - 1130000, - 640170110, - 1129900, - 640148510, - 1129800, - 640126910, - 1129700, - 640105310, - 1129600, - 640083710, - 1129500, - 640062110, - 1129400, - 640040510, - 1129300, - 640018910, - 1129200, - 639997310, - 1129100, - 639975710, - 1129000, - 639954110, - 1128900, - 639932510, - 1128800, - 639910910, - 1128700, - 639889310, - 1128600, - 639867710, - 1128500, - 639846110, - 1128400, - 639824510, - 1128300, - 639802910, - 1128200, - 639781310, - 1128100, - 639759710, - 1128000, - 639738110, - 1127900, - 639716510, - 1127800, - 639694910, - 1127700, - 639673310, - 1127600, - 639651710, - 1127500, - 639630110, - 1127400, - 639608510, - 1127300, - 639586910, - 1127200, - 639565310, - 1127100, - 639543710, - 1127000, - 639522110, - 1126900, - 639500510, - 1126800, - 639478910, - 1126700, - 639457310, - 1126600, - 639435710, - 1126500, - 639414110, - 1126400, - 639392510, - 1126300, - 639370910, - 1126200, - 639349310, - 1126100, - 639327710, - 1126000, - 639306110, - 1125900, - 639284510, - 1125800, - 639262910, - 1125700, - 639241310, - 1125600, - 639219710, - 1125500, - 639198110, - 1125400, - 639176510, - 1125300, - 639154910, - 1125200, - 639133310, - 1125100, - 639111710, - 1125000, - 639090110, - 1124900, - 639068510, - 1124800, - 639046910, - 1124700, - 639025310, - 1124600, - 639003710, - 1124500, - 638982110, - 1124400, - 638960510, - 1124300, - 638938910, - 1124200, - 638917310, - 1124100, - 638895710, - 1124000, - 638874110, - 1123900, - 638852510, - 1123800, - 638830910, - 1123700, - 638809310, - 1123600, - 638787710, - 1123500, - 638766110, - 1123400, - 638744510, - 1123300, - 638722910, - 1123200, - 638701310, - 1123100, - 638679710, - 1123000, - 638658110, - 1122900, - 638636510, - 1122800, - 638614910, - 1122700, - 638593310, - 1122600, - 638571710, - 1122500, - 638550110, - 1122400, - 638528510, - 1122300, - 638506910, - 1122200, - 638485310, - 1122100, - 638463710, - 1122000, - 638442110, - 1121900, - 638420510, - 1121800, - 638398910, - 1121700, - 638377310, - 1121600, - 638355710, - 1121500, - 638334110, - 1121400, - 638312510, - 1121300, - 638290910, - 1121200, - 638269310, - 1121100, - 638247710, - 1121000, - 638226110, - 1120900, - 638204510, - 1120800, - 638182910, - 1120700, - 638161310, - 1120600, - 638139710, - 1120500, - 638118110, - 1120400, - 638096510, - 1120300, - 638074910, - 1120200, - 638053310, - 1120100, - 638031710, - 1120000, - 638010110, - 1119900, - 637988510, - 1119800, - 637966910, - 1119700, - 637945310, - 1119600, - 637923710, - 1119500, - 637902110, - 1119400, - 637880510, - 1119300, - 637858910, - 1119200, - 637837310, - 1119100, - 637815710, - 1119000, - 637794110, - 1118900, - 637772510, - 1118800, - 637750910, - 1118700, - 637729310, - 1118600, - 637707710, - 1118500, - 637686110, - 1118400, - 637664510, - 1118300, - 637642910, - 1118200, - 637621310, - 1118100, - 637599710, - 1118000, - 637578110, - 1117900, - 637556510, - 1117800, - 637534910, - 1117700, - 637513310, - 1117600, - 637491710, - 1117500, - 637470110, - 1117400, - 637448510, - 1117300, - 637426910, - 1117200, - 637405310, - 1117100, - 637383710, - 1117000, - 637362110, - 1116900, - 637340510, - 1116800, - 637318910, - 1116700, - 637297310, - 1116600, - 637275710, - 1116500, - 637254110, - 1116400, - 637232510, - 1116300, - 637210910, - 1116200, - 637189310, - 1116100, - 637167710, - 1116000, - 637146110, - 1115900, - 637124510, - 1115800, - 637102910, - 1115700, - 637081310, - 1115600, - 637059710, - 1115500, - 637038110, - 1115400, - 637016510, - 1115300, - 636994910, - 1115200, - 636973310, - 1115100, - 636951710, - 1115000, - 636930110, - 1114900, - 636908510, - 1114800, - 636886910, - 1114700, - 636865310, - 1114600, - 636843710, - 1114500, - 636822110, - 1114400, - 636800510, - 1114300, - 636778910, - 1114200, - 636757310, - 1114100, - 636735710, - 1114000, - 636714110, - 1113900, - 636692510, - 1113800, - 636670910, - 1113700, - 636649310, - 1113600, - 636627710, - 1113500, - 636606110, - 1113400, - 636584510, - 1113300, - 636562910, - 1113200, - 636541310, - 1113100, - 636519710, - 1113000, - 636498110, - 1112900, - 636476510, - 1112800, - 636454910, - 1112700, - 636433310, - 1112600, - 636411710, - 1112500, - 636390110, - 1112400, - 636368510, - 1112300, - 636346910, - 1112200, - 636325310, - 1112100, - 636303710, - 1112000, - 636282110, - 1111900, - 636260510, - 1111800, - 636238910, - 1111700, - 636217310, - 1111600, - 636195710, - 1111500, - 636174110, - 1111400, - 636152510, - 1111300, - 636130910, - 1111200, - 636109310, - 1111100, - 636087710, - 1111000, - 636066110, - 1110900, - 636044510, - 1110800, - 636022910, - 1110700, - 636001310, - 1110600, - 635979710, - 1110500, - 635958110, - 1110400, - 635936510, - 1110300, - 635914910, - 1110200, - 635893310, - 1110100, - 635871710, - 1110000, - 635850110, - 1109900, - 635828510, - 1109800, - 635806910, - 1109700, - 635785310, - 1109600, - 635763710, - 1109500, - 635742110, - 1109400, - 635720510, - 1109300, - 635698910, - 1109200, - 635677310, - 1109100, - 635655710, - 1109000, - 635634110, - 1108900, - 635612510, - 1108800, - 635590910, - 1108700, - 635569310, - 1108600, - 635547710, - 1108500, - 635526110, - 1108400, - 635504510, - 1108300, - 635482910, - 1108200, - 635461310, - 1108100, - 635439710, - 1108000, - 635418110, - 1107900, - 635396510, - 1107800, - 635374910, - 1107700, - 635353310, - 1107600, - 635331710, - 1107500, - 635310110, - 1107400, - 635288510, - 1107300, - 635266910, - 1107200, - 635245310, - 1107100, - 635223710, - 1107000, - 635202110, - 1106900, - 635180510, - 1106800, - 635158910, - 1106700, - 635137310, - 1106600, - 635115710, - 1106500, - 635094110, - 1106400, - 635072510, - 1106300, - 635050910, - 1106200, - 635029310, - 1106100, - 635007710, - 1106000, - 634986110, - 1105900, - 634964510, - 1105800, - 634942910, - 1105700, - 634921310, - 1105600, - 634899710, - 1105500, - 634878110, - 1105400, - 634856510, - 1105300, - 634834910, - 1105200, - 634813310, - 1105100, - 634791710, - 1105000, - 634770110, - 1104900, - 634748510, - 1104800, - 634726910, - 1104700, - 634705310, - 1104600, - 634683710, - 1104500, - 634662110, - 1104400, - 634640510, - 1104300, - 634618910, - 1104200, - 634597310, - 1104100, - 634575710, - 1104000, - 634554110, - 1103900, - 634532510, - 1103800, - 634510910, - 1103700, - 634489310, - 1103600, - 634467710, - 1103500, - 634446110, - 1103400, - 634424510, - 1103300, - 634402910, - 1103200, - 634381310, - 1103100, - 634359710, - 1103000, - 634338110, - 1102900, - 634316510, - 1102800, - 634294910, - 1102700, - 634273310, - 1102600, - 634251710, - 1102500, - 634230110, - 1102400, - 634208510, - 1102300, - 634186910, - 1102200, - 634165310, - 1102100, - 634143710, - 1102000, - 634122110, - 1101900, - 634100510, - 1101800, - 634078910, - 1101700, - 634057310, - 1101600, - 634035710, - 1101500, - 634014110, - 1101400, - 633992510, - 1101300, - 633970910, - 1101200, - 633949310, - 1101100, - 633927710, - 1101000, - 633906110, - 1100900, - 633884510, - 1100800, - 633862910, - 1100700, - 633841310, - 1100600, - 633819710, - 1100500, - 633798110, - 1100400, - 633776510, - 1100300, - 633754910, - 1100200, - 633733310, - 1100100, - 633711710, - 1100000, - 633690110, - 1099900, - 633668510, - 1099800, - 633646910, - 1099700, - 633625310, - 1099600, - 633603710, - 1099500, - 633582110, - 1099400, - 633560510, - 1099300, - 633538910, - 1099200, - 633517310, - 1099100, - 633495710, - 1099000, - 633474110, - 1098900, - 633452510, - 1098800, - 633430910, - 1098700, - 633409310, - 1098600, - 633387710, - 1098500, - 633366110, - 1098400, - 633344510, - 1098300, - 633322910, - 1098200, - 633301310, - 1098100, - 633279710, - 1098000, - 633258110, - 1097900, - 633236510, - 1097800, - 633214910, - 1097700, - 633193310, - 1097600, - 633171710, - 1097500, - 633150110, - 1097400, - 633128510, - 1097300, - 633106910, - 1097200, - 633085310, - 1097100, - 633063710, - 1097000, - 633042110, - 1096900, - 633020510, - 1096800, - 632998910, - 1096700, - 632977310, - 1096600, - 632955710, - 1096500, - 632934110, - 1096400, - 632912510, - 1096300, - 632890910, - 1096200, - 632869310, - 1096100, - 632847710, - 1096000, - 632826110, - 1095900, - 632804510, - 1095800, - 632782910, - 1095700, - 632761310, - 1095600, - 632739710, - 1095500, - 632718110, - 1095400, - 632696510, - 1095300, - 632674910, - 1095200, - 632653310, - 1095100, - 632631710, - 1095000, - 632610110, - 1094900, - 632588510, - 1094800, - 632566910, - 1094700, - 632545310, - 1094600, - 632523710, - 1094500, - 632502110, - 1094400, - 632480510, - 1094300, - 632458910, - 1094200, - 632437310, - 1094100, - 632415710, - 1094000, - 632394110, - 1093900, - 632372510, - 1093800, - 632350910, - 1093700, - 632329310, - 1093600, - 632307710, - 1093500, - 632286110, - 1093400, - 632264510, - 1093300, - 632242910, - 1093200, - 632221310, - 1093100, - 632199710, - 1093000, - 632178110, - 1092900, - 632156510, - 1092800, - 632134910, - 1092700, - 632113310, - 1092600, - 632091710, - 1092500, - 632070110, - 1092400, - 632048510, - 1092300, - 632026910, - 1092200, - 632005310, - 1092100, - 631983710, - 1092000, - 631962110, - 1091900, - 631940510, - 1091800, - 631918910, - 1091700, - 631897310, - 1091600, - 631875710, - 1091500, - 631854110, - 1091400, - 631832510, - 1091300, - 631810910, - 1091200, - 631789310, - 1091100, - 631767710, - 1091000, - 631746110, - 1090900, - 631724510, - 1090800, - 631702910, - 1090700, - 631681310, - 1090600, - 631659710, - 1090500, - 631638110, - 1090400, - 631616510, - 1090300, - 631594910, - 1090200, - 631573310, - 1090100, - 631551710, - 1090000, - 631530110, - 1089900, - 631508510, - 1089800, - 631486910, - 1089700, - 631465310, - 1089600, - 631443710, - 1089500, - 631422110, - 1089400, - 631400510, - 1089300, - 631378910, - 1089200, - 631357310, - 1089100, - 631335710, - 1089000, - 631314110, - 1088900, - 631292510, - 1088800, - 631270910, - 1088700, - 631249310, - 1088600, - 631227710, - 1088500, - 631206110, - 1088400, - 631184510, - 1088300, - 631162910, - 1088200, - 631141310, - 1088100, - 631119710, - 1088000, - 631098110, - 1087900, - 631076510, - 1087800, - 631054910, - 1087700, - 631033310, - 1087600, - 631011710, - 1087500, - 630990110, - 1087400, - 630968510, - 1087300, - 630946910, - 1087200, - 630925310, - 1087100, - 630903710, - 1087000, - 630882110, - 1086900, - 630860510, - 1086800, - 630838910, - 1086700, - 630817310, - 1086600, - 630795710, - 1086500, - 630774110, - 1086400, - 630752510, - 1086300, - 630730910, - 1086200, - 630709310, - 1086100, - 630687710, - 1086000, - 630666110, - 1085900, - 630644510, - 1085800, - 630622910, - 1085700, - 630601310, - 1085600, - 630579710, - 1085500, - 630558110, - 1085400, - 630536510, - 1085300, - 630514910, - 1085200, - 630493310, - 1085100, - 630471710, - 1085000, - 630450110, - 1084900, - 630428510, - 1084800, - 630406910, - 1084700, - 630385310, - 1084600, - 630363710, - 1084500, - 630342110, - 1084400, - 630320510, - 1084300, - 630298910, - 1084200, - 630277310, - 1084100, - 630255710, - 1084000, - 630234110, - 1083900, - 630212510, - 1083800, - 630190910, - 1083700, - 630169310, - 1083600, - 630147710, - 1083500, - 630126110, - 1083400, - 630104510, - 1083300, - 630082910, - 1083200, - 630061310, - 1083100, - 630039710, - 1083000, - 630018110, - 1082900, - 629996510, - 1082800, - 629974910, - 1082700, - 629953310, - 1082600, - 629931710, - 1082500, - 629910110, - 1082400, - 629888510, - 1082300, - 629866910, - 1082200, - 629845310, - 1082100, - 629823710, - 1082000, - 629802110, - 1081900, - 629780510, - 1081800, - 629758910, - 1081700, - 629737310, - 1081600, - 629715710, - 1081500, - 629694110, - 1081400, - 629672510, - 1081300, - 629650910, - 1081200, - 629629310, - 1081100, - 629607710, - 1081000, - 629586110, - 1080900, - 629564510, - 1080800, - 629542910, - 1080700, - 629521310, - 1080600, - 629499710, - 1080500, - 629478110, - 1080400, - 629456510, - 1080300, - 629434910, - 1080200, - 629413310, - 1080100, - 629391710, - 1080000, - 629370110, - 1079900, - 629348510, - 1079800, - 629326910, - 1079700, - 629305310, - 1079600, - 629283710, - 1079500, - 629262110, - 1079400, - 629240510, - 1079300, - 629218910, - 1079200, - 629197310, - 1079100, - 629175710, - 1079000, - 629154110, - 1078900, - 629132510, - 1078800, - 629110910, - 1078700, - 629089310, - 1078600, - 629067710, - 1078500, - 629046110, - 1078400, - 629024510, - 1078300, - 629002910, - 1078200, - 628981310, - 1078100, - 628959710, - 1078000, - 628938110, - 1077900, - 628916510, - 1077800, - 628894910, - 1077700, - 628873310, - 1077600, - 628851710, - 1077500, - 628830110, - 1077400, - 628808510, - 1077300, - 628786910, - 1077200, - 628765310, - 1077100, - 628743710, - 1077000, - 628722110, - 1076900, - 628700510, - 1076800, - 628678910, - 1076700, - 628657310, - 1076600, - 628635710, - 1076500, - 628614110, - 1076400, - 628592510, - 1076300, - 628570910, - 1076200, - 628549310, - 1076100, - 628527710, - 1076000, - 628506110, - 1075900, - 628484510, - 1075800, - 628462910, - 1075700, - 628441310, - 1075600, - 628419710, - 1075500, - 628398110, - 1075400, - 628376510, - 1075300, - 628354910, - 1075200, - 628333310, - 1075100, - 628311710, - 1075000, - 628290110, - 1074900, - 628268510, - 1074800, - 628246910, - 1074700, - 628225310, - 1074600, - 628203710, - 1074500, - 628182110, - 1074400, - 628160510, - 1074300, - 628138910, - 1074200, - 628117310, - 1074100, - 628095710, - 1074000, - 628074110, - 1073900, - 628052510, - 1073800, - 628030910, - 1073700, - 628009310, - 1073600, - 627987710, - 1073500, - 627966110, - 1073400, - 627944510, - 1073300, - 627922910, - 1073200, - 627901310, - 1073100, - 627879710, - 1073000, - 627858110, - 1072900, - 627836510, - 1072800, - 627814910, - 1072700, - 627793310, - 1072600, - 627771710, - 1072500, - 627750110, - 1072400, - 627728510, - 1072300, - 627706910, - 1072200, - 627685310, - 1072100, - 627663710, - 1072000, - 627642110, - 1071900, - 627620510, - 1071800, - 627598910, - 1071700, - 627577310, - 1071600, - 627555710, - 1071500, - 627534110, - 1071400, - 627512510, - 1071300, - 627490910, - 1071200, - 627469310, - 1071100, - 627447710, - 1071000, - 627426110, - 1070900, - 627404510, - 1070800, - 627382910, - 1070700, - 627361310, - 1070600, - 627339710, - 1070500, - 627318110, - 1070400, - 627296510, - 1070300, - 627274910, - 1070200, - 627253310, - 1070100, - 627231710, - 1070000, - 627210110, - 1069900, - 627188510, - 1069800, - 627166910, - 1069700, - 627145310, - 1069600, - 627123710, - 1069500, - 627102110, - 1069400, - 627080510, - 1069300, - 627058910, - 1069200, - 627037310, - 1069100, - 627015710, - 1069000, - 626994110, - 1068900, - 626972510, - 1068800, - 626950910, - 1068700, - 626929310, - 1068600, - 626907710, - 1068500, - 626886110, - 1068400, - 626864510, - 1068300, - 626842910, - 1068200, - 626821310, - 1068100, - 626799710, - 1068000, - 626778110, - 1067900, - 626756510, - 1067800, - 626734910, - 1067700, - 626713310, - 1067600, - 626691710, - 1067500, - 626670110, - 1067400, - 626648510, - 1067300, - 626626910, - 1067200, - 626605310, - 1067100, - 626583710, - 1067000, - 626562110, - 1066900, - 626540510, - 1066800, - 626518910, - 1066700, - 626497310, - 1066600, - 626475710, - 1066500, - 626454110, - 1066400, - 626432510, - 1066300, - 626410910, - 1066200, - 626389310, - 1066100, - 626367710, - 1066000, - 626346110, - 1065900, - 626324510, - 1065800, - 626302910, - 1065700, - 626281310, - 1065600, - 626259710, - 1065500, - 626238110, - 1065400, - 626216510, - 1065300, - 626194910, - 1065200, - 626173310, - 1065100, - 626151710, - 1065000, - 626130110, - 1064900, - 626108510, - 1064800, - 626086910, - 1064700, - 626065310, - 1064600, - 626043710, - 1064500, - 626022110, - 1064400, - 626000510, - 1064300, - 625978910, - 1064200, - 625957310, - 1064100, - 625935710, - 1064000, - 625914110, - 1063900, - 625892510, - 1063800, - 625870910, - 1063700, - 625849310, - 1063600, - 625827710, - 1063500, - 625806110, - 1063400, - 625784510, - 1063300, - 625762910, - 1063200, - 625741310, - 1063100, - 625719710, - 1063000, - 625698110, - 1062900, - 625676510, - 1062800, - 625654910, - 1062700, - 625633310, - 1062600, - 625611710, - 1062500, - 625590110, - 1062400, - 625568510, - 1062300, - 625546910, - 1062200, - 625525310, - 1062100, - 625503710, - 1062000, - 625482110, - 1061900, - 625460510, - 1061800, - 625438910, - 1061700, - 625417310, - 1061600, - 625395710, - 1061500, - 625374110, - 1061400, - 625352510, - 1061300, - 625330910, - 1061200, - 625309310, - 1061100, - 625287710, - 1061000, - 625266110, - 1060900, - 625244510, - 1060800, - 625222910, - 1060700, - 625201310, - 1060600, - 625179710, - 1060500, - 625158110, - 1060400, - 625136510, - 1060300, - 625114910, - 1060200, - 625093310, - 1060100, - 625071710, - 1060000, - 625050110, - 1059900, - 625028510, - 1059800, - 625006910, - 1059700, - 624985310, - 1059600, - 624963710, - 1059500, - 624942110, - 1059400, - 624920510, - 1059300, - 624898910, - 1059200, - 624877310, - 1059100, - 624855710, - 1059000, - 624834110, - 1058900, - 624812510, - 1058800, - 624790910, - 1058700, - 624769310, - 1058600, - 624747710, - 1058500, - 624726110, - 1058400, - 624704510, - 1058300, - 624682910, - 1058200, - 624661310, - 1058100, - 624639710, - 1058000, - 624618110, - 1057900, - 624596510, - 1057800, - 624574910, - 1057700, - 624553310, - 1057600, - 624531710, - 1057500, - 624510110, - 1057400, - 624488510, - 1057300, - 624466910, - 1057200, - 624445310, - 1057100, - 624423710, - 1057000, - 624402110, - 1056900, - 624380510, - 1056800, - 624358910, - 1056700, - 624337310, - 1056600, - 624315710, - 1056500, - 624294110, - 1056400, - 624272510, - 1056300, - 624250910, - 1056200, - 624229310, - 1056100, - 624207710, - 1056000, - 624186110, - 1055900, - 624164510, - 1055800, - 624142910, - 1055700, - 624121310, - 1055600, - 624099710, - 1055500, - 624078110, - 1055400, - 624056510, - 1055300, - 624034910, - 1055200, - 624013310, - 1055100, - 623991710, - 1055000, - 623970110, - 1054900, - 623948510, - 1054800, - 623926910, - 1054700, - 623905310, - 1054600, - 623883710, - 1054500, - 623862110, - 1054400, - 623840510, - 1054300, - 623818910, - 1054200, - 623797310, - 1054100, - 623775710, - 1054000, - 623754110, - 1053900, - 623732510, - 1053800, - 623710910, - 1053700, - 623689310, - 1053600, - 623667710, - 1053500, - 623646110, - 1053400, - 623624510, - 1053300, - 623602910, - 1053200, - 623581310, - 1053100, - 623559710, - 1053000, - 623538110, - 1052900, - 623516510, - 1052800, - 623494910, - 1052700, - 623473310, - 1052600, - 623451710, - 1052500, - 623430110, - 1052400, - 623408510, - 1052300, - 623386910, - 1052200, - 623365310, - 1052100, - 623343710, - 1052000, - 623322110, - 1051900, - 623300510, - 1051800, - 623278910, - 1051700, - 623257310, - 1051600, - 623235710, - 1051500, - 623214110, - 1051400, - 623192510, - 1051300, - 623170910, - 1051200, - 623149310, - 1051100, - 623127710, - 1051000, - 623106110, - 1050900, - 623084510, - 1050800, - 623062910, - 1050700, - 623041310, - 1050600, - 623019710, - 1050500, - 622998110, - 1050400, - 622976510, - 1050300, - 622954910, - 1050200, - 622933310, - 1050100, - 622911710, - 1050000, - 622890110, - 1049900, - 622868510, - 1049800, - 622846910, - 1049700, - 622825310, - 1049600, - 622803710, - 1049500, - 622782110, - 1049400, - 622760510, - 1049300, - 622738910, - 1049200, - 622717310, - 1049100, - 622695710, - 1049000, - 622674110, - 1048900, - 622652510, - 1048800, - 622630910, - 1048700, - 622609310, - 1048600, - 622587710, - 1048500, - 622566110, - 1048400, - 622544510, - 1048300, - 622522910, - 1048200, - 622501310, - 1048100, - 622479710, - 1048000, - 622458110, - 1047900, - 622436510, - 1047800, - 622414910, - 1047700, - 622393310, - 1047600, - 622371710, - 1047500, - 622350110, - 1047400, - 622328510, - 1047300, - 622306910, - 1047200, - 622285310, - 1047100, - 622263710, - 1047000, - 622242110, - 1046900, - 622220510, - 1046800, - 622198910, - 1046700, - 622177310, - 1046600, - 622155710, - 1046500, - 622134110, - 1046400, - 622112510, - 1046300, - 622090910, - 1046200, - 622069310, - 1046100, - 622047710, - 1046000, - 622026110, - 1045900, - 622004510, - 1045800, - 621982910, - 1045700, - 621961310, - 1045600, - 621939710, - 1045500, - 621918110, - 1045400, - 621896510, - 1045300, - 621874910, - 1045200, - 621853310, - 1045100, - 621831710, - 1045000, - 621810110, - 1044900, - 621788510, - 1044800, - 621766910, - 1044700, - 621745310, - 1044600, - 621723710, - 1044500, - 621702110, - 1044400, - 621680510, - 1044300, - 621658910, - 1044200, - 621637310, - 1044100, - 621615710, - 1044000, - 621594110, - 1043900, - 621572510, - 1043800, - 621550910, - 1043700, - 621529310, - 1043600, - 621507710, - 1043500, - 621486110, - 1043400, - 621464510, - 1043300, - 621442910, - 1043200, - 621421310, - 1043100, - 621399710, - 1043000, - 621378110, - 1042900, - 621356510, - 1042800, - 621334910, - 1042700, - 621313310, - 1042600, - 621291710, - 1042500, - 621270110, - 1042400, - 621248510, - 1042300, - 621226910, - 1042200, - 621205310, - 1042100, - 621183710, - 1042000, - 621162110, - 1041900, - 621140510, - 1041800, - 621118910, - 1041700, - 621097310, - 1041600, - 621075710, - 1041500, - 621054110, - 1041400, - 621032510, - 1041300, - 621010910, - 1041200, - 620989310, - 1041100, - 620967710, - 1041000, - 620946110, - 1040900, - 620924510, - 1040800, - 620902910, - 1040700, - 620881310, - 1040600, - 620859710, - 1040500, - 620838110, - 1040400, - 620816510, - 1040300, - 620794910, - 1040200, - 620773310, - 1040100, - 620751710, - 1040000, - 620730110, - 1039900, - 620708510, - 1039800, - 620686910, - 1039700, - 620665310, - 1039600, - 620643710, - 1039500, - 620622110, - 1039400, - 620600510, - 1039300, - 620578910, - 1039200, - 620557310, - 1039100, - 620535710, - 1039000, - 620514110, - 1038900, - 620492510, - 1038800, - 620470910, - 1038700, - 620449310, - 1038600, - 620427710, - 1038500, - 620406110, - 1038400, - 620384510, - 1038300, - 620362910, - 1038200, - 620341310, - 1038100, - 620319710, - 1038000, - 620298110, - 1037900, - 620276510, - 1037800, - 620254910, - 1037700, - 620233310, - 1037600, - 620211710, - 1037500, - 620190110, - 1037400, - 620168510, - 1037300, - 620146910, - 1037200, - 620125310, - 1037100, - 620103710, - 1037000, - 620082110, - 1036900, - 620060510, - 1036800, - 620038910, - 1036700, - 620017310, - 1036600, - 619995710, - 1036500, - 619974110, - 1036400, - 619952510, - 1036300, - 619930910, - 1036200, - 619909310, - 1036100, - 619887710, - 1036000, - 619866110, - 1035900, - 619844510, - 1035800, - 619822910, - 1035700, - 619801310, - 1035600, - 619779710, - 1035500, - 619758110, - 1035400, - 619736510, - 1035300, - 619714910, - 1035200, - 619693310, - 1035100, - 619671710, - 1035000, - 619650110, - 1034900, - 619628510, - 1034800, - 619606910, - 1034700, - 619585310, - 1034600, - 619563710, - 1034500, - 619542110, - 1034400, - 619520510, - 1034300, - 619498910, - 1034200, - 619477310, - 1034100, - 619455710, - 1034000, - 619434110, - 1033900, - 619412510, - 1033800, - 619390910, - 1033700, - 619369310, - 1033600, - 619347710, - 1033500, - 619326110, - 1033400, - 619304510, - 1033300, - 619282910, - 1033200, - 619261310, - 1033100, - 619239710, - 1033000, - 619218110, - 1032900, - 619196510, - 1032800, - 619174910, - 1032700, - 619153310, - 1032600, - 619131710, - 1032500, - 619110110, - 1032400, - 619088510, - 1032300, - 619066910, - 1032200, - 619045310, - 1032100, - 619023710, - 1032000, - 619002110, - 1031900, - 618980510, - 1031800, - 618958910, - 1031700, - 618937310, - 1031600, - 618915710, - 1031500, - 618894110, - 1031400, - 618872510, - 1031300, - 618850910, - 1031200, - 618829310, - 1031100, - 618807710, - 1031000, - 618786110, - 1030900, - 618764510, - 1030800, - 618742910, - 1030700, - 618721310, - 1030600, - 618699710, - 1030500, - 618678110, - 1030400, - 618656510, - 1030300, - 618634910, - 1030200, - 618613310, - 1030100, - 618591710, - 1030000, - 618570110, - 1029900, - 618548510, - 1029800, - 618526910, - 1029700, - 618505310, - 1029600, - 618483710, - 1029500, - 618462110, - 1029400, - 618440510, - 1029300, - 618418910, - 1029200, - 618397310, - 1029100, - 618375710, - 1029000, - 618354110, - 1028900, - 618332510, - 1028800, - 618310910, - 1028700, - 618289310, - 1028600, - 618267710, - 1028500, - 618246110, - 1028400, - 618224510, - 1028300, - 618202910, - 1028200, - 618181310, - 1028100, - 618159710, - 1028000, - 618138110, - 1027900, - 618116510, - 1027800, - 618094910, - 1027700, - 618073310, - 1027600, - 618051710, - 1027500, - 618030110, - 1027400, - 618008510, - 1027300, - 617986910, - 1027200, - 617965310, - 1027100, - 617943710, - 1027000, - 617922110, - 1026900, - 617900510, - 1026800, - 617878910, - 1026700, - 617857310, - 1026600, - 617835710, - 1026500, - 617814110, - 1026400, - 617792510, - 1026300, - 617770910, - 1026200, - 617749310, - 1026100, - 617727710, - 1026000, - 617706110, - 1025900, - 617684510, - 1025800, - 617662910, - 1025700, - 617641310, - 1025600, - 617619710, - 1025500, - 617598110, - 1025400, - 617576510, - 1025300, - 617554910, - 1025200, - 617533310, - 1025100, - 617511710, - 1025000, - 617490110, - 1024900, - 617468510, - 1024800, - 617446910, - 1024700, - 617425310, - 1024600, - 617403710, - 1024500, - 617382110, - 1024400, - 617360510, - 1024300, - 617338910, - 1024200, - 617317310, - 1024100, - 617295710, - 1024000, - 617274110, - 1023900, - 617252510, - 1023800, - 617230910, - 1023700, - 617209310, - 1023600, - 617187710, - 1023500, - 617166110, - 1023400, - 617144510, - 1023300, - 617122910, - 1023200, - 617101310, - 1023100, - 617079710, - 1023000, - 617058110, - 1022900, - 617036510, - 1022800, - 617014910, - 1022700, - 616993310, - 1022600, - 616971710, - 1022500, - 616950110, - 1022400, - 616928510, - 1022300, - 616906910, - 1022200, - 616885310, - 1022100, - 616863710, - 1022000, - 616842110, - 1021900, - 616820510, - 1021800, - 616798910, - 1021700, - 616777310, - 1021600, - 616755710, - 1021500, - 616734110, - 1021400, - 616712510, - 1021300, - 616690910, - 1021200, - 616669310, - 1021100, - 616647710, - 1021000, - 616626110, - 1020900, - 616604510, - 1020800, - 616582910, - 1020700, - 616561310, - 1020600, - 616539710, - 1020500, - 616518110, - 1020400, - 616496510, - 1020300, - 616474910, - 1020200, - 616453310, - 1020100, - 616431710, - 1020000, - 616410110, - 1019900, - 616388510, - 1019800, - 616366910, - 1019700, - 616345310, - 1019600, - 616323710, - 1019500, - 616302110, - 1019400, - 616280510, - 1019300, - 616258910, - 1019200, - 616237310, - 1019100, - 616215710, - 1019000, - 616194110, - 1018900, - 616172510, - 1018800, - 616150910, - 1018700, - 616129310, - 1018600, - 616107710, - 1018500, - 616086110, - 1018400, - 616064510, - 1018300, - 616042910, - 1018200, - 616021310, - 1018100, - 615999710, - 1018000, - 615978110, - 1017900, - 615956510, - 1017800, - 615934910, - 1017700, - 615913310, - 1017600, - 615891710, - 1017500, - 615870110, - 1017400, - 615848510, - 1017300, - 615826910, - 1017200, - 615805310, - 1017100, - 615783710, - 1017000, - 615762110, - 1016900, - 615740510, - 1016800, - 615718910, - 1016700, - 615697310, - 1016600, - 615675710, - 1016500, - 615654110, - 1016400, - 615632510, - 1016300, - 615610910, - 1016200, - 615589310, - 1016100, - 615567710, - 1016000, - 615546110, - 1015900, - 615524510, - 1015800, - 615502910, - 1015700, - 615481310, - 1015600, - 615459710, - 1015500, - 615438110, - 1015400, - 615416510, - 1015300, - 615394910, - 1015200, - 615373310, - 1015100, - 615351710, - 1015000, - 615330110, - 1014900, - 615308510, - 1014800, - 615286910, - 1014700, - 615265310, - 1014600, - 615243710, - 1014500, - 615222110, - 1014400, - 615200510, - 1014300, - 615178910, - 1014200, - 615157310, - 1014100, - 615135710, - 1014000, - 615114110, - 1013900, - 615092510, - 1013800, - 615070910, - 1013700, - 615049310, - 1013600, - 615027710, - 1013500, - 615006110, - 1013400, - 614984510, - 1013300, - 614962910, - 1013200, - 614941310, - 1013100, - 614919710, - 1013000, - 614898110, - 1012900, - 614876510, - 1012800, - 614854910, - 1012700, - 614833310, - 1012600, - 614811710, - 1012500, - 614790110, - 1012400, - 614768510, - 1012300, - 614746910, - 1012200, - 614725310, - 1012100, - 614703710, - 1012000, - 614682110, - 1011900, - 614660510, - 1011800, - 614638910, - 1011700, - 614617310, - 1011600, - 614595710, - 1011500, - 614574110, - 1011400, - 614552510, - 1011300, - 614530910, - 1011200, - 614509310, - 1011100, - 614487710, - 1011000, - 614466110, - 1010900, - 614444510, - 1010800, - 614422910, - 1010700, - 614401310, - 1010600, - 614379710, - 1010500, - 614358110, - 1010400, - 614336510, - 1010300, - 614314910, - 1010200, - 614293310, - 1010100, - 614271710, - 1010000, - 614250110, - 1009900, - 614228510, - 1009800, - 614206910, - 1009700, - 614185310, - 1009600, - 614163710, - 1009500, - 614142110, - 1009400, - 614120510, - 1009300, - 614098910, - 1009200, - 614077310, - 1009100, - 614055710, - 1009000, - 614034110, - 1008900, - 614012510, - 1008800, - 613990910, - 1008700, - 613969310, - 1008600, - 613947710, - 1008500, - 613926110, - 1008400, - 613904510, - 1008300, - 613882910, - 1008200, - 613861310, - 1008100, - 613839710, - 1008000, - 613818110, - 1007900, - 613796510, - 1007800, - 613774910, - 1007700, - 613753310, - 1007600, - 613731710, - 1007500, - 613710110, - 1007400, - 613688510, - 1007300, - 613666910, - 1007200, - 613645310, - 1007100, - 613623710, - 1007000, - 613602110, - 1006900, - 613580510, - 1006800, - 613558910, - 1006700, - 613537310, - 1006600, - 613515710, - 1006500, - 613494110, - 1006400, - 613472510, - 1006300, - 613450910, - 1006200, - 613429310, - 1006100, - 613407710, - 1006000, - 613386110, - 1005900, - 613364510, - 1005800, - 613342910, - 1005700, - 613321310, - 1005600, - 613299710, - 1005500, - 613278110, - 1005400, - 613256510, - 1005300, - 613234910, - 1005200, - 613213310, - 1005100, - 613191710, - 1005000, - 613170110, - 1004900, - 613148510, - 1004800, - 613126910, - 1004700, - 613105310, - 1004600, - 613083710, - 1004500, - 613062110, - 1004400, - 613040510, - 1004300, - 613018910, - 1004200, - 612997310, - 1004100, - 612975710, - 1004000, - 612954110, - 1003900, - 612932510, - 1003800, - 612910910, - 1003700, - 612889310, - 1003600, - 612867710, - 1003500, - 612846110, - 1003400, - 612824510, - 1003300, - 612802910, - 1003200, - 612781310, - 1003100, - 612759710, - 1003000, - 612738110, - 1002900, - 612716510, - 1002800, - 612694910, - 1002700, - 612673310, - 1002600, - 612651710, - 1002500, - 612630110, - 1002400, - 612608510, - 1002300, - 612586910, - 1002200, - 612565310, - 1002100, - 612543710, - 1002000, - 612522110, - 1001900, - 612500510, - 1001800, - 612478910, - 1001700, - 612457310, - 1001600, - 612435710, - 1001500, - 612414110, - 1001400, - 612392510, - 1001300, - 612370910, - 1001200, - 612349310, - 1001100, - 612327710, - 1001000, - 612306110, - 1000900, - 612284510, - 1000800, - 612262910, - 1000700, - 612241310, - 1000600, - 612219710, - 1000500, - 612198110, - 1000400, - 612176510, - 1000300, - 612154910, - 1000200, - 612133310, - 1000100, - 612111710, - 1000000, - 612090110, - 999900, - 612068510, - 999800, - 612046910, - 999700, - 612025310, - 999600, - 612003710, - 999500, - 611982110, - 999400, - 611960510, - 999300, - 611938910, - 999200, - 611917310, - 999100, - 611895710, - 999000, - 611874110, - 998900, - 611852510, - 998800, - 611830910, - 998700, - 611809310, - 998600, - 611787710, - 998500, - 611766110, - 998400, - 611744510, - 998300, - 611722910, - 998200, - 611701310, - 998100, - 611679710, - 998000, - 611658110, - 997900, - 611636510, - 997800, - 611614910, - 997700, - 611593310, - 997600, - 611571710, - 997500, - 611550110, - 997400, - 611528510, - 997300, - 611506910, - 997200, - 611485310, - 997100, - 611463710, - 997000, - 611442110, - 996900, - 611420510, - 996800, - 611398910, - 996700, - 611377310, - 996600, - 611355710, - 996500, - 611334110, - 996400, - 611312510, - 996300, - 611290910, - 996200, - 611269310, - 996100, - 611247710, - 996000, - 611226110, - 995900, - 611204510, - 995800, - 611182910, - 995700, - 611161310, - 995600, - 611139710, - 995500, - 611118110, - 995400, - 611096510, - 995300, - 611074910, - 995200, - 611053310, - 995100, - 611031710, - 995000, - 611010110, - 994900, - 610988510, - 994800, - 610966910, - 994700, - 610945310, - 994600, - 610923710, - 994500, - 610902110, - 994400, - 610880510, - 994300, - 610858910, - 994200, - 610837310, - 994100, - 610815710, - 994000, - 610794110, - 993900, - 610772510, - 993800, - 610750910, - 993700, - 610729310, - 993600, - 610707710, - 993500, - 610686110, - 993400, - 610664510, - 993300, - 610642910, - 993200, - 610621310, - 993100, - 610599710, - 993000, - 610578110, - 992900, - 610556510, - 992800, - 610534910, - 992700, - 610513310, - 992600, - 610491710, - 992500, - 610470110, - 992400, - 610448510, - 992300, - 610426910, - 992200, - 610405310, - 992100, - 610383710, - 992000, - 610362110, - 991900, - 610340510, - 991800, - 610318910, - 991700, - 610297310, - 991600, - 610275710, - 991500, - 610254110, - 991400, - 610232510, - 991300, - 610210910, - 991200, - 610189310, - 991100, - 610167710, - 991000, - 610146110, - 990900, - 610124510, - 990800, - 610102910, - 990700, - 610081310, - 990600, - 610059710, - 990500, - 610038110, - 990400, - 610016510, - 990300, - 609994910, - 990200, - 609973310, - 990100, - 609951710, - 990000, - 609930110, - 989900, - 609908510, - 989800, - 609886910, - 989700, - 609865310, - 989600, - 609843710, - 989500, - 609822110, - 989400, - 609800510, - 989300, - 609778910, - 989200, - 609757310, - 989100, - 609735710, - 989000, - 609714110, - 988900, - 609692510, - 988800, - 609670910, - 988700, - 609649310, - 988600, - 609627710, - 988500, - 609606110, - 988400, - 609584510, - 988300, - 609562910, - 988200, - 609541310, - 988100, - 609519710, - 988000, - 609498110, - 987900, - 609476510, - 987800, - 609454910, - 987700, - 609433310, - 987600, - 609411710, - 987500, - 609390110, - 987400, - 609368510, - 987300, - 609346910, - 987200, - 609325310, - 987100, - 609303710, - 987000, - 609282110, - 986900, - 609260510, - 986800, - 609238910, - 986700, - 609217310, - 986600, - 609195710, - 986500, - 609174110, - 986400, - 609152510, - 986300, - 609130910, - 986200, - 609109310, - 986100, - 609087710, - 986000, - 609066110, - 985900, - 609044510, - 985800, - 609022910, - 985700, - 609001310, - 985600, - 608979710, - 985500, - 608958110, - 985400, - 608936510, - 985300, - 608914910, - 985200, - 608893310, - 985100, - 608871710, - 985000, - 608850110, - 984900, - 608828510, - 984800, - 608806910, - 984700, - 608785310, - 984600, - 608763710, - 984500, - 608742110, - 984400, - 608720510, - 984300, - 608698910, - 984200, - 608677310, - 984100, - 608655710, - 984000, - 608634110, - 983900, - 608612510, - 983800, - 608590910, - 983700, - 608569310, - 983600, - 608547710, - 983500, - 608526110, - 983400, - 608504510, - 983300, - 608482910, - 983200, - 608461310, - 983100, - 608439710, - 983000, - 608418110, - 982900, - 608396510, - 982800, - 608374910, - 982700, - 608353310, - 982600, - 608331710, - 982500, - 608310110, - 982400, - 608288510, - 982300, - 608266910, - 982200, - 608245310, - 982100, - 608223710, - 982000, - 608202110, - 981900, - 608180510, - 981800, - 608158910, - 981700, - 608137310, - 981600, - 608115710, - 981500, - 608094110, - 981400, - 608072510, - 981300, - 608050910, - 981200, - 608029310, - 981100, - 608007710, - 981000, - 607986110, - 980900, - 607964510, - 980800, - 607942910, - 980700, - 607921310, - 980600, - 607899710, - 980500, - 607878110, - 980400, - 607856510, - 980300, - 607834910, - 980200, - 607813310, - 980100, - 607791710, - 980000, - 607770110, - 979900, - 607748510, - 979800, - 607726910, - 979700, - 607705310, - 979600, - 607683710, - 979500, - 607662110, - 979400, - 607640510, - 979300, - 607618910, - 979200, - 607597310, - 979100, - 607575710, - 979000, - 607554110, - 978900, - 607532510, - 978800, - 607510910, - 978700, - 607489310, - 978600, - 607467710, - 978500, - 607446110, - 978400, - 607424510, - 978300, - 607402910, - 978200, - 607381310, - 978100, - 607359710, - 978000, - 607338110, - 977900, - 607316510, - 977800, - 607294910, - 977700, - 607273310, - 977600, - 607251710, - 977500, - 607230110, - 977400, - 607208510, - 977300, - 607186910, - 977200, - 607165310, - 977100, - 607143710, - 977000, - 607122110, - 976900, - 607100510, - 976800, - 607078910, - 976700, - 607057310, - 976600, - 607035710, - 976500, - 607014110, - 976400, - 606992510, - 976300, - 606970910, - 976200, - 606949310, - 976100, - 606927710, - 976000, - 606906110, - 975900, - 606884510, - 975800, - 606862910, - 975700, - 606841310, - 975600, - 606819710, - 975500, - 606798110, - 975400, - 606776510, - 975300, - 606754910, - 975200, - 606733310, - 975100, - 606711710, - 975000, - 606690110, - 974900, - 606668510, - 974800, - 606646910, - 974700, - 606625310, - 974600, - 606603710, - 974500, - 606582110, - 974400, - 606560510, - 974300, - 606538910, - 974200, - 606517310, - 974100, - 606495710, - 974000, - 606474110, - 973900, - 606452510, - 973800, - 606430910, - 973700, - 606409310, - 973600, - 606387710, - 973500, - 606366110, - 973400, - 606344510, - 973300, - 606322910, - 973200, - 606301310, - 973100, - 606279710, - 973000, - 606258110, - 972900, - 606236510, - 972800, - 606214910, - 972700, - 606193310, - 972600, - 606171710, - 972500, - 606150110, - 972400, - 606128510, - 972300, - 606106910, - 972200, - 606085310, - 972100, - 606063710, - 972000, - 606042110, - 971900, - 606020510, - 971800, - 605998910, - 971700, - 605977310, - 971600, - 605955710, - 971500, - 605934110, - 971400, - 605912510, - 971300, - 605890910, - 971200, - 605869310, - 971100, - 605847710, - 971000, - 605826110, - 970900, - 605804510, - 970800, - 605782910, - 970700, - 605761310, - 970600, - 605739710, - 970500, - 605718110, - 970400, - 605696510, - 970300, - 605674910, - 970200, - 605653310, - 970100, - 605631710, - 970000, - 605610110, - 969900, - 605588510, - 969800, - 605566910, - 969700, - 605545310, - 969600, - 605523710, - 969500, - 605502110, - 969400, - 605480510, - 969300, - 605458910, - 969200, - 605437310, - 969100, - 605415710, - 969000, - 605394110, - 968900, - 605372510, - 968800, - 605350910, - 968700, - 605329310, - 968600, - 605307710, - 968500, - 605286110, - 968400, - 605264510, - 968300, - 605242910, - 968200, - 605221310, - 968100, - 605199710, - 968000, - 605178110, - 967900, - 605156510, - 967800, - 605134910, - 967700, - 605113310, - 967600, - 605091710, - 967500, - 605070110, - 967400, - 605048510, - 967300, - 605026910, - 967200, - 605005310, - 967100, - 604983710, - 967000, - 604962110, - 966900, - 604940510, - 966800, - 604918910, - 966700, - 604897310, - 966600, - 604875710, - 966500, - 604854110, - 966400, - 604832510, - 966300, - 604810910, - 966200, - 604789310, - 966100, - 604767710, - 966000, - 604746110, - 965900, - 604724510, - 965800, - 604702910, - 965700, - 604681310, - 965600, - 604659710, - 965500, - 604638110, - 965400, - 604616510, - 965300, - 604594910, - 965200, - 604573310, - 965100, - 604551710, - 965000, - 604530110, - 964900, - 604508510, - 964800, - 604486910, - 964700, - 604465310, - 964600, - 604443710, - 964500, - 604422110, - 964400, - 604400510, - 964300, - 604378910, - 964200, - 604357310, - 964100, - 604335710, - 964000, - 604314110, - 963900, - 604292510, - 963800, - 604270910, - 963700, - 604249310, - 963600, - 604227710, - 963500, - 604206110, - 963400, - 604184510, - 963300, - 604162910, - 963200, - 604141310, - 963100, - 604119710, - 963000, - 604098110, - 962900, - 604076510, - 962800, - 604054910, - 962700, - 604033310, - 962600, - 604011710, - 962500, - 603990110, - 962400, - 603968510, - 962300, - 603946910, - 962200, - 603925310, - 962100, - 603903710, - 962000, - 603882110, - 961900, - 603860510, - 961800, - 603838910, - 961700, - 603817310, - 961600, - 603795710, - 961500, - 603774110, - 961400, - 603752510, - 961300, - 603730910, - 961200, - 603709310, - 961100, - 603687710, - 961000, - 603666110, - 960900, - 603644510, - 960800, - 603622910, - 960700, - 603601310, - 960600, - 603579710, - 960500, - 603558110, - 960400, - 603536510, - 960300, - 603514910, - 960200, - 603493310, - 960100, - 603471710, - 960000, - 603450110, - 959900, - 603428510, - 959800, - 603406910, - 959700, - 603385310, - 959600, - 603363710, - 959500, - 603342110, - 959400, - 603320510, - 959300, - 603298910, - 959200, - 603277310, - 959100, - 603255710, - 959000, - 603234110, - 958900, - 603212510, - 958800, - 603190910, - 958700, - 603169310, - 958600, - 603147710, - 958500, - 603126110, - 958400, - 603104510, - 958300, - 603082910, - 958200, - 603061310, - 958100, - 603039710, - 958000, - 603018110, - 957900, - 602996510, - 957800, - 602974910, - 957700, - 602953310, - 957600, - 602931710, - 957500, - 602910110, - 957400, - 602888510, - 957300, - 602866910, - 957200, - 602845310, - 957100, - 602823710, - 957000, - 602802110, - 956900, - 602780510, - 956800, - 602758910, - 956700, - 602737310, - 956600, - 602715710, - 956500, - 602694110, - 956400, - 602672510, - 956300, - 602650910, - 956200, - 602629310, - 956100, - 602607710, - 956000, - 602586110, - 955900, - 602564510, - 955800, - 602542910, - 955700, - 602521310, - 955600, - 602499710, - 955500, - 602478110, - 955400, - 602456510, - 955300, - 602434910, - 955200, - 602413310, - 955100, - 602391710, - 955000, - 602370110, - 954900, - 602348510, - 954800, - 602326910, - 954700, - 602305310, - 954600, - 602283710, - 954500, - 602262110, - 954400, - 602240510, - 954300, - 602218910, - 954200, - 602197310, - 954100, - 602175710, - 954000, - 602154110, - 953900, - 602132510, - 953800, - 602110910, - 953700, - 602089310, - 953600, - 602067710, - 953500, - 602046110, - 953400, - 602024510, - 953300, - 602002910, - 953200, - 601981310, - 953100, - 601959710, - 953000, - 601938110, - 952900, - 601916510, - 952800, - 601894910, - 952700, - 601873310, - 952600, - 601851710, - 952500, - 601830110, - 952400, - 601808510, - 952300, - 601786910, - 952200, - 601765310, - 952100, - 601743710, - 952000, - 601722110, - 951900, - 601700510, - 951800, - 601678910, - 951700, - 601657310, - 951600, - 601635710, - 951500, - 601614110, - 951400, - 601592510, - 951300, - 601570910, - 951200, - 601549310, - 951100, - 601527710, - 951000, - 601506110, - 950900, - 601484510, - 950800, - 601462910, - 950700, - 601441310, - 950600, - 601419710, - 950500, - 601398110, - 950400, - 601376510, - 950300, - 601354910, - 950200, - 601333310, - 950100, - 601311710, - 950000, - 601290110, - 949900, - 601268510, - 949800, - 601246910, - 949700, - 601225310, - 949600, - 601203710, - 949500, - 601182110, - 949400, - 601160510, - 949300, - 601138910, - 949200, - 601117310, - 949100, - 601095710, - 949000, - 601074110, - 948900, - 601052510, - 948800, - 601030910, - 948700, - 601009310, - 948600, - 600987710, - 948500, - 600966110, - 948400, - 600944510, - 948300, - 600922910, - 948200, - 600901310, - 948100, - 600879710, - 948000, - 600858110, - 947900, - 600836510, - 947800, - 600814910, - 947700, - 600793310, - 947600, - 600771710, - 947500, - 600750110, - 947400, - 600728510, - 947300, - 600706910, - 947200, - 600685310, - 947100, - 600663710, - 947000, - 600642110, - 946900, - 600620510, - 946800, - 600598910, - 946700, - 600577310, - 946600, - 600555710, - 946500, - 600534110, - 946400, - 600512510, - 946300, - 600490910, - 946200, - 600469310, - 946100, - 600447710, - 946000, - 600426110, - 945900, - 600404510, - 945800, - 600382910, - 945700, - 600361310, - 945600, - 600339710, - 945500, - 600318110, - 945400, - 600296510, - 945300, - 600274910, - 945200, - 600253310, - 945100, - 600231710, - 945000, - 600210110, - 944900, - 600188510, - 944800, - 600166910, - 944700, - 600145310, - 944600, - 600123710, - 944500, - 600102110, - 944400, - 600080510, - 944300, - 600058910, - 944200, - 600037310, - 944100, - 600015710, - 944000, - 599994110, - 943900, - 599972510, - 943800, - 599950910, - 943700, - 599929310, - 943600, - 599907710, - 943500, - 599886110, - 943400, - 599864510, - 943300, - 599842910, - 943200, - 599821310, - 943100, - 599799710, - 943000, - 599778110, - 942900, - 599756510, - 942800, - 599734910, - 942700, - 599713310, - 942600, - 599691710, - 942500, - 599670110, - 942400, - 599648510, - 942300, - 599626910, - 942200, - 599605310, - 942100, - 599583710, - 942000, - 599562110, - 941900, - 599540510, - 941800, - 599518910, - 941700, - 599497310, - 941600, - 599475710, - 941500, - 599454110, - 941400, - 599432510, - 941300, - 599410910, - 941200, - 599389310, - 941100, - 599367710, - 941000, - 599346110, - 940900, - 599324510, - 940800, - 599302910, - 940700, - 599281310, - 940600, - 599259710, - 940500, - 599238110, - 940400, - 599216510, - 940300, - 599194910, - 940200, - 599173310, - 940100, - 599151710, - 940000, - 599130110, - 939900, - 599108510, - 939800, - 599086910, - 939700, - 599065310, - 939600, - 599043710, - 939500, - 599022110, - 939400, - 599000510, - 939300, - 598978910, - 939200, - 598957310, - 939100, - 598935710, - 939000, - 598914110, - 938900, - 598892510, - 938800, - 598870910, - 938700, - 598849310, - 938600, - 598827710, - 938500, - 598806110, - 938400, - 598784510, - 938300, - 598762910, - 938200, - 598741310, - 938100, - 598719710, - 938000, - 598698110, - 937900, - 598676510, - 937800, - 598654910, - 937700, - 598633310, - 937600, - 598611710, - 937500, - 598590110, - 937400, - 598568510, - 937300, - 598546910, - 937200, - 598525310, - 937100, - 598503710, - 937000, - 598482110, - 936900, - 598460510, - 936800, - 598438910, - 936700, - 598417310, - 936600, - 598395710, - 936500, - 598374110, - 936400, - 598352510, - 936300, - 598330910, - 936200, - 598309310, - 936100, - 598287710, - 936000, - 598266110, - 935900, - 598244510, - 935800, - 598222910, - 935700, - 598201310, - 935600, - 598179710, - 935500, - 598158110, - 935400, - 598136510, - 935300, - 598114910, - 935200, - 598093310, - 935100, - 598071710, - 935000, - 598050110, - 934900, - 598028510, - 934800, - 598006910, - 934700, - 597985310, - 934600, - 597963710, - 934500, - 597942110, - 934400, - 597920510, - 934300, - 597898910, - 934200, - 597877310, - 934100, - 597855710, - 934000, - 597834110, - 933900, - 597812510, - 933800, - 597790910, - 933700, - 597769310, - 933600, - 597747710, - 933500, - 597726110, - 933400, - 597704510, - 933300, - 597682910, - 933200, - 597661310, - 933100, - 597639710, - 933000, - 597618110, - 932900, - 597596510, - 932800, - 597574910, - 932700, - 597553310, - 932600, - 597531710, - 932500, - 597510110, - 932400, - 597488510, - 932300, - 597466910, - 932200, - 597445310, - 932100, - 597423710, - 932000, - 597402110, - 931900, - 597380510, - 931800, - 597358910, - 931700, - 597337310, - 931600, - 597315710, - 931500, - 597294110, - 931400, - 597272510, - 931300, - 597250910, - 931200, - 597229310, - 931100, - 597207710, - 931000, - 597186110, - 930900, - 597164510, - 930800, - 597142910, - 930700, - 597121310, - 930600, - 597099710, - 930500, - 597078110, - 930400, - 597056510, - 930300, - 597034910, - 930200, - 597013310, - 930100, - 596991710, - 930000, - 596970110, - 929900, - 596948510, - 929800, - 596926910, - 929700, - 596905310, - 929600, - 596883710, - 929500, - 596862110, - 929400, - 596840510, - 929300, - 596818910, - 929200, - 596797310, - 929100, - 596775710, - 929000, - 596754110, - 928900, - 596732510, - 928800, - 596710910, - 928700, - 596689310, - 928600, - 596667710, - 928500, - 596646110, - 928400, - 596624510, - 928300, - 596602910, - 928200, - 596581310, - 928100, - 596559710, - 928000, - 596538110, - 927900, - 596516510, - 927800, - 596494910, - 927700, - 596473310, - 927600, - 596451710, - 927500, - 596430110, - 927400, - 596408510, - 927300, - 596386910, - 927200, - 596365310, - 927100, - 596343710, - 927000, - 596322110, - 926900, - 596300510, - 926800, - 596278910, - 926700, - 596257310, - 926600, - 596235710, - 926500, - 596214110, - 926400, - 596192510, - 926300, - 596170910, - 926200, - 596149310, - 926100, - 596127710, - 926000, - 596106110, - 925900, - 596084510, - 925800, - 596062910, - 925700, - 596041310, - 925600, - 596019710, - 925500, - 595998110, - 925400, - 595976510, - 925300, - 595954910, - 925200, - 595933310, - 925100, - 595911710, - 925000, - 595890110, - 924900, - 595868510, - 924800, - 595846910, - 924700, - 595825310, - 924600, - 595803710, - 924500, - 595782110, - 924400, - 595760510, - 924300, - 595738910, - 924200, - 595717310, - 924100, - 595695710, - 924000, - 595674110, - 923900, - 595652510, - 923800, - 595630910, - 923700, - 595609310, - 923600, - 595587710, - 923500, - 595566110, - 923400, - 595544510, - 923300, - 595522910, - 923200, - 595501310, - 923100, - 595479710, - 923000, - 595458110, - 922900, - 595436510, - 922800, - 595414910, - 922700, - 595393310, - 922600, - 595371710, - 922500, - 595350110, - 922400, - 595328510, - 922300, - 595306910, - 922200, - 595285310, - 922100, - 595263710, - 922000, - 595242110, - 921900, - 595220510, - 921800, - 595198910, - 921700, - 595177310, - 921600, - 595155710, - 921500, - 595134110, - 921400, - 595112510, - 921300, - 595090910, - 921200, - 595069310, - 921100, - 595047710, - 921000, - 595026110, - 920900, - 595004510, - 920800, - 594982910, - 920700, - 594961310, - 920600, - 594939710, - 920500, - 594918110, - 920400, - 594896510, - 920300, - 594874910, - 920200, - 594853310, - 920100, - 594831710, - 920000, - 594810110, - 919900, - 594788510, - 919800, - 594766910, - 919700, - 594745310, - 919600, - 594723710, - 919500, - 594702110, - 919400, - 594680510, - 919300, - 594658910, - 919200, - 594637310, - 919100, - 594615710, - 919000, - 594594110, - 918900, - 594572510, - 918800, - 594550910, - 918700, - 594529310, - 918600, - 594507710, - 918500, - 594486110, - 918400, - 594464510, - 918300, - 594442910, - 918200, - 594421310, - 918100, - 594399710, - 918000, - 594378110, - 917900, - 594356510, - 917800, - 594334910, - 917700, - 594313310, - 917600, - 594291710, - 917500, - 594270110, - 917400, - 594248510, - 917300, - 594226910, - 917200, - 594205310, - 917100, - 594183710, - 917000, - 594162110, - 916900, - 594140510, - 916800, - 594118910, - 916700, - 594097310, - 916600, - 594075710, - 916500, - 594054110, - 916400, - 594032510, - 916300, - 594010910, - 916200, - 593989310, - 916100, - 593967710, - 916000, - 593946110, - 915900, - 593924510, - 915800, - 593902910, - 915700, - 593881310, - 915600, - 593859710, - 915500, - 593838110, - 915400, - 593816510, - 915300, - 593794910, - 915200, - 593773310, - 915100, - 593751710, - 915000, - 593730110, - 914900, - 593708510, - 914800, - 593686910, - 914700, - 593665310, - 914600, - 593643710, - 914500, - 593622110, - 914400, - 593600510, - 914300, - 593578910, - 914200, - 593557310, - 914100, - 593535710, - 914000, - 593514110, - 913900, - 593492510, - 913800, - 593470910, - 913700, - 593449310, - 913600, - 593427710, - 913500, - 593406110, - 913400, - 593384510, - 913300, - 593362910, - 913200, - 593341310, - 913100, - 593319710, - 913000, - 593298110, - 912900, - 593276510, - 912800, - 593254910, - 912700, - 593233310, - 912600, - 593211710, - 912500, - 593190110, - 912400, - 593168510, - 912300, - 593146910, - 912200, - 593125310, - 912100, - 593103710, - 912000, - 593082110, - 911900, - 593060510, - 911800, - 593038910, - 911700, - 593017310, - 911600, - 592995710, - 911500, - 592974110, - 911400, - 592952510, - 911300, - 592930910, - 911200, - 592909310, - 911100, - 592887710, - 911000, - 592866110, - 910900, - 592844510, - 910800, - 592822910, - 910700, - 592801310, - 910600, - 592779710, - 910500, - 592758110, - 910400, - 592736510, - 910300, - 592714910, - 910200, - 592693310, - 910100, - 592671710, - 910000, - 592650110, - 909900, - 592628510, - 909800, - 592606910, - 909700, - 592585310, - 909600, - 592563710, - 909500, - 592542110, - 909400, - 592520510, - 909300, - 592498910, - 909200, - 592477310, - 909100, - 592455710, - 909000, - 592434110, - 908900, - 592412510, - 908800, - 592390910, - 908700, - 592369310, - 908600, - 592347710, - 908500, - 592326110, - 908400, - 592304510, - 908300, - 592282910, - 908200, - 592261310, - 908100, - 592239710, - 908000, - 592218110, - 907900, - 592196510, - 907800, - 592174910, - 907700, - 592153310, - 907600, - 592131710, - 907500, - 592110110, - 907400, - 592088510, - 907300, - 592066910, - 907200, - 592045310, - 907100, - 592023710, - 907000, - 592002110, - 906900, - 591980510, - 906800, - 591958910, - 906700, - 591937310, - 906600, - 591915710, - 906500, - 591894110, - 906400, - 591872510, - 906300, - 591850910, - 906200, - 591829310, - 906100, - 591807710, - 906000, - 591786110, - 905900, - 591764510, - 905800, - 591742910, - 905700, - 591721310, - 905600, - 591699710, - 905500, - 591678110, - 905400, - 591656510, - 905300, - 591634910, - 905200, - 591613310, - 905100, - 591591710, - 905000, - 591570110, - 904900, - 591548510, - 904800, - 591526910, - 904700, - 591505310, - 904600, - 591483710, - 904500, - 591462110, - 904400, - 591440510, - 904300, - 591418910, - 904200, - 591397310, - 904100, - 591375710, - 904000, - 591354110, - 903900, - 591332510, - 903800, - 591310910, - 903700, - 591289310, - 903600, - 591267710, - 903500, - 591246110, - 903400, - 591224510, - 903300, - 591202910, - 903200, - 591181310, - 903100, - 591159710, - 903000, - 591138110, - 902900, - 591116510, - 902800, - 591094910, - 902700, - 591073310, - 902600, - 591051710, - 902500, - 591030110, - 902400, - 591008510, - 902300, - 590986910, - 902200, - 590965310, - 902100, - 590943710, - 902000, - 590922110, - 901900, - 590900510, - 901800, - 590878910, - 901700, - 590857310, - 901600, - 590835710, - 901500, - 590814110, - 901400, - 590792510, - 901300, - 590770910, - 901200, - 590749310, - 901100, - 590727710, - 901000, - 590706110, - 900900, - 590684510, - 900800, - 590662910, - 900700, - 590641310, - 900600, - 590619710, - 900500, - 590598110, - 900400, - 590576510, - 900300, - 590554910, - 900200, - 590533310, - 900100, - 590511710, - 900000, - 590490110, - 899900, - 590468510, - 899800, - 590446910, - 899700, - 590425310, - 899600, - 590403710, - 899500, - 590382110, - 899400, - 590360510, - 899300, - 590338910, - 899200, - 590317310, - 899100, - 590295710, - 899000, - 590274110, - 898900, - 590252510, - 898800, - 590230910, - 898700, - 590209310, - 898600, - 590187710, - 898500, - 590166110, - 898400, - 590144510, - 898300, - 590122910, - 898200, - 590101310, - 898100, - 590079710, - 898000, - 590058110, - 897900, - 590036510, - 897800, - 590014910, - 897700, - 589993310, - 897600, - 589971710, - 897500, - 589950110, - 897400, - 589928510, - 897300, - 589906910, - 897200, - 589885310, - 897100, - 589863710, - 897000, - 589842110, - 896900, - 589820510, - 896800, - 589798910, - 896700, - 589777310, - 896600, - 589755710, - 896500, - 589734110, - 896400, - 589712510, - 896300, - 589690910, - 896200, - 589669310, - 896100, - 589647710, - 896000, - 589626110, - 895900, - 589604510, - 895800, - 589582910, - 895700, - 589561310, - 895600, - 589539710, - 895500, - 589518110, - 895400, - 589496510, - 895300, - 589474910, - 895200, - 589453310, - 895100, - 589431710, - 895000, - 589410110, - 894900, - 589388510, - 894800, - 589366910, - 894700, - 589345310, - 894600, - 589323710, - 894500, - 589302110, - 894400, - 589280510, - 894300, - 589258910, - 894200, - 589237310, - 894100, - 589215710, - 894000, - 589194110, - 893900, - 589172510, - 893800, - 589150910, - 893700, - 589129310, - 893600, - 589107710, - 893500, - 589086110, - 893400, - 589064510, - 893300, - 589042910, - 893200, - 589021310, - 893100, - 588999710, - 893000, - 588978110, - 892900, - 588956510, - 892800, - 588934910, - 892700, - 588913310, - 892600, - 588891710, - 892500, - 588870110, - 892400, - 588848510, - 892300, - 588826910, - 892200, - 588805310, - 892100, - 588783710, - 892000, - 588762110, - 891900, - 588740510, - 891800, - 588718910, - 891700, - 588697310, - 891600, - 588675710, - 891500, - 588654110, - 891400, - 588632510, - 891300, - 588610910, - 891200, - 588589310, - 891100, - 588567710, - 891000, - 588546110, - 890900, - 588524510, - 890800, - 588502910, - 890700, - 588481310, - 890600, - 588459710, - 890500, - 588438110, - 890400, - 588416510, - 890300, - 588394910, - 890200, - 588373310, - 890100, - 588351710, - 890000, - 588330110, - 889900, - 588308510, - 889800, - 588286910, - 889700, - 588265310, - 889600, - 588243710, - 889500, - 588222110, - 889400, - 588200510, - 889300, - 588178910, - 889200, - 588157310, - 889100, - 588135710, - 889000, - 588114110, - 888900, - 588092510, - 888800, - 588070910, - 888700, - 588049310, - 888600, - 588027710, - 888500, - 588006110, - 888400, - 587984510, - 888300, - 587962910, - 888200, - 587941310, - 888100, - 587919710, - 888000, - 587898110, - 887900, - 587876510, - 887800, - 587854910, - 887700, - 587833310, - 887600, - 587811710, - 887500, - 587790110, - 887400, - 587768510, - 887300, - 587746910, - 887200, - 587725310, - 887100, - 587703710, - 887000, - 587682110, - 886900, - 587660510, - 886800, - 587638910, - 886700, - 587617310, - 886600, - 587595710, - 886500, - 587574110, - 886400, - 587552510, - 886300, - 587530910, - 886200, - 587509310, - 886100, - 587487710, - 886000, - 587466110, - 885900, - 587444510, - 885800, - 587422910, - 885700, - 587401310, - 885600, - 587379710, - 885500, - 587358110, - 885400, - 587336510, - 885300, - 587314910, - 885200, - 587293310, - 885100, - 587271710, - 885000, - 587250110, - 884900, - 587228510, - 884800, - 587206910, - 884700, - 587185310, - 884600, - 587163710, - 884500, - 587142110, - 884400, - 587120510, - 884300, - 587098910, - 884200, - 587077310, - 884100, - 587055710, - 884000, - 587034110, - 883900, - 587012510, - 883800, - 586990910, - 883700, - 586969310, - 883600, - 586947710, - 883500, - 586926110, - 883400, - 586904510, - 883300, - 586882910, - 883200, - 586861310, - 883100, - 586839710, - 883000, - 586818110, - 882900, - 586796510, - 882800, - 586774910, - 882700, - 586753310, - 882600, - 586731710, - 882500, - 586710110, - 882400, - 586688510, - 882300, - 586666910, - 882200, - 586645310, - 882100, - 586623710, - 882000, - 586602110, - 881900, - 586580510, - 881800, - 586558910, - 881700, - 586537310, - 881600, - 586515710, - 881500, - 586494110, - 881400, - 586472510, - 881300, - 586450910, - 881200, - 586429310, - 881100, - 586407710, - 881000, - 586386110, - 880900, - 586364510, - 880800, - 586342910, - 880700, - 586321310, - 880600, - 586299710, - 880500, - 586278110, - 880400, - 586256510, - 880300, - 586234910, - 880200, - 586213310, - 880100, - 586191710, - 880000, - 586170110, - 879900, - 586148510, - 879800, - 586126910, - 879700, - 586105310, - 879600, - 586083710, - 879500, - 586062110, - 879400, - 586040510, - 879300, - 586018910, - 879200, - 585997310, - 879100, - 585975710, - 879000, - 585954110, - 878900, - 585932510, - 878800, - 585910910, - 878700, - 585889310, - 878600, - 585867710, - 878500, - 585846110, - 878400, - 585824510, - 878300, - 585802910, - 878200, - 585781310, - 878100, - 585759710, - 878000, - 585738110, - 877900, - 585716510, - 877800, - 585694910, - 877700, - 585673310, - 877600, - 585651710, - 877500, - 585630110, - 877400, - 585608510, - 877300, - 585586910, - 877200, - 585565310, - 877100, - 585543710, - 877000, - 585522110, - 876900, - 585500510, - 876800, - 585478910, - 876700, - 585457310, - 876600, - 585435710, - 876500, - 585414110, - 876400, - 585392510, - 876300, - 585370910, - 876200, - 585349310, - 876100, - 585327710, - 876000, - 585306110, - 875900, - 585284510, - 875800, - 585262910, - 875700, - 585241310, - 875600, - 585219710, - 875500, - 585198110, - 875400, - 585176510, - 875300, - 585154910, - 875200, - 585133310, - 875100, - 585111710, - 875000, - 585090110, - 874900, - 585068510, - 874800, - 585046910, - 874700, - 585025310, - 874600, - 585003710, - 874500, - 584982110, - 874400, - 584960510, - 874300, - 584938910, - 874200, - 584917310, - 874100, - 584895710, - 874000, - 584874110, - 873900, - 584852510, - 873800, - 584830910, - 873700, - 584809310, - 873600, - 584787710, - 873500, - 584766110, - 873400, - 584744510, - 873300, - 584722910, - 873200, - 584701310, - 873100, - 584679710, - 873000, - 584658110, - 872900, - 584636510, - 872800, - 584614910, - 872700, - 584593310, - 872600, - 584571710, - 872500, - 584550110, - 872400, - 584528510, - 872300, - 584506910, - 872200, - 584485310, - 872100, - 584463710, - 872000, - 584442110, - 871900, - 584420510, - 871800, - 584398910, - 871700, - 584377310, - 871600, - 584355710, - 871500, - 584334110, - 871400, - 584312510, - 871300, - 584290910, - 871200, - 584269310, - 871100, - 584247710, - 871000, - 584226110, - 870900, - 584204510, - 870800, - 584182910, - 870700, - 584161310, - 870600, - 584139710, - 870500, - 584118110, - 870400, - 584096510, - 870300, - 584074910, - 870200, - 584053310, - 870100, - 584031710, - 870000, - 584010110, - 869900, - 583988510, - 869800, - 583966910, - 869700, - 583945310, - 869600, - 583923710, - 869500, - 583902110, - 869400, - 583880510, - 869300, - 583858910, - 869200, - 583837310, - 869100, - 583815710, - 869000, - 583794110, - 868900, - 583772510, - 868800, - 583750910, - 868700, - 583729310, - 868600, - 583707710, - 868500, - 583686110, - 868400, - 583664510, - 868300, - 583642910, - 868200, - 583621310, - 868100, - 583599710, - 868000, - 583578110, - 867900, - 583556510, - 867800, - 583534910, - 867700, - 583513310, - 867600, - 583491710, - 867500, - 583470110, - 867400, - 583448510, - 867300, - 583426910, - 867200, - 583405310, - 867100, - 583383710, - 867000, - 583362110, - 866900, - 583340510, - 866800, - 583318910, - 866700, - 583297310, - 866600, - 583275710, - 866500, - 583254110, - 866400, - 583232510, - 866300, - 583210910, - 866200, - 583189310, - 866100, - 583167710, - 866000, - 583146110, - 865900, - 583124510, - 865800, - 583102910, - 865700, - 583081310, - 865600, - 583059710, - 865500, - 583038110, - 865400, - 583016510, - 865300, - 582994910, - 865200, - 582973310, - 865100, - 582951710, - 865000, - 582930110, - 864900, - 582908510, - 864800, - 582886910, - 864700, - 582865310, - 864600, - 582843710, - 864500, - 582822110, - 864400, - 582800510, - 864300, - 582778910, - 864200, - 582757310, - 864100, - 582735710, - 864000, - 582714110, - 863900, - 582692510, - 863800, - 582670910, - 863700, - 582649310, - 863600, - 582627710, - 863500, - 582606110, - 863400, - 582584510, - 863300, - 582562910, - 863200, - 582541310, - 863100, - 582519710, - 863000, - 582498110, - 862900, - 582476510, - 862800, - 582454910, - 862700, - 582433310, - 862600, - 582411710, - 862500, - 582390110, - 862400, - 582368510, - 862300, - 582346910, - 862200, - 582325310, - 862100, - 582303710, - 862000, - 582282110, - 861900, - 582260510, - 861800, - 582238910, - 861700, - 582217310, - 861600, - 582195710, - 861500, - 582174110, - 861400, - 582152510, - 861300, - 582130910, - 861200, - 582109310, - 861100, - 582087710, - 861000, - 582066110, - 860900, - 582044510, - 860800, - 582022910, - 860700, - 582001310, - 860600, - 581979710, - 860500, - 581958110, - 860400, - 581936510, - 860300, - 581914910, - 860200, - 581893310, - 860100, - 581871710, - 860000, - 581850110, - 859900, - 581828510, - 859800, - 581806910, - 859700, - 581785310, - 859600, - 581763710, - 859500, - 581742110, - 859400, - 581720510, - 859300, - 581698910, - 859200, - 581677310, - 859100, - 581655710, - 859000, - 581634110, - 858900, - 581612510, - 858800, - 581590910, - 858700, - 581569310, - 858600, - 581547710, - 858500, - 581526110, - 858400, - 581504510, - 858300, - 581482910, - 858200, - 581461310, - 858100, - 581439710, - 858000, - 581418110, - 857900, - 581396510, - 857800, - 581374910, - 857700, - 581353310, - 857600, - 581331710, - 857500, - 581310110, - 857400, - 581288510, - 857300, - 581266910, - 857200, - 581245310, - 857100, - 581223710, - 857000, - 581202110, - 856900, - 581180510, - 856800, - 581158910, - 856700, - 581137310, - 856600, - 581115710, - 856500, - 581094110, - 856400, - 581072510, - 856300, - 581050910, - 856200, - 581029310, - 856100, - 581007710, - 856000, - 580986110, - 855900, - 580964510, - 855800, - 580942910, - 855700, - 580921310, - 855600, - 580899710, - 855500, - 580878110, - 855400, - 580856510, - 855300, - 580834910, - 855200, - 580813310, - 855100, - 580791710, - 855000, - 580770110, - 854900, - 580748510, - 854800, - 580726910, - 854700, - 580705310, - 854600, - 580683710, - 854500, - 580662110, - 854400, - 580640510, - 854300, - 580618910, - 854200, - 580597310, - 854100, - 580575710, - 854000, - 580554110, - 853900, - 580532510, - 853800, - 580510910, - 853700, - 580489310, - 853600, - 580467710, - 853500, - 580446110, - 853400, - 580424510, - 853300, - 580402910, - 853200, - 580381310, - 853100, - 580359710, - 853000, - 580338110, - 852900, - 580316510, - 852800, - 580294910, - 852700, - 580273310, - 852600, - 580251710, - 852500, - 580230110, - 852400, - 580208510, - 852300, - 580186910, - 852200, - 580165310, - 852100, - 580143710, - 852000, - 580122110, - 851900, - 580100510, - 851800, - 580078910, - 851700, - 580057310, - 851600, - 580035710, - 851500, - 580014110, - 851400, - 579992510, - 851300, - 579970910, - 851200, - 579949310, - 851100, - 579927710, - 851000, - 579906110, - 850900, - 579884510, - 850800, - 579862910, - 850700, - 579841310, - 850600, - 579819710, - 850500, - 579798110, - 850400, - 579776510, - 850300, - 579754910, - 850200, - 579733310, - 850100, - 579711710, - 850000, - 579690110, - 849900, - 579668510, - 849800, - 579646910, - 849700, - 579625310, - 849600, - 579603710, - 849500, - 579582110, - 849400, - 579560510, - 849300, - 579538910, - 849200, - 579517310, - 849100, - 579495710, - 849000, - 579474110, - 848900, - 579452510, - 848800, - 579430910, - 848700, - 579409310, - 848600, - 579387710, - 848500, - 579366110, - 848400, - 579344510, - 848300, - 579322910, - 848200, - 579301310, - 848100, - 579279710, - 848000, - 579258110, - 847900, - 579236510, - 847800, - 579214910, - 847700, - 579193310, - 847600, - 579171710, - 847500, - 579150110, - 847400, - 579128510, - 847300, - 579106910, - 847200, - 579085310, - 847100, - 579063710, - 847000, - 579042110, - 846900, - 579020510, - 846800, - 578998910, - 846700, - 578977310, - 846600, - 578955710, - 846500, - 578934110, - 846400, - 578912510, - 846300, - 578890910, - 846200, - 578869310, - 846100, - 578847710, - 846000, - 578826110, - 845900, - 578804510, - 845800, - 578782910, - 845700, - 578761310, - 845600, - 578739710, - 845500, - 578718110, - 845400, - 578696510, - 845300, - 578674910, - 845200, - 578653310, - 845100, - 578631710, - 845000, - 578610110, - 844900, - 578588510, - 844800, - 578566910, - 844700, - 578545310, - 844600, - 578523710, - 844500, - 578502110, - 844400, - 578480510, - 844300, - 578458910, - 844200, - 578437310, - 844100, - 578415710, - 844000, - 578394110, - 843900, - 578372510, - 843800, - 578350910, - 843700, - 578329310, - 843600, - 578307710, - 843500, - 578286110, - 843400, - 578264510, - 843300, - 578242910, - 843200, - 578221310, - 843100, - 578199710, - 843000, - 578178110, - 842900, - 578156510, - 842800, - 578134910, - 842700, - 578113310, - 842600, - 578091710, - 842500, - 578070110, - 842400, - 578048510, - 842300, - 578026910, - 842200, - 578005310, - 842100, - 577983710, - 842000, - 577962110, - 841900, - 577940510, - 841800, - 577918910, - 841700, - 577897310, - 841600, - 577875710, - 841500, - 577854110, - 841400, - 577832510, - 841300, - 577810910, - 841200, - 577789310, - 841100, - 577767710, - 841000, - 577746110, - 840900, - 577724510, - 840800, - 577702910, - 840700, - 577681310, - 840600, - 577659710, - 840500, - 577638110, - 840400, - 577616510, - 840300, - 577594910, - 840200, - 577573310, - 840100, - 577551710, - 840000, - 577530110, - 839900, - 577508510, - 839800, - 577486910, - 839700, - 577465310, - 839600, - 577443710, - 839500, - 577422110, - 839400, - 577400510, - 839300, - 577378910, - 839200, - 577357310, - 839100, - 577335710, - 839000, - 577314110, - 838900, - 577292510, - 838800, - 577270910, - 838700, - 577249310, - 838600, - 577227710, - 838500, - 577206110, - 838400, - 577184510, - 838300, - 577162910, - 838200, - 577141310, - 838100, - 577119710, - 838000, - 577098110, - 837900, - 577076510, - 837800, - 577054910, - 837700, - 577033310, - 837600, - 577011710, - 837500, - 576990110, - 837400, - 576968510, - 837300, - 576946910, - 837200, - 576925310, - 837100, - 576903710, - 837000, - 576882110, - 836900, - 576860510, - 836800, - 576838910, - 836700, - 576817310, - 836600, - 576795710, - 836500, - 576774110, - 836400, - 576752510, - 836300, - 576730910, - 836200, - 576709310, - 836100, - 576687710, - 836000, - 576666110, - 835900, - 576644510, - 835800, - 576622910, - 835700, - 576601310, - 835600, - 576579710, - 835500, - 576558110, - 835400, - 576536510, - 835300, - 576514910, - 835200, - 576493310, - 835100, - 576471710, - 835000, - 576450110, - 834900, - 576428510, - 834800, - 576406910, - 834700, - 576385310, - 834600, - 576363710, - 834500, - 576342110, - 834400, - 576320510, - 834300, - 576298910, - 834200, - 576277310, - 834100, - 576255710, - 834000, - 576234110, - 833900, - 576212510, - 833800, - 576190910, - 833700, - 576169310, - 833600, - 576147710, - 833500, - 576126110, - 833400, - 576104510, - 833300, - 576082910, - 833200, - 576061310, - 833100, - 576039710, - 833000, - 576018110, - 832900, - 575996510, - 832800, - 575974910, - 832700, - 575953310, - 832600, - 575931710, - 832500, - 575910110, - 832400, - 575888510, - 832300, - 575866910, - 832200, - 575845310, - 832100, - 575823710, - 832000, - 575802110, - 831900, - 575780510, - 831800, - 575758910, - 831700, - 575737310, - 831600, - 575715710, - 831500, - 575694110, - 831400, - 575672510, - 831300, - 575650910, - 831200, - 575629310, - 831100, - 575607710, - 831000, - 575586110, - 830900, - 575564510, - 830800, - 575542910, - 830700, - 575521310, - 830600, - 575499710, - 830500, - 575478110, - 830400, - 575456510, - 830300, - 575434910, - 830200, - 575413310, - 830100, - 575391710, - 830000, - 575370110, - 829900, - 575348510, - 829800, - 575326910, - 829700, - 575305310, - 829600, - 575283710, - 829500, - 575262110, - 829400, - 575240510, - 829300, - 575218910, - 829200, - 575197310, - 829100, - 575175710, - 829000, - 575154110, - 828900, - 575132510, - 828800, - 575110910, - 828700, - 575089310, - 828600, - 575067710, - 828500, - 575046110, - 828400, - 575024510, - 828300, - 575002910, - 828200, - 574981310, - 828100, - 574959710, - 828000, - 574938110, - 827900, - 574916510, - 827800, - 574894910, - 827700, - 574873310, - 827600, - 574851710, - 827500, - 574830110, - 827400, - 574808510, - 827300, - 574786910, - 827200, - 574765310, - 827100, - 574743710, - 827000, - 574722110, - 826900, - 574700510, - 826800, - 574678910, - 826700, - 574657310, - 826600, - 574635710, - 826500, - 574614110, - 826400, - 574592510, - 826300, - 574570910, - 826200, - 574549310, - 826100, - 574527710, - 826000, - 574506110, - 825900, - 574484510, - 825800, - 574462910, - 825700, - 574441310, - 825600, - 574419710, - 825500, - 574398110, - 825400, - 574376510, - 825300, - 574354910, - 825200, - 574333310, - 825100, - 574311710, - 825000, - 574290110, - 824900, - 574268510, - 824800, - 574246910, - 824700, - 574225310, - 824600, - 574203710, - 824500, - 574182110, - 824400, - 574160510, - 824300, - 574138910, - 824200, - 574117310, - 824100, - 574095710, - 824000, - 574074110, - 823900, - 574052510, - 823800, - 574030910, - 823700, - 574009310, - 823600, - 573987710, - 823500, - 573966110, - 823400, - 573944510, - 823300, - 573922910, - 823200, - 573901310, - 823100, - 573879710, - 823000, - 573858110, - 822900, - 573836510, - 822800, - 573814910, - 822700, - 573793310, - 822600, - 573771710, - 822500, - 573750110, - 822400, - 573728510, - 822300, - 573706910, - 822200, - 573685310, - 822100, - 573663710, - 822000, - 573642110, - 821900, - 573620510, - 821800, - 573598910, - 821700, - 573577310, - 821600, - 573555710, - 821500, - 573534110, - 821400, - 573512510, - 821300, - 573490910, - 821200, - 573469310, - 821100, - 573447710, - 821000, - 573426110, - 820900, - 573404510, - 820800, - 573382910, - 820700, - 573361310, - 820600, - 573339710, - 820500, - 573318110, - 820400, - 573296510, - 820300, - 573274910, - 820200, - 573253310, - 820100, - 573231710, - 820000, - 573210110, - 819900, - 573188510, - 819800, - 573166910, - 819700, - 573145310, - 819600, - 573123710, - 819500, - 573102110, - 819400, - 573080510, - 819300, - 573058910, - 819200, - 573037310, - 819100, - 573015710, - 819000, - 572994110, - 818900, - 572972510, - 818800, - 572950910, - 818700, - 572929310, - 818600, - 572907710, - 818500, - 572886110, - 818400, - 572864510, - 818300, - 572842910, - 818200, - 572821310, - 818100, - 572799710, - 818000, - 572778110, - 817900, - 572756510, - 817800, - 572734910, - 817700, - 572713310, - 817600, - 572691710, - 817500, - 572670110, - 817400, - 572648510, - 817300, - 572626910, - 817200, - 572605310, - 817100, - 572583710, - 817000, - 572562110, - 816900, - 572540510, - 816800, - 572518910, - 816700, - 572497310, - 816600, - 572475710, - 816500, - 572454110, - 816400, - 572432510, - 816300, - 572410910, - 816200, - 572389310, - 816100, - 572367710, - 816000, - 572346110, - 815900, - 572324510, - 815800, - 572302910, - 815700, - 572281310, - 815600, - 572259710, - 815500, - 572238110, - 815400, - 572216510, - 815300, - 572194910, - 815200, - 572173310, - 815100, - 572151710, - 815000, - 572130110, - 814900, - 572108510, - 814800, - 572086910, - 814700, - 572065310, - 814600, - 572043710, - 814500, - 572022110, - 814400, - 572000510, - 814300, - 571978910, - 814200, - 571957310, - 814100, - 571935710, - 814000, - 571914110, - 813900, - 571892510, - 813800, - 571870910, - 813700, - 571849310, - 813600, - 571827710, - 813500, - 571806110, - 813400, - 571784510, - 813300, - 571762910, - 813200, - 571741310, - 813100, - 571719710, - 813000, - 571698110, - 812900, - 571676510, - 812800, - 571654910, - 812700, - 571633310, - 812600, - 571611710, - 812500, - 571590110, - 812400, - 571568510, - 812300, - 571546910, - 812200, - 571525310, - 812100, - 571503710, - 812000, - 571482110, - 811900, - 571460510, - 811800, - 571438910, - 811700, - 571417310, - 811600, - 571395710, - 811500, - 571374110, - 811400, - 571352510, - 811300, - 571330910, - 811200, - 571309310, - 811100, - 571287710, - 811000, - 571266110, - 810900, - 571244510, - 810800, - 571222910, - 810700, - 571201310, - 810600, - 571179710, - 810500, - 571158110, - 810400, - 571136510, - 810300, - 571114910, - 810200, - 571093310, - 810100, - 571071710, - 810000, - 571050110, - 809900, - 571028510, - 809800, - 571006910, - 809700, - 570985310, - 809600, - 570963710, - 809500, - 570942110, - 809400, - 570920510, - 809300, - 570898910, - 809200, - 570877310, - 809100, - 570855710, - 809000, - 570834110, - 808900, - 570812510, - 808800, - 570790910, - 808700, - 570769310, - 808600, - 570747710, - 808500, - 570726110, - 808400, - 570704510, - 808300, - 570682910, - 808200, - 570661310, - 808100, - 570639710, - 808000, - 570618110, - 807900, - 570596510, - 807800, - 570574910, - 807700, - 570553310, - 807600, - 570531710, - 807500, - 570510110, - 807400, - 570488510, - 807300, - 570466910, - 807200, - 570445310, - 807100, - 570423710, - 807000, - 570402110, - 806900, - 570380510, - 806800, - 570358910, - 806700, - 570337310, - 806600, - 570315710, - 806500, - 570294110, - 806400, - 570272510, - 806300, - 570250910, - 806200, - 570229310, - 806100, - 570207710, - 806000, - 570186110, - 805900, - 570164510, - 805800, - 570142910, - 805700, - 570121310, - 805600, - 570099710, - 805500, - 570078110, - 805400, - 570056510, - 805300, - 570034910, - 805200, - 570013310, - 805100, - 569991710, - 805000, - 569970110, - 804900, - 569948510, - 804800, - 569926910, - 804700, - 569905310, - 804600, - 569883710, - 804500, - 569862110, - 804400, - 569840510, - 804300, - 569818910, - 804200, - 569797310, - 804100, - 569775710, - 804000, - 569754110, - 803900, - 569732510, - 803800, - 569710910, - 803700, - 569689310, - 803600, - 569667710, - 803500, - 569646110, - 803400, - 569624510, - 803300, - 569602910, - 803200, - 569581310, - 803100, - 569559710, - 803000, - 569538110, - 802900, - 569516510, - 802800, - 569494910, - 802700, - 569473310, - 802600, - 569451710, - 802500, - 569430110, - 802400, - 569408510, - 802300, - 569386910, - 802200, - 569365310, - 802100, - 569343710, - 802000, - 569322110, - 801900, - 569300510, - 801800, - 569278910, - 801700, - 569257310, - 801600, - 569235710, - 801500, - 569214110, - 801400, - 569192510, - 801300, - 569170910, - 801200, - 569149310, - 801100, - 569127710, - 801000, - 569106110, - 800900, - 569084510, - 800800, - 569062910, - 800700, - 569041310, - 800600, - 569019710, - 800500, - 568998110, - 800400, - 568976510, - 800300, - 568954910, - 800200, - 568933310, - 800100, - 568911710, - 800000, - 568890110, - 799900, - 568868510, - 799800, - 568846910, - 799700, - 568825310, - 799600, - 568803710, - 799500, - 568782110, - 799400, - 568760510, - 799300, - 568738910, - 799200, - 568717310, - 799100, - 568695710, - 799000, - 568674110, - 798900, - 568652510, - 798800, - 568630910, - 798700, - 568609310, - 798600, - 568587710, - 798500, - 568566110, - 798400, - 568544510, - 798300, - 568522910, - 798200, - 568501310, - 798100, - 568479710, - 798000, - 568458110, - 797900, - 568436510, - 797800, - 568414910, - 797700, - 568393310, - 797600, - 568371710, - 797500, - 568350110, - 797400, - 568328510, - 797300, - 568306910, - 797200, - 568285310, - 797100, - 568263710, - 797000, - 568242110, - 796900, - 568220510, - 796800, - 568198910, - 796700, - 568177310, - 796600, - 568155710, - 796500, - 568134110, - 796400, - 568112510, - 796300, - 568090910, - 796200, - 568069310, - 796100, - 568047710, - 796000, - 568026110, - 795900, - 568004510, - 795800, - 567982910, - 795700, - 567961310, - 795600, - 567939710, - 795500, - 567918110, - 795400, - 567896510, - 795300, - 567874910, - 795200, - 567853310, - 795100, - 567831710, - 795000, - 567810110, - 794900, - 567788510, - 794800, - 567766910, - 794700, - 567745310, - 794600, - 567723710, - 794500, - 567702110, - 794400, - 567680510, - 794300, - 567658910, - 794200, - 567637310, - 794100, - 567615710, - 794000, - 567594110, - 793900, - 567572510, - 793800, - 567550910, - 793700, - 567529310, - 793600, - 567507710, - 793500, - 567486110, - 793400, - 567464510, - 793300, - 567442910, - 793200, - 567421310, - 793100, - 567399710, - 793000, - 567378110, - 792900, - 567356510, - 792800, - 567334910, - 792700, - 567313310, - 792600, - 567291710, - 792500, - 567270110, - 792400, - 567248510, - 792300, - 567226910, - 792200, - 567205310, - 792100, - 567183710, - 792000, - 567162110, - 791900, - 567140510, - 791800, - 567118910, - 791700, - 567097310, - 791600, - 567075710, - 791500, - 567054110, - 791400, - 567032510, - 791300, - 567010910, - 791200, - 566989310, - 791100, - 566967710, - 791000, - 566946110, - 790900, - 566924510, - 790800, - 566902910, - 790700, - 566881310, - 790600, - 566859710, - 790500, - 566838110, - 790400, - 566816510, - 790300, - 566794910, - 790200, - 566773310, - 790100, - 566751710, - 790000, - 566730110, - 789900, - 566708510, - 789800, - 566686910, - 789700, - 566665310, - 789600, - 566643710, - 789500, - 566622110, - 789400, - 566600510, - 789300, - 566578910, - 789200, - 566557310, - 789100, - 566535710, - 789000, - 566514110, - 788900, - 566492510, - 788800, - 566470910, - 788700, - 566449310, - 788600, - 566427710, - 788500, - 566406110, - 788400, - 566384510, - 788300, - 566362910, - 788200, - 566341310, - 788100, - 566319710, - 788000, - 566298110, - 787900, - 566276510, - 787800, - 566254910, - 787700, - 566233310, - 787600, - 566211710, - 787500, - 566190110, - 787400, - 566168510, - 787300, - 566146910, - 787200, - 566125310, - 787100, - 566103710, - 787000, - 566082110, - 786900, - 566060510, - 786800, - 566038910, - 786700, - 566017310, - 786600, - 565995710, - 786500, - 565974110, - 786400, - 565952510, - 786300, - 565930910, - 786200, - 565909310, - 786100, - 565887710, - 786000, - 565866110, - 785900, - 565844510, - 785800, - 565822910, - 785700, - 565801310, - 785600, - 565779710, - 785500, - 565758110, - 785400, - 565736510, - 785300, - 565714910, - 785200, - 565693310, - 785100, - 565671710, - 785000, - 565650110, - 784900, - 565628510, - 784800, - 565606910, - 784700, - 565585310, - 784600, - 565563710, - 784500, - 565542110, - 784400, - 565520510, - 784300, - 565498910, - 784200, - 565477310, - 784100, - 565455710, - 784000, - 565434110, - 783900, - 565412510, - 783800, - 565390910, - 783700, - 565369310, - 783600, - 565347710, - 783500, - 565326110, - 783400, - 565304510, - 783300, - 565282910, - 783200, - 565261310, - 783100, - 565239710, - 783000, - 565218110, - 782900, - 565196510, - 782800, - 565174910, - 782700, - 565153310, - 782600, - 565131710, - 782500, - 565110110, - 782400, - 565088510, - 782300, - 565066910, - 782200, - 565045310, - 782100, - 565023710, - 782000, - 565002110, - 781900, - 564980510, - 781800, - 564958910, - 781700, - 564937310, - 781600, - 564915710, - 781500, - 564894110, - 781400, - 564872510, - 781300, - 564850910, - 781200, - 564829310, - 781100, - 564807710, - 781000, - 564786110, - 780900, - 564764510, - 780800, - 564742910, - 780700, - 564721310, - 780600, - 564699710, - 780500, - 564678110, - 780400, - 564656510, - 780300, - 564634910, - 780200, - 564613310, - 780100, - 564591710, - 780000, - 564570110, - 779900, - 564548510, - 779800, - 564526910, - 779700, - 564505310, - 779600, - 564483710, - 779500, - 564462110, - 779400, - 564440510, - 779300, - 564418910, - 779200, - 564397310, - 779100, - 564375710, - 779000, - 564354110, - 778900, - 564332510, - 778800, - 564310910, - 778700, - 564289310, - 778600, - 564267710, - 778500, - 564246110, - 778400, - 564224510, - 778300, - 564202910, - 778200, - 564181310, - 778100, - 564159710, - 778000, - 564138110, - 777900, - 564116510, - 777800, - 564094910, - 777700, - 564073310, - 777600, - 564051710, - 777500, - 564030110, - 777400, - 564008510, - 777300, - 563986910, - 777200, - 563965310, - 777100, - 563943710, - 777000, - 563922110, - 776900, - 563900510, - 776800, - 563878910, - 776700, - 563857310, - 776600, - 563835710, - 776500, - 563814110, - 776400, - 563792510, - 776300, - 563770910, - 776200, - 563749310, - 776100, - 563727710, - 776000, - 563706110, - 775900, - 563684510, - 775800, - 563662910, - 775700, - 563641310, - 775600, - 563619710, - 775500, - 563598110, - 775400, - 563576510, - 775300, - 563554910, - 775200, - 563533310, - 775100, - 563511710, - 775000, - 563490110, - 774900, - 563468510, - 774800, - 563446910, - 774700, - 563425310, - 774600, - 563403710, - 774500, - 563382110, - 774400, - 563360510, - 774300, - 563338910, - 774200, - 563317310, - 774100, - 563295710, - 774000, - 563274110, - 773900, - 563252510, - 773800, - 563230910, - 773700, - 563209310, - 773600, - 563187710, - 773500, - 563166110, - 773400, - 563144510, - 773300, - 563122910, - 773200, - 563101310, - 773100, - 563079710, - 773000, - 563058110, - 772900, - 563036510, - 772800, - 563014910, - 772700, - 562993310, - 772600, - 562971710, - 772500, - 562950110, - 772400, - 562928510, - 772300, - 562906910, - 772200, - 562885310, - 772100, - 562863710, - 772000, - 562842110, - 771900, - 562820510, - 771800, - 562798910, - 771700, - 562777310, - 771600, - 562755710, - 771500, - 562734110, - 771400, - 562712510, - 771300, - 562690910, - 771200, - 562669310, - 771100, - 562647710, - 771000, - 562626110, - 770900, - 562604510, - 770800, - 562582910, - 770700, - 562561310, - 770600, - 562539710, - 770500, - 562518110, - 770400, - 562496510, - 770300, - 562474910, - 770200, - 562453310, - 770100, - 562431710, - 770000, - 562410110, - 769900, - 562388510, - 769800, - 562366910, - 769700, - 562345310, - 769600, - 562323710, - 769500, - 562302110, - 769400, - 562280510, - 769300, - 562258910, - 769200, - 562237310, - 769100, - 562215710, - 769000, - 562194110, - 768900, - 562172510, - 768800, - 562150910, - 768700, - 562129310, - 768600, - 562107710, - 768500, - 562086110, - 768400, - 562064510, - 768300, - 562042910, - 768200, - 562021310, - 768100, - 561999710, - 768000, - 561978110, - 767900, - 561956510, - 767800, - 561934910, - 767700, - 561913310, - 767600, - 561891710, - 767500, - 561870110, - 767400, - 561848510, - 767300, - 561826910, - 767200, - 561805310, - 767100, - 561783710, - 767000, - 561762110, - 766900, - 561740510, - 766800, - 561718910, - 766700, - 561697310, - 766600, - 561675710, - 766500, - 561654110, - 766400, - 561632510, - 766300, - 561610910, - 766200, - 561589310, - 766100, - 561567710, - 766000, - 561546110, - 765900, - 561524510, - 765800, - 561502910, - 765700, - 561481310, - 765600, - 561459710, - 765500, - 561438110, - 765400, - 561416510, - 765300, - 561394910, - 765200, - 561373310, - 765100, - 561351710, - 765000, - 561330110, - 764900, - 561308510, - 764800, - 561286910, - 764700, - 561265310, - 764600, - 561243710, - 764500, - 561222110, - 764400, - 561200510, - 764300, - 561178910, - 764200, - 561157310, - 764100, - 561135710, - 764000, - 561114110, - 763900, - 561092510, - 763800, - 561070910, - 763700, - 561049310, - 763600, - 561027710, - 763500, - 561006110, - 763400, - 560984510, - 763300, - 560962910, - 763200, - 560941310, - 763100, - 560919710, - 763000, - 560898110, - 762900, - 560876510, - 762800, - 560854910, - 762700, - 560833310, - 762600, - 560811710, - 762500, - 560790110, - 762400, - 560768510, - 762300, - 560746910, - 762200, - 560725310, - 762100, - 560703710, - 762000, - 560682110, - 761900, - 560660510, - 761800, - 560638910, - 761700, - 560617310, - 761600, - 560595710, - 761500, - 560574110, - 761400, - 560552510, - 761300, - 560530910, - 761200, - 560509310, - 761100, - 560487710, - 761000, - 560466110, - 760900, - 560444510, - 760800, - 560422910, - 760700, - 560401310, - 760600, - 560379710, - 760500, - 560358110, - 760400, - 560336510, - 760300, - 560314910, - 760200, - 560293310, - 760100, - 560271710, - 760000, - 560250110, - 759900, - 560228510, - 759800, - 560206910, - 759700, - 560185310, - 759600, - 560163710, - 759500, - 560142110, - 759400, - 560120510, - 759300, - 560098910, - 759200, - 560077310, - 759100, - 560055710, - 759000, - 560034110, - 758900, - 560012510, - 758800, - 559990910, - 758700, - 559969310, - 758600, - 559947710, - 758500, - 559926110, - 758400, - 559904510, - 758300, - 559882910, - 758200, - 559861310, - 758100, - 559839710, - 758000, - 559818110, - 757900, - 559796510, - 757800, - 559774910, - 757700, - 559753310, - 757600, - 559731710, - 757500, - 559710110, - 757400, - 559688510, - 757300, - 559666910, - 757200, - 559645310, - 757100, - 559623710, - 757000, - 559602110, - 756900, - 559580510, - 756800, - 559558910, - 756700, - 559537310, - 756600, - 559515710, - 756500, - 559494110, - 756400, - 559472510, - 756300, - 559450910, - 756200, - 559429310, - 756100, - 559407710, - 756000, - 559386110, - 755900, - 559364510, - 755800, - 559342910, - 755700, - 559321310, - 755600, - 559299710, - 755500, - 559278110, - 755400, - 559256510, - 755300, - 559234910, - 755200, - 559213310, - 755100, - 559191710, - 755000, - 559170110, - 754900, - 559148510, - 754800, - 559126910, - 754700, - 559105310, - 754600, - 559083710, - 754500, - 559062110, - 754400, - 559040510, - 754300, - 559018910, - 754200, - 558997310, - 754100, - 558975710, - 754000, - 558954110, - 753900, - 558932510, - 753800, - 558910910, - 753700, - 558889310, - 753600, - 558867710, - 753500, - 558846110, - 753400, - 558824510, - 753300, - 558802910, - 753200, - 558781310, - 753100, - 558759710, - 753000, - 558738110, - 752900, - 558716510, - 752800, - 558694910, - 752700, - 558673310, - 752600, - 558651710, - 752500, - 558630110, - 752400, - 558608510, - 752300, - 558586910, - 752200, - 558565310, - 752100, - 558543710, - 752000, - 558522110, - 751900, - 558500510, - 751800, - 558478910, - 751700, - 558457310, - 751600, - 558435710, - 751500, - 558414110, - 751400, - 558392510, - 751300, - 558370910, - 751200, - 558349310, - 751100, - 558327710, - 751000, - 558306110, - 750900, - 558284510, - 750800, - 558262910, - 750700, - 558241310, - 750600, - 558219710, - 750500, - 558198110, - 750400, - 558176510, - 750300, - 558154910, - 750200, - 558133310, - 750100, - 558111710, - 750000, - 558090110, - 749900, - 558068510, - 749800, - 558046910, - 749700, - 558025310, - 749600, - 558003710, - 749500, - 557982110, - 749400, - 557960510, - 749300, - 557938910, - 749200, - 557917310, - 749100, - 557895710, - 749000, - 557874110, - 748900, - 557852510, - 748800, - 557830910, - 748700, - 557809310, - 748600, - 557787710, - 748500, - 557766110, - 748400, - 557744510, - 748300, - 557722910, - 748200, - 557701310, - 748100, - 557679710, - 748000, - 557658110, - 747900, - 557636510, - 747800, - 557614910, - 747700, - 557593310, - 747600, - 557571710, - 747500, - 557550110, - 747400, - 557528510, - 747300, - 557506910, - 747200, - 557485310, - 747100, - 557463710, - 747000, - 557442110, - 746900, - 557420510, - 746800, - 557398910, - 746700, - 557377310, - 746600, - 557355710, - 746500, - 557334110, - 746400, - 557312510, - 746300, - 557290910, - 746200, - 557269310, - 746100, - 557247710, - 746000, - 557226110, - 745900, - 557204510, - 745800, - 557182910, - 745700, - 557161310, - 745600, - 557139710, - 745500, - 557118110, - 745400, - 557096510, - 745300, - 557074910, - 745200, - 557053310, - 745100, - 557031710, - 745000, - 557010110, - 744900, - 556988510, - 744800, - 556966910, - 744700, - 556945310, - 744600, - 556923710, - 744500, - 556902110, - 744400, - 556880510, - 744300, - 556858910, - 744200, - 556837310, - 744100, - 556815710, - 744000, - 556794110, - 743900, - 556772510, - 743800, - 556750910, - 743700, - 556729310, - 743600, - 556707710, - 743500, - 556686110, - 743400, - 556664510, - 743300, - 556642910, - 743200, - 556621310, - 743100, - 556599710, - 743000, - 556578110, - 742900, - 556556510, - 742800, - 556534910, - 742700, - 556513310, - 742600, - 556491710, - 742500, - 556470110, - 742400, - 556448510, - 742300, - 556426910, - 742200, - 556405310, - 742100, - 556383710, - 742000, - 556362110, - 741900, - 556340510, - 741800, - 556318910, - 741700, - 556297310, - 741600, - 556275710, - 741500, - 556254110, - 741400, - 556232510, - 741300, - 556210910, - 741200, - 556189310, - 741100, - 556167710, - 741000, - 556146110, - 740900, - 556124510, - 740800, - 556102910, - 740700, - 556081310, - 740600, - 556059710, - 740500, - 556038110, - 740400, - 556016510, - 740300, - 555994910, - 740200, - 555973310, - 740100, - 555951710, - 740000, - 555930110, - 739900, - 555908510, - 739800, - 555886910, - 739700, - 555865310, - 739600, - 555843710, - 739500, - 555822110, - 739400, - 555800510, - 739300, - 555778910, - 739200, - 555757310, - 739100, - 555735710, - 739000, - 555714110, - 738900, - 555692510, - 738800, - 555670910, - 738700, - 555649310, - 738600, - 555627710, - 738500, - 555606110, - 738400, - 555584510, - 738300, - 555562910, - 738200, - 555541310, - 738100, - 555519710, - 738000, - 555498110, - 737900, - 555476510, - 737800, - 555454910, - 737700, - 555433310, - 737600, - 555411710, - 737500, - 555390110, - 737400, - 555368510, - 737300, - 555346910, - 737200, - 555325310, - 737100, - 555303710, - 737000, - 555282110, - 736900, - 555260510, - 736800, - 555238910, - 736700, - 555217310, - 736600, - 555195710, - 736500, - 555174110, - 736400, - 555152510, - 736300, - 555130910, - 736200, - 555109310, - 736100, - 555087710, - 736000, - 555066110, - 735900, - 555044510, - 735800, - 555022910, - 735700, - 555001310, - 735600, - 554979710, - 735500, - 554958110, - 735400, - 554936510, - 735300, - 554914910, - 735200, - 554893310, - 735100, - 554871710, - 735000, - 554850110, - 734900, - 554828510, - 734800, - 554806910, - 734700, - 554785310, - 734600, - 554763710, - 734500, - 554742110, - 734400, - 554720510, - 734300, - 554698910, - 734200, - 554677310, - 734100, - 554655710, - 734000, - 554634110, - 733900, - 554612510, - 733800, - 554590910, - 733700, - 554569310, - 733600, - 554547710, - 733500, - 554526110, - 733400, - 554504510, - 733300, - 554482910, - 733200, - 554461310, - 733100, - 554439710, - 733000, - 554418110, - 732900, - 554396510, - 732800, - 554374910, - 732700, - 554353310, - 732600, - 554331710, - 732500, - 554310110, - 732400, - 554288510, - 732300, - 554266910, - 732200, - 554245310, - 732100, - 554223710, - 732000, - 554202110, - 731900, - 554180510, - 731800, - 554158910, - 731700, - 554137310, - 731600, - 554115710, - 731500, - 554094110, - 731400, - 554072510, - 731300, - 554050910, - 731200, - 554029310, - 731100, - 554007710, - 731000, - 553986110, - 730900, - 553964510, - 730800, - 553942910, - 730700, - 553921310, - 730600, - 553899710, - 730500, - 553878110, - 730400, - 553856510, - 730300, - 553834910, - 730200, - 553813310, - 730100, - 553791710, - 730000, - 553770110, - 729900, - 553748510, - 729800, - 553726910, - 729700, - 553705310, - 729600, - 553683710, - 729500, - 553662110, - 729400, - 553640510, - 729300, - 553618910, - 729200, - 553597310, - 729100, - 553575710, - 729000, - 553554110, - 728900, - 553532510, - 728800, - 553510910, - 728700, - 553489310, - 728600, - 553467710, - 728500, - 553446110, - 728400, - 553424510, - 728300, - 553402910, - 728200, - 553381310, - 728100, - 553359710, - 728000, - 553338110, - 727900, - 553316510, - 727800, - 553294910, - 727700, - 553273310, - 727600, - 553251710, - 727500, - 553230110, - 727400, - 553208510, - 727300, - 553186910, - 727200, - 553165310, - 727100, - 553143710, - 727000, - 553122110, - 726900, - 553100510, - 726800, - 553078910, - 726700, - 553057310, - 726600, - 553035710, - 726500, - 553014110, - 726400, - 552992510, - 726300, - 552970910, - 726200, - 552949310, - 726100, - 552927710, - 726000, - 552906110, - 725900, - 552884510, - 725800, - 552862910, - 725700, - 552841310, - 725600, - 552819710, - 725500, - 552798110, - 725400, - 552776510, - 725300, - 552754910, - 725200, - 552733310, - 725100, - 552711710, - 725000, - 552690110, - 724900, - 552668510, - 724800, - 552646910, - 724700, - 552625310, - 724600, - 552603710, - 724500, - 552582110, - 724400, - 552560510, - 724300, - 552538910, - 724200, - 552517310, - 724100, - 552495710, - 724000, - 552474110, - 723900, - 552452510, - 723800, - 552430910, - 723700, - 552409310, - 723600, - 552387710, - 723500, - 552366110, - 723400, - 552344510, - 723300, - 552322910, - 723200, - 552301310, - 723100, - 552279710, - 723000, - 552258110, - 722900, - 552236510, - 722800, - 552214910, - 722700, - 552193310, - 722600, - 552171710, - 722500, - 552150110, - 722400, - 552128510, - 722300, - 552106910, - 722200, - 552085310, - 722100, - 552063710, - 722000, - 552042110, - 721900, - 552020510, - 721800, - 551998910, - 721700, - 551977310, - 721600, - 551955710, - 721500, - 551934110, - 721400, - 551912510, - 721300, - 551890910, - 721200, - 551869310, - 721100, - 551847710, - 721000, - 551826110, - 720900, - 551804510, - 720800, - 551782910, - 720700, - 551761310, - 720600, - 551739710, - 720500, - 551718110, - 720400, - 551696510, - 720300, - 551674910, - 720200, - 551653310, - 720100, - 551631710, - 720000, - 551610110, - 719900, - 551588510, - 719800, - 551566910, - 719700, - 551545310, - 719600, - 551523710, - 719500, - 551502110, - 719400, - 551480510, - 719300, - 551458910, - 719200, - 551437310, - 719100, - 551415710, - 719000, - 551394110, - 718900, - 551372510, - 718800, - 551350910, - 718700, - 551329310, - 718600, - 551307710, - 718500, - 551286110, - 718400, - 551264510, - 718300, - 551242910, - 718200, - 551221310, - 718100, - 551199710, - 718000, - 551178110, - 717900, - 551156510, - 717800, - 551134910, - 717700, - 551113310, - 717600, - 551091710, - 717500, - 551070110, - 717400, - 551048510, - 717300, - 551026910, - 717200, - 551005310, - 717100, - 550983710, - 717000, - 550962110, - 716900, - 550940510, - 716800, - 550918910, - 716700, - 550897310, - 716600, - 550875710, - 716500, - 550854110, - 716400, - 550832510, - 716300, - 550810910, - 716200, - 550789310, - 716100, - 550767710, - 716000, - 550746110, - 715900, - 550724510, - 715800, - 550702910, - 715700, - 550681310, - 715600, - 550659710, - 715500, - 550638110, - 715400, - 550616510, - 715300, - 550594910, - 715200, - 550573310, - 715100, - 550551710, - 715000, - 550530110, - 714900, - 550508510, - 714800, - 550486910, - 714700, - 550465310, - 714600, - 550443710, - 714500, - 550422110, - 714400, - 550400510, - 714300, - 550378910, - 714200, - 550357310, - 714100, - 550335710, - 714000, - 550314110, - 713900, - 550292510, - 713800, - 550270910, - 713700, - 550249310, - 713600, - 550227710, - 713500, - 550206110, - 713400, - 550184510, - 713300, - 550162910, - 713200, - 550141310, - 713100, - 550119710, - 713000, - 550098110, - 712900, - 550076510, - 712800, - 550054910, - 712700, - 550033310, - 712600, - 550011710, - 712500, - 549990110, - 712400, - 549968510, - 712300, - 549946910, - 712200, - 549925310, - 712100, - 549903710, - 712000, - 549882110, - 711900, - 549860510, - 711800, - 549838910, - 711700, - 549817310, - 711600, - 549795710, - 711500, - 549774110, - 711400, - 549752510, - 711300, - 549730910, - 711200, - 549709310, - 711100, - 549687710, - 711000, - 549666110, - 710900, - 549644510, - 710800, - 549622910, - 710700, - 549601310, - 710600, - 549579710, - 710500, - 549558110, - 710400, - 549536510, - 710300, - 549514910, - 710200, - 549493310, - 710100, - 549471710, - 710000, - 549450110, - 709900, - 549428510, - 709800, - 549406910, - 709700, - 549385310, - 709600, - 549363710, - 709500, - 549342110, - 709400, - 549320510, - 709300, - 549298910, - 709200, - 549277310, - 709100, - 549255710, - 709000, - 549234110, - 708900, - 549212510, - 708800, - 549190910, - 708700, - 549169310, - 708600, - 549147710, - 708500, - 549126110, - 708400, - 549104510, - 708300, - 549082910, - 708200, - 549061310, - 708100, - 549039710, - 708000, - 549018110, - 707900, - 548996510, - 707800, - 548974910, - 707700, - 548953310, - 707600, - 548931710, - 707500, - 548910110, - 707400, - 548888510, - 707300, - 548866910, - 707200, - 548845310, - 707100, - 548823710, - 707000, - 548802110, - 706900, - 548780510, - 706800, - 548758910, - 706700, - 548737310, - 706600, - 548715710, - 706500, - 548694110, - 706400, - 548672510, - 706300, - 548650910, - 706200, - 548629310, - 706100, - 548607710, - 706000, - 548586110, - 705900, - 548564510, - 705800, - 548542910, - 705700, - 548521310, - 705600, - 548499710, - 705500, - 548478110, - 705400, - 548456510, - 705300, - 548434910, - 705200, - 548413310, - 705100, - 548391710, - 705000, - 548370110, - 704900, - 548348510, - 704800, - 548326910, - 704700, - 548305310, - 704600, - 548283710, - 704500, - 548262110, - 704400, - 548240510, - 704300, - 548218910, - 704200, - 548197310, - 704100, - 548175710, - 704000, - 548154110, - 703900, - 548132510, - 703800, - 548110910, - 703700, - 548089310, - 703600, - 548067710, - 703500, - 548046110, - 703400, - 548024510, - 703300, - 548002910, - 703200, - 547981310, - 703100, - 547959710, - 703000, - 547938110, - 702900, - 547916510, - 702800, - 547894910, - 702700, - 547873310, - 702600, - 547851710, - 702500, - 547830110, - 702400, - 547808510, - 702300, - 547786910, - 702200, - 547765310, - 702100, - 547743710, - 702000, - 547722110, - 701900, - 547700510, - 701800, - 547678910, - 701700, - 547657310, - 701600, - 547635710, - 701500, - 547614110, - 701400, - 547592510, - 701300, - 547570910, - 701200, - 547549310, - 701100, - 547527710, - 701000, - 547506110, - 700900, - 547484510, - 700800, - 547462910, - 700700, - 547441310, - 700600, - 547419710, - 700500, - 547398110, - 700400, - 547376510, - 700300, - 547354910, - 700200, - 547333310, - 700100, - 547311710, - 700000, - 547290110, - 699900, - 547268510, - 699800, - 547246910, - 699700, - 547225310, - 699600, - 547203710, - 699500, - 547182110, - 699400, - 547160510, - 699300, - 547138910, - 699200, - 547117310, - 699100, - 547095710, - 699000, - 547074110, - 698900, - 547052510, - 698800, - 547030910, - 698700, - 547009310, - 698600, - 546987710, - 698500, - 546966110, - 698400, - 546944510, - 698300, - 546922910, - 698200, - 546901310, - 698100, - 546879710, - 698000, - 546858110, - 697900, - 546836510, - 697800, - 546814910, - 697700, - 546793310, - 697600, - 546771710, - 697500, - 546750110, - 697400, - 546728510, - 697300, - 546706910, - 697200, - 546685310, - 697100, - 546663710, - 697000, - 546642110, - 696900, - 546620510, - 696800, - 546598910, - 696700, - 546577310, - 696600, - 546555710, - 696500, - 546534110, - 696400, - 546512510, - 696300, - 546490910, - 696200, - 546469310, - 696100, - 546447710, - 696000, - 546426110, - 695900, - 546404510, - 695800, - 546382910, - 695700, - 546361310, - 695600, - 546339710, - 695500, - 546318110, - 695400, - 546296510, - 695300, - 546274910, - 695200, - 546253310, - 695100, - 546231710, - 695000, - 546210110, - 694900, - 546188510, - 694800, - 546166910, - 694700, - 546145310, - 694600, - 546123710, - 694500, - 546102110, - 694400, - 546080510, - 694300, - 546058910, - 694200, - 546037310, - 694100, - 546015710, - 694000, - 545994110, - 693900, - 545972510, - 693800, - 545950910, - 693700, - 545929310, - 693600, - 545907710, - 693500, - 545886110, - 693400, - 545864510, - 693300, - 545842910, - 693200, - 545821310, - 693100, - 545799710, - 693000, - 545778110, - 692900, - 545756510, - 692800, - 545734910, - 692700, - 545713310, - 692600, - 545691710, - 692500, - 545670110, - 692400, - 545648510, - 692300, - 545626910, - 692200, - 545605310, - 692100, - 545583710, - 692000, - 545562110, - 691900, - 545540510, - 691800, - 545518910, - 691700, - 545497310, - 691600, - 545475710, - 691500, - 545454110, - 691400, - 545432510, - 691300, - 545410910, - 691200, - 545389310, - 691100, - 545367710, - 691000, - 545346110, - 690900, - 545324510, - 690800, - 545302910, - 690700, - 545281310, - 690600, - 545259710, - 690500, - 545238110, - 690400, - 545216510, - 690300, - 545194910, - 690200, - 545173310, - 690100, - 545151710, - 690000, - 545130110, - 689900, - 545108510, - 689800, - 545086910, - 689700, - 545065310, - 689600, - 545043710, - 689500, - 545022110, - 689400, - 545000510, - 689300, - 544978910, - 689200, - 544957310, - 689100, - 544935710, - 689000, - 544914110, - 688900, - 544892510, - 688800, - 544870910, - 688700, - 544849310, - 688600, - 544827710, - 688500, - 544806110, - 688400, - 544784510, - 688300, - 544762910, - 688200, - 544741310, - 688100, - 544719710, - 688000, - 544698110, - 687900, - 544676510, - 687800, - 544654910, - 687700, - 544633310, - 687600, - 544611710, - 687500, - 544590110, - 687400, - 544568510, - 687300, - 544546910, - 687200, - 544525310, - 687100, - 544503710, - 687000, - 544482110, - 686900, - 544460510, - 686800, - 544438910, - 686700, - 544417310, - 686600, - 544395710, - 686500, - 544374110, - 686400, - 544352510, - 686300, - 544330910, - 686200, - 544309310, - 686100, - 544287710, - 686000, - 544266110, - 685900, - 544244510, - 685800, - 544222910, - 685700, - 544201310, - 685600, - 544179710, - 685500, - 544158110, - 685400, - 544136510, - 685300, - 544114910, - 685200, - 544093310, - 685100, - 544071710, - 685000, - 544050110, - 684900, - 544028510, - 684800, - 544006910, - 684700, - 543985310, - 684600, - 543963710, - 684500, - 543942110, - 684400, - 543920510, - 684300, - 543898910, - 684200, - 543877310, - 684100, - 543855710, - 684000, - 543834110, - 683900, - 543812510, - 683800, - 543790910, - 683700, - 543769310, - 683600, - 543747710, - 683500, - 543726110, - 683400, - 543704510, - 683300, - 543682910, - 683200, - 543661310, - 683100, - 543639710, - 683000, - 543618110, - 682900, - 543596510, - 682800, - 543574910, - 682700, - 543553310, - 682600, - 543531710, - 682500, - 543510110, - 682400, - 543488510, - 682300, - 543466910, - 682200, - 543445310, - 682100, - 543423710, - 682000, - 543402110, - 681900, - 543380510, - 681800, - 543358910, - 681700, - 543337310, - 681600, - 543315710, - 681500, - 543294110, - 681400, - 543272510, - 681300, - 543250910, - 681200, - 543229310, - 681100, - 543207710, - 681000, - 543186110, - 680900, - 543164510, - 680800, - 543142910, - 680700, - 543121310, - 680600, - 543099710, - 680500, - 543078110, - 680400, - 543056510, - 680300, - 543034910, - 680200, - 543013310, - 680100, - 542991710, - 680000, - 542970110, - 679900, - 542948510, - 679800, - 542926910, - 679700, - 542905310, - 679600, - 542883710, - 679500, - 542862110, - 679400, - 542840510, - 679300, - 542818910, - 679200, - 542797310, - 679100, - 542775710, - 679000, - 542754110, - 678900, - 542732510, - 678800, - 542710910, - 678700, - 542689310, - 678600, - 542667710, - 678500, - 542646110, - 678400, - 542624510, - 678300, - 542602910, - 678200, - 542581310, - 678100, - 542559710, - 678000, - 542538110, - 677900, - 542516510, - 677800, - 542494910, - 677700, - 542473310, - 677600, - 542451710, - 677500, - 542430110, - 677400, - 542408510, - 677300, - 542386910, - 677200, - 542365310, - 677100, - 542343710, - 677000, - 542322110, - 676900, - 542300510, - 676800, - 542278910, - 676700, - 542257310, - 676600, - 542235710, - 676500, - 542214110, - 676400, - 542192510, - 676300, - 542170910, - 676200, - 542149310, - 676100, - 542127710, - 676000, - 542106110, - 675900, - 542084510, - 675800, - 542062910, - 675700, - 542041310, - 675600, - 542019710, - 675500, - 541998110, - 675400, - 541976510, - 675300, - 541954910, - 675200, - 541933310, - 675100, - 541911710, - 675000, - 541890110, - 674900, - 541868510, - 674800, - 541846910, - 674700, - 541825310, - 674600, - 541803710, - 674500, - 541782110, - 674400, - 541760510, - 674300, - 541738910, - 674200, - 541717310, - 674100, - 541695710, - 674000, - 541674110, - 673900, - 541652510, - 673800, - 541630910, - 673700, - 541609310, - 673600, - 541587710, - 673500, - 541566110, - 673400, - 541544510, - 673300, - 541522910, - 673200, - 541501310, - 673100, - 541479710, - 673000, - 541458110, - 672900, - 541436510, - 672800, - 541414910, - 672700, - 541393310, - 672600, - 541371710, - 672500, - 541350110, - 672400, - 541328510, - 672300, - 541306910, - 672200, - 541285310, - 672100, - 541263710, - 672000, - 541242110, - 671900, - 541220510, - 671800, - 541198910, - 671700, - 541177310, - 671600, - 541155710, - 671500, - 541134110, - 671400, - 541112510, - 671300, - 541090910, - 671200, - 541069310, - 671100, - 541047710, - 671000, - 541026110, - 670900, - 541004510, - 670800, - 540982910, - 670700, - 540961310, - 670600, - 540939710, - 670500, - 540918110, - 670400, - 540896510, - 670300, - 540874910, - 670200, - 540853310, - 670100, - 540831710, - 670000, - 540810110, - 669900, - 540788510, - 669800, - 540766910, - 669700, - 540745310, - 669600, - 540723710, - 669500, - 540702110, - 669400, - 540680510, - 669300, - 540658910, - 669200, - 540637310, - 669100, - 540615710, - 669000, - 540594110, - 668900, - 540572510, - 668800, - 540550910, - 668700, - 540529310, - 668600, - 540507710, - 668500, - 540486110, - 668400, - 540464510, - 668300, - 540442910, - 668200, - 540421310, - 668100, - 540399710, - 668000, - 540378110, - 667900, - 540356510, - 667800, - 540334910, - 667700, - 540313310, - 667600, - 540291710, - 667500, - 540270110, - 667400, - 540248510, - 667300, - 540226910, - 667200, - 540205310, - 667100, - 540183710, - 667000, - 540162110, - 666900, - 540140510, - 666800, - 540118910, - 666700, - 540097310, - 666600, - 540075710, - 666500, - 540054110, - 666400, - 540032510, - 666300, - 540010910, - 666200, - 539989310, - 666100, - 539967710, - 666000, - 539946110, - 665900, - 539924510, - 665800, - 539902910, - 665700, - 539881310, - 665600, - 539859710, - 665500, - 539838110, - 665400, - 539816510, - 665300, - 539794910, - 665200, - 539773310, - 665100, - 539751710, - 665000, - 539730110, - 664900, - 539708510, - 664800, - 539686910, - 664700, - 539665310, - 664600, - 539643710, - 664500, - 539622110, - 664400, - 539600510, - 664300, - 539578910, - 664200, - 539557310, - 664100, - 539535710, - 664000, - 539514110, - 663900, - 539492510, - 663800, - 539470910, - 663700, - 539449310, - 663600, - 539427710, - 663500, - 539406110, - 663400, - 539384510, - 663300, - 539362910, - 663200, - 539341310, - 663100, - 539319710, - 663000, - 539298110, - 662900, - 539276510, - 662800, - 539254910, - 662700, - 539233310, - 662600, - 539211710, - 662500, - 539190110, - 662400, - 539168510, - 662300, - 539146910, - 662200, - 539125310, - 662100, - 539103710, - 662000, - 539082110, - 661900, - 539060510, - 661800, - 539038910, - 661700, - 539017310, - 661600, - 538995710, - 661500, - 538974110, - 661400, - 538952510, - 661300, - 538930910, - 661200, - 538909310, - 661100, - 538887710, - 661000, - 538866110, - 660900, - 538844510, - 660800, - 538822910, - 660700, - 538801310, - 660600, - 538779710, - 660500, - 538758110, - 660400, - 538736510, - 660300, - 538714910, - 660200, - 538693310, - 660100, - 538671710, - 660000, - 538650110, - 659900, - 538628510, - 659800, - 538606910, - 659700, - 538585310, - 659600, - 538563710, - 659500, - 538542110, - 659400, - 538520510, - 659300, - 538498910, - 659200, - 538477310, - 659100, - 538455710, - 659000, - 538434110, - 658900, - 538412510, - 658800, - 538390910, - 658700, - 538369310, - 658600, - 538347710, - 658500, - 538326110, - 658400, - 538304510, - 658300, - 538282910, - 658200, - 538261310, - 658100, - 538239710, - 658000, - 538218110, - 657900, - 538196510, - 657800, - 538174910, - 657700, - 538153310, - 657600, - 538131710, - 657500, - 538110110, - 657400, - 538088510, - 657300, - 538066910, - 657200, - 538045310, - 657100, - 538023710, - 657000, - 538002110, - 656900, - 537980510, - 656800, - 537958910, - 656700, - 537937310, - 656600, - 537915710, - 656500, - 537894110, - 656400, - 537872510, - 656300, - 537850910, - 656200, - 537829310, - 656100, - 537807710, - 656000, - 537786110, - 655900, - 537764510, - 655800, - 537742910, - 655700, - 537721310, - 655600, - 537699710, - 655500, - 537678110, - 655400, - 537656510, - 655300, - 537634910, - 655200, - 537613310, - 655100, - 537591710, - 655000, - 537570110, - 654900, - 537548510, - 654800, - 537526910, - 654700, - 537505310, - 654600, - 537483710, - 654500, - 537462110, - 654400, - 537440510, - 654300, - 537418910, - 654200, - 537397310, - 654100, - 537375710, - 654000, - 537354110, - 653900, - 537332510, - 653800, - 537310910, - 653700, - 537289310, - 653600, - 537267710, - 653500, - 537246110, - 653400, - 537224510, - 653300, - 537202910, - 653200, - 537181310, - 653100, - 537159710, - 653000, - 537138110, - 652900, - 537116510, - 652800, - 537094910, - 652700, - 537073310, - 652600, - 537051710, - 652500, - 537030110, - 652400, - 537008510, - 652300, - 536986910, - 652200, - 536965310, - 652100, - 536943710, - 652000, - 536922110, - 651900, - 536900510, - 651800, - 536878910, - 651700, - 536857310, - 651600, - 536835710, - 651500, - 536814110, - 651400, - 536792510, - 651300, - 536770910, - 651200, - 536749310, - 651100, - 536727710, - 651000, - 536706110, - 650900, - 536684510, - 650800, - 536662910, - 650700, - 536641310, - 650600, - 536619710, - 650500, - 536598110, - 650400, - 536576510, - 650300, - 536554910, - 650200, - 536533310, - 650100, - 536511710, - 650000, - 536490110, - 649900, - 536468510, - 649800, - 536446910, - 649700, - 536425310, - 649600, - 536403710, - 649500, - 536382110, - 649400, - 536360510, - 649300, - 536338910, - 649200, - 536317310, - 649100, - 536295710, - 649000, - 536274110, - 648900, - 536252510, - 648800, - 536230910, - 648700, - 536209310, - 648600, - 536187710, - 648500, - 536166110, - 648400, - 536144510, - 648300, - 536122910, - 648200, - 536101310, - 648100, - 536079710, - 648000, - 536058110, - 647900, - 536036510, - 647800, - 536014910, - 647700, - 535993310, - 647600, - 535971710, - 647500, - 535950110, - 647400, - 535928510, - 647300, - 535906910, - 647200, - 535885310, - 647100, - 535863710, - 647000, - 535842110, - 646900, - 535820510, - 646800, - 535798910, - 646700, - 535777310, - 646600, - 535755710, - 646500, - 535734110, - 646400, - 535712510, - 646300, - 535690910, - 646200, - 535669310, - 646100, - 535647710, - 646000, - 535626110, - 645900, - 535604510, - 645800, - 535582910, - 645700, - 535561310, - 645600, - 535539710, - 645500, - 535518110, - 645400, - 535496510, - 645300, - 535474910, - 645200, - 535453310, - 645100, - 535431710, - 645000, - 535410110, - 644900, - 535388510, - 644800, - 535366910, - 644700, - 535345310, - 644600, - 535323710, - 644500, - 535302110, - 644400, - 535280510, - 644300, - 535258910, - 644200, - 535237310, - 644100, - 535215710, - 644000, - 535194110, - 643900, - 535172510, - 643800, - 535150910, - 643700, - 535129310, - 643600, - 535107710, - 643500, - 535086110, - 643400, - 535064510, - 643300, - 535042910, - 643200, - 535021310, - 643100, - 534999710, - 643000, - 534978110, - 642900, - 534956510, - 642800, - 534934910, - 642700, - 534913310, - 642600, - 534891710, - 642500, - 534870110, - 642400, - 534848510, - 642300, - 534826910, - 642200, - 534805310, - 642100, - 534783710, - 642000, - 534762110, - 641900, - 534740510, - 641800, - 534718910, - 641700, - 534697310, - 641600, - 534675710, - 641500, - 534654110, - 641400, - 534632510, - 641300, - 534610910, - 641200, - 534589310, - 641100, - 534567710, - 641000, - 534546110, - 640900, - 534524510, - 640800, - 534502910, - 640700, - 534481310, - 640600, - 534459710, - 640500, - 534438110, - 640400, - 534416510, - 640300, - 534394910, - 640200, - 534373310, - 640100, - 534351710, - 640000, - 534330110, - 639900, - 534308510, - 639800, - 534286910, - 639700, - 534265310, - 639600, - 534243710, - 639500, - 534222110, - 639400, - 534200510, - 639300, - 534178910, - 639200, - 534157310, - 639100, - 534135710, - 639000, - 534114110, - 638900, - 534092510, - 638800, - 534070910, - 638700, - 534049310, - 638600, - 534027710, - 638500, - 534006110, - 638400, - 533984510, - 638300, - 533962910, - 638200, - 533941310, - 638100, - 533919710, - 638000, - 533898110, - 637900, - 533876510, - 637800, - 533854910, - 637700, - 533833310, - 637600, - 533811710, - 637500, - 533790110, - 637400, - 533768510, - 637300, - 533746910, - 637200, - 533725310, - 637100, - 533703710, - 637000, - 533682110, - 636900, - 533660510, - 636800, - 533638910, - 636700, - 533617310, - 636600, - 533595710, - 636500, - 533574110, - 636400, - 533552510, - 636300, - 533530910, - 636200, - 533509310, - 636100, - 533487710, - 636000, - 533466110, - 635900, - 533444510, - 635800, - 533422910, - 635700, - 533401310, - 635600, - 533379710, - 635500, - 533358110, - 635400, - 533336510, - 635300, - 533314910, - 635200, - 533293310, - 635100, - 533271710, - 635000, - 533250110, - 634900, - 533228510, - 634800, - 533206910, - 634700, - 533185310, - 634600, - 533163710, - 634500, - 533142110, - 634400, - 533120510, - 634300, - 533098910, - 634200, - 533077310, - 634100, - 533055710, - 634000, - 533034110, - 633900, - 533012510, - 633800, - 532990910, - 633700, - 532969310, - 633600, - 532947710, - 633500, - 532926110, - 633400, - 532904510, - 633300, - 532882910, - 633200, - 532861310, - 633100, - 532839710, - 633000, - 532818110, - 632900, - 532796510, - 632800, - 532774910, - 632700, - 532753310, - 632600, - 532731710, - 632500, - 532710110, - 632400, - 532688510, - 632300, - 532666910, - 632200, - 532645310, - 632100, - 532623710, - 632000, - 532602110, - 631900, - 532580510, - 631800, - 532558910, - 631700, - 532537310, - 631600, - 532515710, - 631500, - 532494110, - 631400, - 532472510, - 631300, - 532450910, - 631200, - 532429310, - 631100, - 532407710, - 631000, - 532386110, - 630900, - 532364510, - 630800, - 532342910, - 630700, - 532321310, - 630600, - 532299710, - 630500, - 532278110, - 630400, - 532256510, - 630300, - 532234910, - 630200, - 532213310, - 630100, - 532191710, - 630000, - 532170110, - 629900, - 532148510, - 629800, - 532126910, - 629700, - 532105310, - 629600, - 532083710, - 629500, - 532062110, - 629400, - 532040510, - 629300, - 532018910, - 629200, - 531997310, - 629100, - 531975710, - 629000, - 531954110, - 628900, - 531932510, - 628800, - 531910910, - 628700, - 531889310, - 628600, - 531867710, - 628500, - 531846110, - 628400, - 531824510, - 628300, - 531802910, - 628200, - 531781310, - 628100, - 531759710, - 628000, - 531738110, - 627900, - 531716510, - 627800, - 531694910, - 627700, - 531673310, - 627600, - 531651710, - 627500, - 531630110, - 627400, - 531608510, - 627300, - 531586910, - 627200, - 531565310, - 627100, - 531543710, - 627000, - 531522110, - 626900, - 531500510, - 626800, - 531478910, - 626700, - 531457310, - 626600, - 531435710, - 626500, - 531414110, - 626400, - 531392510, - 626300, - 531370910, - 626200, - 531349310, - 626100, - 531327710, - 626000, - 531306110, - 625900, - 531284510, - 625800, - 531262910, - 625700, - 531241310, - 625600, - 531219710, - 625500, - 531198110, - 625400, - 531176510, - 625300, - 531154910, - 625200, - 531133310, - 625100, - 531111710, - 625000, - 531090110, - 624900, - 531068510, - 624800, - 531046910, - 624700, - 531025310, - 624600, - 531003710, - 624500, - 530982110, - 624400, - 530960510, - 624300, - 530938910, - 624200, - 530917310, - 624100, - 530895710, - 624000, - 530874110, - 623900, - 530852510, - 623800, - 530830910, - 623700, - 530809310, - 623600, - 530787710, - 623500, - 530766110, - 623400, - 530744510, - 623300, - 530722910, - 623200, - 530701310, - 623100, - 530679710, - 623000, - 530658110, - 622900, - 530636510, - 622800, - 530614910, - 622700, - 530593310, - 622600, - 530571710, - 622500, - 530550110, - 622400, - 530528510, - 622300, - 530506910, - 622200, - 530485310, - 622100, - 530463710, - 622000, - 530442110, - 621900, - 530420510, - 621800, - 530398910, - 621700, - 530377310, - 621600, - 530355710, - 621500, - 530334110, - 621400, - 530312510, - 621300, - 530290910, - 621200, - 530269310, - 621100, - 530247710, - 621000, - 530226110, - 620900, - 530204510, - 620800, - 530182910, - 620700, - 530161310, - 620600, - 530139710, - 620500, - 530118110, - 620400, - 530096510, - 620300, - 530074910, - 620200, - 530053310, - 620100, - 530031710, - 620000, - 530010110, - 619900, - 529988510, - 619800, - 529966910, - 619700, - 529945310, - 619600, - 529923710, - 619500, - 529902110, - 619400, - 529880510, - 619300, - 529858910, - 619200, - 529837310, - 619100, - 529815710, - 619000, - 529794110, - 618900, - 529772510, - 618800, - 529750910, - 618700, - 529729310, - 618600, - 529707710, - 618500, - 529686110, - 618400, - 529664510, - 618300, - 529642910, - 618200, - 529621310, - 618100, - 529599710, - 618000, - 529578110, - 617900, - 529556510, - 617800, - 529534910, - 617700, - 529513310, - 617600, - 529491710, - 617500, - 529470110, - 617400, - 529448510, - 617300, - 529426910, - 617200, - 529405310, - 617100, - 529383710, - 617000, - 529362110, - 616900, - 529340510, - 616800, - 529318910, - 616700, - 529297310, - 616600, - 529275710, - 616500, - 529254110, - 616400, - 529232510, - 616300, - 529210910, - 616200, - 529189310, - 616100, - 529167710, - 616000, - 529146110, - 615900, - 529124510, - 615800, - 529102910, - 615700, - 529081310, - 615600, - 529059710, - 615500, - 529038110, - 615400, - 529016510, - 615300, - 528994910, - 615200, - 528973310, - 615100, - 528951710, - 615000, - 528930110, - 614900, - 528908510, - 614800, - 528886910, - 614700, - 528865310, - 614600, - 528843710, - 614500, - 528822110, - 614400, - 528800510, - 614300, - 528778910, - 614200, - 528757310, - 614100, - 528735710, - 614000, - 528714110, - 613900, - 528692510, - 613800, - 528670910, - 613700, - 528649310, - 613600, - 528627710, - 613500, - 528606110, - 613400, - 528584510, - 613300, - 528562910, - 613200, - 528541310, - 613100, - 528519710, - 613000, - 528498110, - 612900, - 528476510, - 612800, - 528454910, - 612700, - 528433310, - 612600, - 528411710, - 612500, - 528390110, - 612400, - 528368510, - 612300, - 528346910, - 612200, - 528325310, - 612100, - 528303710, - 612000, - 528282110, - 611900, - 528260510, - 611800, - 528238910, - 611700, - 528217310, - 611600, - 528195710, - 611500, - 528174110, - 611400, - 528152510, - 611300, - 528130910, - 611200, - 528109310, - 611100, - 528087710, - 611000, - 528066110, - 610900, - 528044510, - 610800, - 528022910, - 610700, - 528001310, - 610600, - 527979710, - 610500, - 527958110, - 610400, - 527936510, - 610300, - 527914910, - 610200, - 527893310, - 610100, - 527871710, - 610000, - 527850110, - 609900, - 527828510, - 609800, - 527806910, - 609700, - 527785310, - 609600, - 527763710, - 609500, - 527742110, - 609400, - 527720510, - 609300, - 527698910, - 609200, - 527677310, - 609100, - 527655710, - 609000, - 527634110, - 608900, - 527612510, - 608800, - 527590910, - 608700, - 527569310, - 608600, - 527547710, - 608500, - 527526110, - 608400, - 527504510, - 608300, - 527482910, - 608200, - 527461310, - 608100, - 527439710, - 608000, - 527418110, - 607900, - 527396510, - 607800, - 527374910, - 607700, - 527353310, - 607600, - 527331710, - 607500, - 527310110, - 607400, - 527288510, - 607300, - 527266910, - 607200, - 527245310, - 607100, - 527223710, - 607000, - 527202110, - 606900, - 527180510, - 606800, - 527158910, - 606700, - 527137310, - 606600, - 527115710, - 606500, - 527094110, - 606400, - 527072510, - 606300, - 527050910, - 606200, - 527029310, - 606100, - 527007710, - 606000, - 526986110, - 605900, - 526964510, - 605800, - 526942910, - 605700, - 526921310, - 605600, - 526899710, - 605500, - 526878110, - 605400, - 526856510, - 605300, - 526834910, - 605200, - 526813310, - 605100, - 526791710, - 605000, - 526770110, - 604900, - 526748510, - 604800, - 526726910, - 604700, - 526705310, - 604600, - 526683710, - 604500, - 526662110, - 604400, - 526640510, - 604300, - 526618910, - 604200, - 526597310, - 604100, - 526575710, - 604000, - 526554110, - 603900, - 526532510, - 603800, - 526510910, - 603700, - 526489310, - 603600, - 526467710, - 603500, - 526446110, - 603400, - 526424510, - 603300, - 526402910, - 603200, - 526381310, - 603100, - 526359710, - 603000, - 526338110, - 602900, - 526316510, - 602800, - 526294910, - 602700, - 526273310, - 602600, - 526251710, - 602500, - 526230110, - 602400, - 526208510, - 602300, - 526186910, - 602200, - 526165310, - 602100, - 526143710, - 602000, - 526122110, - 601900, - 526100510, - 601800, - 526078910, - 601700, - 526057310, - 601600, - 526035710, - 601500, - 526014110, - 601400, - 525992510, - 601300, - 525970910, - 601200, - 525949310, - 601100, - 525927710, - 601000, - 525906110, - 600900, - 525884510, - 600800, - 525862910, - 600700, - 525841310, - 600600, - 525819710, - 600500, - 525798110, - 600400, - 525776510, - 600300, - 525754910, - 600200, - 525733310, - 600100, - 525711710, - 600000, - 525690110, - 599900, - 525668510, - 599800, - 525646910, - 599700, - 525625310, - 599600, - 525603710, - 599500, - 525582110, - 599400, - 525560510, - 599300, - 525538910, - 599200, - 525517310, - 599100, - 525495710, - 599000, - 525474110, - 598900, - 525452510, - 598800, - 525430910, - 598700, - 525409310, - 598600, - 525387710, - 598500, - 525366110, - 598400, - 525344510, - 598300, - 525322910, - 598200, - 525301310, - 598100, - 525279710, - 598000, - 525258110, - 597900, - 525236510, - 597800, - 525214910, - 597700, - 525193310, - 597600, - 525171710, - 597500, - 525150110, - 597400, - 525128510, - 597300, - 525106910, - 597200, - 525085310, - 597100, - 525063710, - 597000, - 525042110, - 596900, - 525020510, - 596800, - 524998910, - 596700, - 524977310, - 596600, - 524955710, - 596500, - 524934110, - 596400, - 524912510, - 596300, - 524890910, - 596200, - 524869310, - 596100, - 524847710, - 596000, - 524826110, - 595900, - 524804510, - 595800, - 524782910, - 595700, - 524761310, - 595600, - 524739710, - 595500, - 524718110, - 595400, - 524696510, - 595300, - 524674910, - 595200, - 524653310, - 595100, - 524631710, - 595000, - 524610110, - 594900, - 524588510, - 594800, - 524566910, - 594700, - 524545310, - 594600, - 524523710, - 594500, - 524502110, - 594400, - 524480510, - 594300, - 524458910, - 594200, - 524437310, - 594100, - 524415710, - 594000, - 524394110, - 593900, - 524372510, - 593800, - 524350910, - 593700, - 524329310, - 593600, - 524307710, - 593500, - 524286110, - 593400, - 524264510, - 593300, - 524242910, - 593200, - 524221310, - 593100, - 524199710, - 593000, - 524178110, - 592900, - 524156510, - 592800, - 524134910, - 592700, - 524113310, - 592600, - 524091710, - 592500, - 524070110, - 592400, - 524048510, - 592300, - 524026910, - 592200, - 524005310, - 592100, - 523983710, - 592000, - 523962110, - 591900, - 523940510, - 591800, - 523918910, - 591700, - 523897310, - 591600, - 523875710, - 591500, - 523854110, - 591400, - 523832510, - 591300, - 523810910, - 591200, - 523789310, - 591100, - 523767710, - 591000, - 523746110, - 590900, - 523724510, - 590800, - 523702910, - 590700, - 523681310, - 590600, - 523659710, - 590500, - 523638110, - 590400, - 523616510, - 590300, - 523594910, - 590200, - 523573310, - 590100, - 523551710, - 590000, - 523530110, - 589900, - 523508510, - 589800, - 523486910, - 589700, - 523465310, - 589600, - 523443710, - 589500, - 523422110, - 589400, - 523400510, - 589300, - 523378910, - 589200, - 523357310, - 589100, - 523335710, - 589000, - 523314110, - 588900, - 523292510, - 588800, - 523270910, - 588700, - 523249310, - 588600, - 523227710, - 588500, - 523206110, - 588400, - 523184510, - 588300, - 523162910, - 588200, - 523141310, - 588100, - 523119710, - 588000, - 523098110, - 587900, - 523076510, - 587800, - 523054910, - 587700, - 523033310, - 587600, - 523011710, - 587500, - 522990110, - 587400, - 522968510, - 587300, - 522946910, - 587200, - 522925310, - 587100, - 522903710, - 587000, - 522882110, - 586900, - 522860510, - 586800, - 522838910, - 586700, - 522817310, - 586600, - 522795710, - 586500, - 522774110, - 586400, - 522752510, - 586300, - 522730910, - 586200, - 522709310, - 586100, - 522687710, - 586000, - 522666110, - 585900, - 522644510, - 585800, - 522622910, - 585700, - 522601310, - 585600, - 522579710, - 585500, - 522558110, - 585400, - 522536510, - 585300, - 522514910, - 585200, - 522493310, - 585100, - 522471710, - 585000, - 522450110, - 584900, - 522428510, - 584800, - 522406910, - 584700, - 522385310, - 584600, - 522363710, - 584500, - 522342110, - 584400, - 522320510, - 584300, - 522298910, - 584200, - 522277310, - 584100, - 522255710, - 584000, - 522234110, - 583900, - 522212510, - 583800, - 522190910, - 583700, - 522169310, - 583600, - 522147710, - 583500, - 522126110, - 583400, - 522104510, - 583300, - 522082910, - 583200, - 522061310, - 583100, - 522039710, - 583000, - 522018110, - 582900, - 521996510, - 582800, - 521974910, - 582700, - 521953310, - 582600, - 521931710, - 582500, - 521910110, - 582400, - 521888510, - 582300, - 521866910, - 582200, - 521845310, - 582100, - 521823710, - 582000, - 521802110, - 581900, - 521780510, - 581800, - 521758910, - 581700, - 521737310, - 581600, - 521715710, - 581500, - 521694110, - 581400, - 521672510, - 581300, - 521650910, - 581200, - 521629310, - 581100, - 521607710, - 581000, - 521586110, - 580900, - 521564510, - 580800, - 521542910, - 580700, - 521521310, - 580600, - 521499710, - 580500, - 521478110, - 580400, - 521456510, - 580300, - 521434910, - 580200, - 521413310, - 580100, - 521391710, - 580000, - 521370110, - 579900, - 521348510, - 579800, - 521326910, - 579700, - 521305310, - 579600, - 521283710, - 579500, - 521262110, - 579400, - 521240510, - 579300, - 521218910, - 579200, - 521197310, - 579100, - 521175710, - 579000, - 521154110, - 578900, - 521132510, - 578800, - 521110910, - 578700, - 521089310, - 578600, - 521067710, - 578500, - 521046110, - 578400, - 521024510, - 578300, - 521002910, - 578200, - 520981310, - 578100, - 520959710, - 578000, - 520938110, - 577900, - 520916510, - 577800, - 520894910, - 577700, - 520873310, - 577600, - 520851710, - 577500, - 520830110, - 577400, - 520808510, - 577300, - 520786910, - 577200, - 520765310, - 577100, - 520743710, - 577000, - 520722110, - 576900, - 520700510, - 576800, - 520678910, - 576700, - 520657310, - 576600, - 520635710, - 576500, - 520614110, - 576400, - 520592510, - 576300, - 520570910, - 576200, - 520549310, - 576100, - 520527710, - 576000, - 520506110, - 575900, - 520484510, - 575800, - 520462910, - 575700, - 520441310, - 575600, - 520419710, - 575500, - 520398110, - 575400, - 520376510, - 575300, - 520354910, - 575200, - 520333310, - 575100, - 520311710, - 575000, - 520290110, - 574900, - 520268510, - 574800, - 520246910, - 574700, - 520225310, - 574600, - 520203710, - 574500, - 520182110, - 574400, - 520160510, - 574300, - 520138910, - 574200, - 520117310, - 574100, - 520095710, - 574000, - 520074110, - 573900, - 520052510, - 573800, - 520030910, - 573700, - 520009310, - 573600, - 519987710, - 573500, - 519966110, - 573400, - 519944510, - 573300, - 519922910, - 573200, - 519901310, - 573100, - 519879710, - 573000, - 519858110, - 572900, - 519836510, - 572800, - 519814910, - 572700, - 519793310, - 572600, - 519771710, - 572500, - 519750110, - 572400, - 519728510, - 572300, - 519706910, - 572200, - 519685310, - 572100, - 519663710, - 572000, - 519642110, - 571900, - 519620510, - 571800, - 519598910, - 571700, - 519577310, - 571600, - 519555710, - 571500, - 519534110, - 571400, - 519512510, - 571300, - 519490910, - 571200, - 519469310, - 571100, - 519447710, - 571000, - 519426110, - 570900, - 519404510, - 570800, - 519382910, - 570700, - 519361310, - 570600, - 519339710, - 570500, - 519318110, - 570400, - 519296510, - 570300, - 519274910, - 570200, - 519253310, - 570100, - 519231710, - 570000, - 519210110, - 569900, - 519188510, - 569800, - 519166910, - 569700, - 519145310, - 569600, - 519123710, - 569500, - 519102110, - 569400, - 519080510, - 569300, - 519058910, - 569200, - 519037310, - 569100, - 519015710, - 569000, - 518994110, - 568900, - 518972510, - 568800, - 518950910, - 568700, - 518929310, - 568600, - 518907710, - 568500, - 518886110, - 568400, - 518864510, - 568300, - 518842910, - 568200, - 518821310, - 568100, - 518799710, - 568000, - 518778110, - 567900, - 518756510, - 567800, - 518734910, - 567700, - 518713310, - 567600, - 518691710, - 567500, - 518670110, - 567400, - 518648510, - 567300, - 518626910, - 567200, - 518605310, - 567100, - 518583710, - 567000, - 518562110, - 566900, - 518540510, - 566800, - 518518910, - 566700, - 518497310, - 566600, - 518475710, - 566500, - 518454110, - 566400, - 518432510, - 566300, - 518410910, - 566200, - 518389310, - 566100, - 518367710, - 566000, - 518346110, - 565900, - 518324510, - 565800, - 518302910, - 565700, - 518281310, - 565600, - 518259710, - 565500, - 518238110, - 565400, - 518216510, - 565300, - 518194910, - 565200, - 518173310, - 565100, - 518151710, - 565000, - 518130110, - 564900, - 518108510, - 564800, - 518086910, - 564700, - 518065310, - 564600, - 518043710, - 564500, - 518022110, - 564400, - 518000510, - 564300, - 517978910, - 564200, - 517957310, - 564100, - 517935710, - 564000, - 517914110, - 563900, - 517892510, - 563800, - 517870910, - 563700, - 517849310, - 563600, - 517827710, - 563500, - 517806110, - 563400, - 517784510, - 563300, - 517762910, - 563200, - 517741310, - 563100, - 517719710, - 563000, - 517698110, - 562900, - 517676510, - 562800, - 517654910, - 562700, - 517633310, - 562600, - 517611710, - 562500, - 517590110, - 562400, - 517568510, - 562300, - 517546910, - 562200, - 517525310, - 562100, - 517503710, - 562000, - 517482110, - 561900, - 517460510, - 561800, - 517438910, - 561700, - 517417310, - 561600, - 517395710, - 561500, - 517374110, - 561400, - 517352510, - 561300, - 517330910, - 561200, - 517309310, - 561100, - 517287710, - 561000, - 517266110, - 560900, - 517244510, - 560800, - 517222910, - 560700, - 517201310, - 560600, - 517179710, - 560500, - 517158110, - 560400, - 517136510, - 560300, - 517114910, - 560200, - 517093310, - 560100, - 517071710, - 560000, - 517050110, - 559900, - 517028510, - 559800, - 517006910, - 559700, - 516985310, - 559600, - 516963710, - 559500, - 516942110, - 559400, - 516920510, - 559300, - 516898910, - 559200, - 516877310, - 559100, - 516855710, - 559000, - 516834110, - 558900, - 516812510, - 558800, - 516790910, - 558700, - 516769310, - 558600, - 516747710, - 558500, - 516726110, - 558400, - 516704510, - 558300, - 516682910, - 558200, - 516661310, - 558100, - 516639710, - 558000, - 516618110, - 557900, - 516596510, - 557800, - 516574910, - 557700, - 516553310, - 557600, - 516531710, - 557500, - 516510110, - 557400, - 516488510, - 557300, - 516466910, - 557200, - 516445310, - 557100, - 516423710, - 557000, - 516402110, - 556900, - 516380510, - 556800, - 516358910, - 556700, - 516337310, - 556600, - 516315710, - 556500, - 516294110, - 556400, - 516272510, - 556300, - 516250910, - 556200, - 516229310, - 556100, - 516207710, - 556000, - 516186110, - 555900, - 516164510, - 555800, - 516142910, - 555700, - 516121310, - 555600, - 516099710, - 555500, - 516078110, - 555400, - 516056510, - 555300, - 516034910, - 555200, - 516013310, - 555100, - 515991710, - 555000, - 515970110, - 554900, - 515948510, - 554800, - 515926910, - 554700, - 515905310, - 554600, - 515883710, - 554500, - 515862110, - 554400, - 515840510, - 554300, - 515818910, - 554200, - 515797310, - 554100, - 515775710, - 554000, - 515754110, - 553900, - 515732510, - 553800, - 515710910, - 553700, - 515689310, - 553600, - 515667710, - 553500, - 515646110, - 553400, - 515624510, - 553300, - 515602910, - 553200, - 515581310, - 553100, - 515559710, - 553000, - 515538110, - 552900, - 515516510, - 552800, - 515494910, - 552700, - 515473310, - 552600, - 515451710, - 552500, - 515430110, - 552400, - 515408510, - 552300, - 515386910, - 552200, - 515365310, - 552100, - 515343710, - 552000, - 515322110, - 551900, - 515300510, - 551800, - 515278910, - 551700, - 515257310, - 551600, - 515235710, - 551500, - 515214110, - 551400, - 515192510, - 551300, - 515170910, - 551200, - 515149310, - 551100, - 515127710, - 551000, - 515106110, - 550900, - 515084510, - 550800, - 515062910, - 550700, - 515041310, - 550600, - 515019710, - 550500, - 514998110, - 550400, - 514976510, - 550300, - 514954910, - 550200, - 514933310, - 550100, - 514911710, - 550000, - 514890110, - 549900, - 514868510, - 549800, - 514846910, - 549700, - 514825310, - 549600, - 514803710, - 549500, - 514782110, - 549400, - 514760510, - 549300, - 514738910, - 549200, - 514717310, - 549100, - 514695710, - 549000, - 514674110, - 548900, - 514652510, - 548800, - 514630910, - 548700, - 514609310, - 548600, - 514587710, - 548500, - 514566110, - 548400, - 514544510, - 548300, - 514522910, - 548200, - 514501310, - 548100, - 514479710, - 548000, - 514458110, - 547900, - 514436510, - 547800, - 514414910, - 547700, - 514393310, - 547600, - 514371710, - 547500, - 514350110, - 547400, - 514328510, - 547300, - 514306910, - 547200, - 514285310, - 547100, - 514263710, - 547000, - 514242110, - 546900, - 514220510, - 546800, - 514198910, - 546700, - 514177310, - 546600, - 514155710, - 546500, - 514134110, - 546400, - 514112510, - 546300, - 514090910, - 546200, - 514069310, - 546100, - 514047710, - 546000, - 514026110, - 545900, - 514004510, - 545800, - 513982910, - 545700, - 513961310, - 545600, - 513939710, - 545500, - 513918110, - 545400, - 513896510, - 545300, - 513874910, - 545200, - 513853310, - 545100, - 513831710, - 545000, - 513810110, - 544900, - 513788510, - 544800, - 513766910, - 544700, - 513745310, - 544600, - 513723710, - 544500, - 513702110, - 544400, - 513680510, - 544300, - 513658910, - 544200, - 513637310, - 544100, - 513615710, - 544000, - 513594110, - 543900, - 513572510, - 543800, - 513550910, - 543700, - 513529310, - 543600, - 513507710, - 543500, - 513486110, - 543400, - 513464510, - 543300, - 513442910, - 543200, - 513421310, - 543100, - 513399710, - 543000, - 513378110, - 542900, - 513356510, - 542800, - 513334910, - 542700, - 513313310, - 542600, - 513291710, - 542500, - 513270110, - 542400, - 513248510, - 542300, - 513226910, - 542200, - 513205310, - 542100, - 513183710, - 542000, - 513162110, - 541900, - 513140510, - 541800, - 513118910, - 541700, - 513097310, - 541600, - 513075710, - 541500, - 513054110, - 541400, - 513032510, - 541300, - 513010910, - 541200, - 512989310, - 541100, - 512967710, - 541000, - 512946110, - 540900, - 512924510, - 540800, - 512902910, - 540700, - 512881310, - 540600, - 512859710, - 540500, - 512838110, - 540400, - 512816510, - 540300, - 512794910, - 540200, - 512773310, - 540100, - 512751710, - 540000, - 512730110, - 539900, - 512708510, - 539800, - 512686910, - 539700, - 512665310, - 539600, - 512643710, - 539500, - 512622110, - 539400, - 512600510, - 539300, - 512578910, - 539200, - 512557310, - 539100, - 512535710, - 539000, - 512514110, - 538900, - 512492510, - 538800, - 512470910, - 538700, - 512449310, - 538600, - 512427710, - 538500, - 512406110, - 538400, - 512384510, - 538300, - 512362910, - 538200, - 512341310, - 538100, - 512319710, - 538000, - 512298110, - 537900, - 512276510, - 537800, - 512254910, - 537700, - 512233310, - 537600, - 512211710, - 537500, - 512190110, - 537400, - 512168510, - 537300, - 512146910, - 537200, - 512125310, - 537100, - 512103710, - 537000, - 512082110, - 536900, - 512060510, - 536800, - 512038910, - 536700, - 512017310, - 536600, - 511995710, - 536500, - 511974110, - 536400, - 511952510, - 536300, - 511930910, - 536200, - 511909310, - 536100, - 511887710, - 536000, - 511866110, - 535900, - 511844510, - 535800, - 511822910, - 535700, - 511801310, - 535600, - 511779710, - 535500, - 511758110, - 535400, - 511736510, - 535300, - 511714910, - 535200, - 511693310, - 535100, - 511671710, - 535000, - 511650110, - 534900, - 511628510, - 534800, - 511606910, - 534700, - 511585310, - 534600, - 511563710, - 534500, - 511542110, - 534400, - 511520510, - 534300, - 511498910, - 534200, - 511477310, - 534100, - 511455710, - 534000, - 511434110, - 533900, - 511412510, - 533800, - 511390910, - 533700, - 511369310, - 533600, - 511347710, - 533500, - 511326110, - 533400, - 511304510, - 533300, - 511282910, - 533200, - 511261310, - 533100, - 511239710, - 533000, - 511218110, - 532900, - 511196510, - 532800, - 511174910, - 532700, - 511153310, - 532600, - 511131710, - 532500, - 511110110, - 532400, - 511088510, - 532300, - 511066910, - 532200, - 511045310, - 532100, - 511023710, - 532000, - 511002110, - 531900, - 510980510, - 531800, - 510958910, - 531700, - 510937310, - 531600, - 510915710, - 531500, - 510894110, - 531400, - 510872510, - 531300, - 510850910, - 531200, - 510829310, - 531100, - 510807710, - 531000, - 510786110, - 530900, - 510764510, - 530800, - 510742910, - 530700, - 510721310, - 530600, - 510699710, - 530500, - 510678110, - 530400, - 510656510, - 530300, - 510634910, - 530200, - 510613310, - 530100, - 510591710, - 530000, - 510570110, - 529900, - 510548510, - 529800, - 510526910, - 529700, - 510505310, - 529600, - 510483710, - 529500, - 510462110, - 529400, - 510440510, - 529300, - 510418910, - 529200, - 510397310, - 529100, - 510375710, - 529000, - 510354110, - 528900, - 510332510, - 528800, - 510310910, - 528700, - 510289310, - 528600, - 510267710, - 528500, - 510246110, - 528400, - 510224510, - 528300, - 510202910, - 528200, - 510181310, - 528100, - 510159710, - 528000, - 510138110, - 527900, - 510116510, - 527800, - 510094910, - 527700, - 510073310, - 527600, - 510051710, - 527500, - 510030110, - 527400, - 510008510, - 527300, - 509986910, - 527200, - 509965310, - 527100, - 509943710, - 527000, - 509922110, - 526900, - 509900510, - 526800, - 509878910, - 526700, - 509857310, - 526600, - 509835710, - 526500, - 509814110, - 526400, - 509792510, - 526300, - 509770910, - 526200, - 509749310, - 526100, - 509727710, - 526000, - 509706110, - 525900, - 509684510, - 525800, - 509662910, - 525700, - 509641310, - 525600, - 509619710, - 525500, - 509598110, - 525400, - 509576510, - 525300, - 509554910, - 525200, - 509533310, - 525100, - 509511710, - 525000, - 509490110, - 524900, - 509468510, - 524800, - 509446910, - 524700, - 509425310, - 524600, - 509403710, - 524500, - 509382110, - 524400, - 509360510, - 524300, - 509338910, - 524200, - 509317310, - 524100, - 509295710, - 524000, - 509274110, - 523900, - 509252510, - 523800, - 509230910, - 523700, - 509209310, - 523600, - 509187710, - 523500, - 509166110, - 523400, - 509144510, - 523300, - 509122910, - 523200, - 509101310, - 523100, - 509079710, - 523000, - 509058110, - 522900, - 509036510, - 522800, - 509014910, - 522700, - 508993310, - 522600, - 508971710, - 522500, - 508950110, - 522400, - 508928510, - 522300, - 508906910, - 522200, - 508885310, - 522100, - 508863710, - 522000, - 508842110, - 521900, - 508820510, - 521800, - 508798910, - 521700, - 508777310, - 521600, - 508755710, - 521500, - 508734110, - 521400, - 508712510, - 521300, - 508690910, - 521200, - 508669310, - 521100, - 508647710, - 521000, - 508626110, - 520900, - 508604510, - 520800, - 508582910, - 520700, - 508561310, - 520600, - 508539710, - 520500, - 508518110, - 520400, - 508496510, - 520300, - 508474910, - 520200, - 508453310, - 520100, - 508431710, - 520000, - 508410110, - 519900, - 508388510, - 519800, - 508366910, - 519700, - 508345310, - 519600, - 508323710, - 519500, - 508302110, - 519400, - 508280510, - 519300, - 508258910, - 519200, - 508237310, - 519100, - 508215710, - 519000, - 508194110, - 518900, - 508172510, - 518800, - 508150910, - 518700, - 508129310, - 518600, - 508107710, - 518500, - 508086110, - 518400, - 508064510, - 518300, - 508042910, - 518200, - 508021310, - 518100, - 507999710, - 518000, - 507978110, - 517900, - 507956510, - 517800, - 507934910, - 517700, - 507913310, - 517600, - 507891710, - 517500, - 507870110, - 517400, - 507848510, - 517300, - 507826910, - 517200, - 507805310, - 517100, - 507783710, - 517000, - 507762110, - 516900, - 507740510, - 516800, - 507718910, - 516700, - 507697310, - 516600, - 507675710, - 516500, - 507654110, - 516400, - 507632510, - 516300, - 507610910, - 516200, - 507589310, - 516100, - 507567710, - 516000, - 507546110, - 515900, - 507524510, - 515800, - 507502910, - 515700, - 507481310, - 515600, - 507459710, - 515500, - 507438110, - 515400, - 507416510, - 515300, - 507394910, - 515200, - 507373310, - 515100, - 507351710, - 515000, - 507330110, - 514900, - 507308510, - 514800, - 507286910, - 514700, - 507265310, - 514600, - 507243710, - 514500, - 507222110, - 514400, - 507200510, - 514300, - 507178910, - 514200, - 507157310, - 514100, - 507135710, - 514000, - 507114110, - 513900, - 507092510, - 513800, - 507070910, - 513700, - 507049310, - 513600, - 507027710, - 513500, - 507006110, - 513400, - 506984510, - 513300, - 506962910, - 513200, - 506941310, - 513100, - 506919710, - 513000, - 506898110, - 512900, - 506876510, - 512800, - 506854910, - 512700, - 506833310, - 512600, - 506811710, - 512500, - 506790110, - 512400, - 506768510, - 512300, - 506746910, - 512200, - 506725310, - 512100, - 506703710, - 512000, - 506682110, - 511900, - 506660510, - 511800, - 506638910, - 511700, - 506617310, - 511600, - 506595710, - 511500, - 506574110, - 511400, - 506552510, - 511300, - 506530910, - 511200, - 506509310, - 511100, - 506487710, - 511000, - 506466110, - 510900, - 506444510, - 510800, - 506422910, - 510700, - 506401310, - 510600, - 506379710, - 510500, - 506358110, - 510400, - 506336510, - 510300, - 506314910, - 510200, - 506293310, - 510100, - 506271710, - 510000, - 506250110, - 509900, - 506228510, - 509800, - 506206910, - 509700, - 506185310, - 509600, - 506163710, - 509500, - 506142110, - 509400, - 506120510, - 509300, - 506098910, - 509200, - 506077310, - 509100, - 506055710, - 509000, - 506034110, - 508900, - 506012510, - 508800, - 505990910, - 508700, - 505969310, - 508600, - 505947710, - 508500, - 505926110, - 508400, - 505904510, - 508300, - 505882910, - 508200, - 505861310, - 508100, - 505839710, - 508000, - 505818110, - 507900, - 505796510, - 507800, - 505774910, - 507700, - 505753310, - 507600, - 505731710, - 507500, - 505710110, - 507400, - 505688510, - 507300, - 505666910, - 507200, - 505645310, - 507100, - 505623710, - 507000, - 505602110, - 506900, - 505580510, - 506800, - 505558910, - 506700, - 505537310, - 506600, - 505515710, - 506500, - 505494110, - 506400, - 505472510, - 506300, - 505450910, - 506200, - 505429310, - 506100, - 505407710, - 506000, - 505386110, - 505900, - 505364510, - 505800, - 505342910, - 505700, - 505321310, - 505600, - 505299710, - 505500, - 505278110, - 505400, - 505256510, - 505300, - 505234910, - 505200, - 505213310, - 505100, - 505191710, - 505000, - 505170110, - 504900, - 505148510, - 504800, - 505126910, - 504700, - 505105310, - 504600, - 505083710, - 504500, - 505062110, - 504400, - 505040510, - 504300, - 505018910, - 504200, - 504997310, - 504100, - 504975710, - 504000, - 504954110, - 503900, - 504932510, - 503800, - 504910910, - 503700, - 504889310, - 503600, - 504867710, - 503500, - 504846110, - 503400, - 504824510, - 503300, - 504802910, - 503200, - 504781310, - 503100, - 504759710, - 503000, - 504738110, - 502900, - 504716510, - 502800, - 504694910, - 502700, - 504673310, - 502600, - 504651710, - 502500, - 504630110, - 502400, - 504608510, - 502300, - 504586910, - 502200, - 504565310, - 502100, - 504543710, - 502000, - 504522110, - 501900, - 504500510, - 501800, - 504478910, - 501700, - 504457310, - 501600, - 504435710, - 501500, - 504414110, - 501400, - 504392510, - 501300, - 504370910, - 501200, - 504349310, - 501100, - 504327710, - 501000, - 504306110, - 500900, - 504284510, - 500800, - 504262910, - 500700, - 504241310, - 500600, - 504219710, - 500500, - 504198110, - 500400, - 504176510, - 500300, - 504154910, - 500200, - 504133310, - 500100, - 504111710, - 500000, - 504090110, - 499900, - 504068510, - 499800, - 504046910, - 499700, - 504025310, - 499600, - 504003710, - 499500, - 503982110, - 499400, - 503960510, - 499300, - 503938910, - 499200, - 503917310, - 499100, - 503895710, - 499000, - 503874110, - 498900, - 503852510, - 498800, - 503830910, - 498700, - 503809310, - 498600, - 503787710, - 498500, - 503766110, - 498400, - 503744510, - 498300, - 503722910, - 498200, - 503701310, - 498100, - 503679710, - 498000, - 503658110, - 497900, - 503636510, - 497800, - 503614910, - 497700, - 503593310, - 497600, - 503571710, - 497500, - 503550110, - 497400, - 503528510, - 497300, - 503506910, - 497200, - 503485310, - 497100, - 503463710, - 497000, - 503442110, - 496900, - 503420510, - 496800, - 503398910, - 496700, - 503377310, - 496600, - 503355710, - 496500, - 503334110, - 496400, - 503312510, - 496300, - 503290910, - 496200, - 503269310, - 496100, - 503247710, - 496000, - 503226110, - 495900, - 503204510, - 495800, - 503182910, - 495700, - 503161310, - 495600, - 503139710, - 495500, - 503118110, - 495400, - 503096510, - 495300, - 503074910, - 495200, - 503053310, - 495100, - 503031710, - 495000, - 503010110, - 494900, - 502988510, - 494800, - 502966910, - 494700, - 502945310, - 494600, - 502923710, - 494500, - 502902110, - 494400, - 502880510, - 494300, - 502858910, - 494200, - 502837310, - 494100, - 502815710, - 494000, - 502794110, - 493900, - 502772510, - 493800, - 502750910, - 493700, - 502729310, - 493600, - 502707710, - 493500, - 502686110, - 493400, - 502664510, - 493300, - 502642910, - 493200, - 502621310, - 493100, - 502599710, - 493000, - 502578110, - 492900, - 502556510, - 492800, - 502534910, - 492700, - 502513310, - 492600, - 502491710, - 492500, - 502470110, - 492400, - 502448510, - 492300, - 502426910, - 492200, - 502405310, - 492100, - 502383710, - 492000, - 502362110, - 491900, - 502340510, - 491800, - 502318910, - 491700, - 502297310, - 491600, - 502275710, - 491500, - 502254110, - 491400, - 502232510, - 491300, - 502210910, - 491200, - 502189310, - 491100, - 502167710, - 491000, - 502146110, - 490900, - 502124510, - 490800, - 502102910, - 490700, - 502081310, - 490600, - 502059710, - 490500, - 502038110, - 490400, - 502016510, - 490300, - 501994910, - 490200, - 501973310, - 490100, - 501951710, - 490000, - 501930110, - 489900, - 501908510, - 489800, - 501886910, - 489700, - 501865310, - 489600, - 501843710, - 489500, - 501822110, - 489400, - 501800510, - 489300, - 501778910, - 489200, - 501757310, - 489100, - 501735710, - 489000, - 501714110, - 488900, - 501692510, - 488800, - 501670910, - 488700, - 501649310, - 488600, - 501627710, - 488500, - 501606110, - 488400, - 501584510, - 488300, - 501562910, - 488200, - 501541310, - 488100, - 501519710, - 488000, - 501498110, - 487900, - 501476510, - 487800, - 501454910, - 487700, - 501433310, - 487600, - 501411710, - 487500, - 501390110, - 487400, - 501368510, - 487300, - 501346910, - 487200, - 501325310, - 487100, - 501303710, - 487000, - 501282110, - 486900, - 501260510, - 486800, - 501238910, - 486700, - 501217310, - 486600, - 501195710, - 486500, - 501174110, - 486400, - 501152510, - 486300, - 501130910, - 486200, - 501109310, - 486100, - 501087710, - 486000, - 501066110, - 485900, - 501044510, - 485800, - 501022910, - 485700, - 501001310, - 485600, - 500979710, - 485500, - 500958110, - 485400, - 500936510, - 485300, - 500914910, - 485200, - 500893310, - 485100, - 500871710, - 485000, - 500850110, - 484900, - 500828510, - 484800, - 500806910, - 484700, - 500785310, - 484600, - 500763710, - 484500, - 500742110, - 484400, - 500720510, - 484300, - 500698910, - 484200, - 500677310, - 484100, - 500655710, - 484000, - 500634110, - 483900, - 500612510, - 483800, - 500590910, - 483700, - 500569310, - 483600, - 500547710, - 483500, - 500526110, - 483400, - 500504510, - 483300, - 500482910, - 483200, - 500461310, - 483100, - 500439710, - 483000, - 500418110, - 482900, - 500396510, - 482800, - 500374910, - 482700, - 500353310, - 482600, - 500331710, - 482500, - 500310110, - 482400, - 500288510, - 482300, - 500266910, - 482200, - 500245310, - 482100, - 500223710, - 482000, - 500202110, - 481900, - 500180510, - 481800, - 500158910, - 481700, - 500137310, - 481600, - 500115710, - 481500, - 500094110, - 481400, - 500072510, - 481300, - 500050910, - 481200, - 500029310, - 481100, - 500007710, - 481000, - 499986110, - 480900, - 499964510, - 480800, - 499942910, - 480700, - 499921310, - 480600, - 499899710, - 480500, - 499878110, - 480400, - 499856510, - 480300, - 499834910, - 480200, - 499813310, - 480100, - 499791710, - 480000, - 499770110, - 479900, - 499748510, - 479800, - 499726910, - 479700, - 499705310, - 479600, - 499683710, - 479500, - 499662110, - 479400, - 499640510, - 479300, - 499618910, - 479200, - 499597310, - 479100, - 499575710, - 479000, - 499554110, - 478900, - 499532510, - 478800, - 499510910, - 478700, - 499489310, - 478600, - 499467710, - 478500, - 499446110, - 478400, - 499424510, - 478300, - 499402910, - 478200, - 499381310, - 478100, - 499359710, - 478000, - 499338110, - 477900, - 499316510, - 477800, - 499294910, - 477700, - 499273310, - 477600, - 499251710, - 477500, - 499230110, - 477400, - 499208510, - 477300, - 499186910, - 477200, - 499165310, - 477100, - 499143710, - 477000, - 499122110, - 476900, - 499100510, - 476800, - 499078910, - 476700, - 499057310, - 476600, - 499035710, - 476500, - 499014110, - 476400, - 498992510, - 476300, - 498970910, - 476200, - 498949310, - 476100, - 498927710, - 476000, - 498906110, - 475900, - 498884510, - 475800, - 498862910, - 475700, - 498841310, - 475600, - 498819710, - 475500, - 498798110, - 475400, - 498776510, - 475300, - 498754910, - 475200, - 498733310, - 475100, - 498711710, - 475000, - 498690110, - 474900, - 498668510, - 474800, - 498646910, - 474700, - 498625310, - 474600, - 498603710, - 474500, - 498582110, - 474400, - 498560510, - 474300, - 498538910, - 474200, - 498517310, - 474100, - 498495710, - 474000, - 498474110, - 473900, - 498452510, - 473800, - 498430910, - 473700, - 498409310, - 473600, - 498387710, - 473500, - 498366110, - 473400, - 498344510, - 473300, - 498322910, - 473200, - 498301310, - 473100, - 498279710, - 473000, - 498258110, - 472900, - 498236510, - 472800, - 498214910, - 472700, - 498193310, - 472600, - 498171710, - 472500, - 498150110, - 472400, - 498128510, - 472300, - 498106910, - 472200, - 498085310, - 472100, - 498063710, - 472000, - 498042110, - 471900, - 498020510, - 471800, - 497998910, - 471700, - 497977310, - 471600, - 497955710, - 471500, - 497934110, - 471400, - 497912510, - 471300, - 497890910, - 471200, - 497869310, - 471100, - 497847710, - 471000, - 497826110, - 470900, - 497804510, - 470800, - 497782910, - 470700, - 497761310, - 470600, - 497739710, - 470500, - 497718110, - 470400, - 497696510, - 470300, - 497674910, - 470200, - 497653310, - 470100, - 497631710, - 470000, - 497610110, - 469900, - 497588510, - 469800, - 497566910, - 469700, - 497545310, - 469600, - 497523710, - 469500, - 497502110, - 469400, - 497480510, - 469300, - 497458910, - 469200, - 497437310, - 469100, - 497415710, - 469000, - 497394110, - 468900, - 497372510, - 468800, - 497350910, - 468700, - 497329310, - 468600, - 497307710, - 468500, - 497286110, - 468400, - 497264510, - 468300, - 497242910, - 468200, - 497221310, - 468100, - 497199710, - 468000, - 497178110, - 467900, - 497156510, - 467800, - 497134910, - 467700, - 497113310, - 467600, - 497091710, - 467500, - 497070110, - 467400, - 497048510, - 467300, - 497026910, - 467200, - 497005310, - 467100, - 496983710, - 467000, - 496962110, - 466900, - 496940510, - 466800, - 496918910, - 466700, - 496897310, - 466600, - 496875710, - 466500, - 496854110, - 466400, - 496832510, - 466300, - 496810910, - 466200, - 496789310, - 466100, - 496767710, - 466000, - 496746110, - 465900, - 496724510, - 465800, - 496702910, - 465700, - 496681310, - 465600, - 496659710, - 465500, - 496638110, - 465400, - 496616510, - 465300, - 496594910, - 465200, - 496573310, - 465100, - 496551710, - 465000, - 496530110, - 464900, - 496508510, - 464800, - 496486910, - 464700, - 496465310, - 464600, - 496443710, - 464500, - 496422110, - 464400, - 496400510, - 464300, - 496378910, - 464200, - 496357310, - 464100, - 496335710, - 464000, - 496314110, - 463900, - 496292510, - 463800, - 496270910, - 463700, - 496249310, - 463600, - 496227710, - 463500, - 496206110, - 463400, - 496184510, - 463300, - 496162910, - 463200, - 496141310, - 463100, - 496119710, - 463000, - 496098110, - 462900, - 496076510, - 462800, - 496054910, - 462700, - 496033310, - 462600, - 496011710, - 462500, - 495990110, - 462400, - 495968510, - 462300, - 495946910, - 462200, - 495925310, - 462100, - 495903710, - 462000, - 495882110, - 461900, - 495860510, - 461800, - 495838910, - 461700, - 495817310, - 461600, - 495795710, - 461500, - 495774110, - 461400, - 495752510, - 461300, - 495730910, - 461200, - 495709310, - 461100, - 495687710, - 461000, - 495666110, - 460900, - 495644510, - 460800, - 495622910, - 460700, - 495601310, - 460600, - 495579710, - 460500, - 495558110, - 460400, - 495536510, - 460300, - 495514910, - 460200, - 495493310, - 460100, - 495471710, - 460000, - 495450110, - 459900, - 495428510, - 459800, - 495406910, - 459700, - 495385310, - 459600, - 495363710, - 459500, - 495342110, - 459400, - 495320510, - 459300, - 495298910, - 459200, - 495277310, - 459100, - 495255710, - 459000, - 495234110, - 458900, - 495212510, - 458800, - 495190910, - 458700, - 495169310, - 458600, - 495147710, - 458500, - 495126110, - 458400, - 495104510, - 458300, - 495082910, - 458200, - 495061310, - 458100, - 495039710, - 458000, - 495018110, - 457900, - 494996510, - 457800, - 494974910, - 457700, - 494953310, - 457600, - 494931710, - 457500, - 494910110, - 457400, - 494888510, - 457300, - 494866910, - 457200, - 494845310, - 457100, - 494823710, - 457000, - 494802110, - 456900, - 494780510, - 456800, - 494758910, - 456700, - 494737310, - 456600, - 494715710, - 456500, - 494694110, - 456400, - 494672510, - 456300, - 494650910, - 456200, - 494629310, - 456100, - 494607710, - 456000, - 494586110, - 455900, - 494564510, - 455800, - 494542910, - 455700, - 494521310, - 455600, - 494499710, - 455500, - 494478110, - 455400, - 494456510, - 455300, - 494434910, - 455200, - 494413310, - 455100, - 494391710, - 455000, - 494370110, - 454900, - 494348510, - 454800, - 494326910, - 454700, - 494305310, - 454600, - 494283710, - 454500, - 494262110, - 454400, - 494240510, - 454300, - 494218910, - 454200, - 494197310, - 454100, - 494175710, - 454000, - 494154110, - 453900, - 494132510, - 453800, - 494110910, - 453700, - 494089310, - 453600, - 494067710, - 453500, - 494046110, - 453400, - 494024510, - 453300, - 494002910, - 453200, - 493981310, - 453100, - 493959710, - 453000, - 493938110, - 452900, - 493916510, - 452800, - 493894910, - 452700, - 493873310, - 452600, - 493851710, - 452500, - 493830110, - 452400, - 493808510, - 452300, - 493786910, - 452200, - 493765310, - 452100, - 493743710, - 452000, - 493722110, - 451900, - 493700510, - 451800, - 493678910, - 451700, - 493657310, - 451600, - 493635710, - 451500, - 493614110, - 451400, - 493592510, - 451300, - 493570910, - 451200, - 493549310, - 451100, - 493527710, - 451000, - 493506110, - 450900, - 493484510, - 450800, - 493462910, - 450700, - 493441310, - 450600, - 493419710, - 450500, - 493398110, - 450400, - 493376510, - 450300, - 493354910, - 450200, - 493333310, - 450100, - 493311710, - 450000, - 493290110, - 449900, - 493268510, - 449800, - 493246910, - 449700, - 493225310, - 449600, - 493203710, - 449500, - 493182110, - 449400, - 493160510, - 449300, - 493138910, - 449200, - 493117310, - 449100, - 493095710, - 449000, - 493074110, - 448900, - 493052510, - 448800, - 493030910, - 448700, - 493009310, - 448600, - 492987710, - 448500, - 492966110, - 448400, - 492944510, - 448300, - 492922910, - 448200, - 492901310, - 448100, - 492879710, - 448000, - 492858110, - 447900, - 492836510, - 447800, - 492814910, - 447700, - 492793310, - 447600, - 492771710, - 447500, - 492750110, - 447400, - 492728510, - 447300, - 492706910, - 447200, - 492685310, - 447100, - 492663710, - 447000, - 492642110, - 446900, - 492620510, - 446800, - 492598910, - 446700, - 492577310, - 446600, - 492555710, - 446500, - 492534110, - 446400, - 492512510, - 446300, - 492490910, - 446200, - 492469310, - 446100, - 492447710, - 446000, - 492426110, - 445900, - 492404510, - 445800, - 492382910, - 445700, - 492361310, - 445600, - 492339710, - 445500, - 492318110, - 445400, - 492296510, - 445300, - 492274910, - 445200, - 492253310, - 445100, - 492231710, - 445000, - 492210110, - 444900, - 492188510, - 444800, - 492166910, - 444700, - 492145310, - 444600, - 492123710, - 444500, - 492102110, - 444400, - 492080510, - 444300, - 492058910, - 444200, - 492037310, - 444100, - 492015710, - 444000, - 491994110, - 443900, - 491972510, - 443800, - 491950910, - 443700, - 491929310, - 443600, - 491907710, - 443500, - 491886110, - 443400, - 491864510, - 443300, - 491842910, - 443200, - 491821310, - 443100, - 491799710, - 443000, - 491778110, - 442900, - 491756510, - 442800, - 491734910, - 442700, - 491713310, - 442600, - 491691710, - 442500, - 491670110, - 442400, - 491648510, - 442300, - 491626910, - 442200, - 491605310, - 442100, - 491583710, - 442000, - 491562110, - 441900, - 491540510, - 441800, - 491518910, - 441700, - 491497310, - 441600, - 491475710, - 441500, - 491454110, - 441400, - 491432510, - 441300, - 491410910, - 441200, - 491389310, - 441100, - 491367710, - 441000, - 491346110, - 440900, - 491324510, - 440800, - 491302910, - 440700, - 491281310, - 440600, - 491259710, - 440500, - 491238110, - 440400, - 491216510, - 440300, - 491194910, - 440200, - 491173310, - 440100, - 491151710, - 440000, - 491130110, - 439900, - 491108510, - 439800, - 491086910, - 439700, - 491065310, - 439600, - 491043710, - 439500, - 491022110, - 439400, - 491000510, - 439300, - 490978910, - 439200, - 490957310, - 439100, - 490935710, - 439000, - 490914110, - 438900, - 490892510, - 438800, - 490870910, - 438700, - 490849310, - 438600, - 490827710, - 438500, - 490806110, - 438400, - 490784510, - 438300, - 490762910, - 438200, - 490741310, - 438100, - 490719710, - 438000, - 490698110, - 437900, - 490676510, - 437800, - 490654910, - 437700, - 490633310, - 437600, - 490611710, - 437500, - 490590110, - 437400, - 490568510, - 437300, - 490546910, - 437200, - 490525310, - 437100, - 490503710, - 437000, - 490482110, - 436900, - 490460510, - 436800, - 490438910, - 436700, - 490417310, - 436600, - 490395710, - 436500, - 490374110, - 436400, - 490352510, - 436300, - 490330910, - 436200, - 490309310, - 436100, - 490287710, - 436000, - 490266110, - 435900, - 490244510, - 435800, - 490222910, - 435700, - 490201310, - 435600, - 490179710, - 435500, - 490158110, - 435400, - 490136510, - 435300, - 490114910, - 435200, - 490093310, - 435100, - 490071710, - 435000, - 490050110, - 434900, - 490028510, - 434800, - 490006910, - 434700, - 489985310, - 434600, - 489963710, - 434500, - 489942110, - 434400, - 489920510, - 434300, - 489898910, - 434200, - 489877310, - 434100, - 489855710, - 434000, - 489834110, - 433900, - 489812510, - 433800, - 489790910, - 433700, - 489769310, - 433600, - 489747710, - 433500, - 489726110, - 433400, - 489704510, - 433300, - 489682910, - 433200, - 489661310, - 433100, - 489639710, - 433000, - 489618110, - 432900, - 489596510, - 432800, - 489574910, - 432700, - 489553310, - 432600, - 489531710, - 432500, - 489510110, - 432400, - 489488510, - 432300, - 489466910, - 432200, - 489445310, - 432100, - 489423710, - 432000, - 489402110, - 431900, - 489380510, - 431800, - 489358910, - 431700, - 489337310, - 431600, - 489315710, - 431500, - 489294110, - 431400, - 489272510, - 431300, - 489250910, - 431200, - 489229310, - 431100, - 489207710, - 431000, - 489186110, - 430900, - 489164510, - 430800, - 489142910, - 430700, - 489121310, - 430600, - 489099710, - 430500, - 489078110, - 430400, - 489056510, - 430300, - 489034910, - 430200, - 489013310, - 430100, - 488991710, - 430000, - 488970110, - 429900, - 488948510, - 429800, - 488926910, - 429700, - 488905310, - 429600, - 488883710, - 429500, - 488862110, - 429400, - 488840510, - 429300, - 488818910, - 429200, - 488797310, - 429100, - 488775710, - 429000, - 488754110, - 428900, - 488732510, - 428800, - 488710910, - 428700, - 488689310, - 428600, - 488667710, - 428500, - 488646110, - 428400, - 488624510, - 428300, - 488602910, - 428200, - 488581310, - 428100, - 488559710, - 428000, - 488538110, - 427900, - 488516510, - 427800, - 488494910, - 427700, - 488473310, - 427600, - 488451710, - 427500, - 488430110, - 427400, - 488408510, - 427300, - 488386910, - 427200, - 488365310, - 427100, - 488343710, - 427000, - 488322110, - 426900, - 488300510, - 426800, - 488278910, - 426700, - 488257310, - 426600, - 488235710, - 426500, - 488214110, - 426400, - 488192510, - 426300, - 488170910, - 426200, - 488149310, - 426100, - 488127710, - 426000, - 488106110, - 425900, - 488084510, - 425800, - 488062910, - 425700, - 488041310, - 425600, - 488019710, - 425500, - 487998110, - 425400, - 487976510, - 425300, - 487954910, - 425200, - 487933310, - 425100, - 487911710, - 425000, - 487890110, - 424900, - 487868510, - 424800, - 487846910, - 424700, - 487825310, - 424600, - 487803710, - 424500, - 487782110, - 424400, - 487760510, - 424300, - 487738910, - 424200, - 487717310, - 424100, - 487695710, - 424000, - 487674110, - 423900, - 487652510, - 423800, - 487630910, - 423700, - 487609310, - 423600, - 487587710, - 423500, - 487566110, - 423400, - 487544510, - 423300, - 487522910, - 423200, - 487501310, - 423100, - 487479710, - 423000, - 487458110, - 422900, - 487436510, - 422800, - 487414910, - 422700, - 487393310, - 422600, - 487371710, - 422500, - 487350110, - 422400, - 487328510, - 422300, - 487306910, - 422200, - 487285310, - 422100, - 487263710, - 422000, - 487242110, - 421900, - 487220510, - 421800, - 487198910, - 421700, - 487177310, - 421600, - 487155710, - 421500, - 487134110, - 421400, - 487112510, - 421300, - 487090910, - 421200, - 487069310, - 421100, - 487047710, - 421000, - 487026110, - 420900, - 487004510, - 420800, - 486982910, - 420700, - 486961310, - 420600, - 486939710, - 420500, - 486918110, - 420400, - 486896510, - 420300, - 486874910, - 420200, - 486853310, - 420100, - 486831710, - 420000, - 486810110, - 419900, - 486788510, - 419800, - 486766910, - 419700, - 486745310, - 419600, - 486723710, - 419500, - 486702110, - 419400, - 486680510, - 419300, - 486658910, - 419200, - 486637310, - 419100, - 486615710, - 419000, - 486594110, - 418900, - 486572510, - 418800, - 486550910, - 418700, - 486529310, - 418600, - 486507710, - 418500, - 486486110, - 418400, - 486464510, - 418300, - 486442910, - 418200, - 486421310, - 418100, - 486399710, - 418000, - 486378110, - 417900, - 486356510, - 417800, - 486334910, - 417700, - 486313310, - 417600, - 486291710, - 417500, - 486270110, - 417400, - 486248510, - 417300, - 486226910, - 417200, - 486205310, - 417100, - 486183710, - 417000, - 486162110, - 416900, - 486140510, - 416800, - 486118910, - 416700, - 486097310, - 416600, - 486075710, - 416500, - 486054110, - 416400, - 486032510, - 416300, - 486010910, - 416200, - 485989310, - 416100, - 485967710, - 416000, - 485946110, - 415900, - 485924510, - 415800, - 485902910, - 415700, - 485881310, - 415600, - 485859710, - 415500, - 485838110, - 415400, - 485816510, - 415300, - 485794910, - 415200, - 485773310, - 415100, - 485751710, - 415000, - 485730110, - 414900, - 485708510, - 414800, - 485686910, - 414700, - 485665310, - 414600, - 485643710, - 414500, - 485622110, - 414400, - 485600510, - 414300, - 485578910, - 414200, - 485557310, - 414100, - 485535710, - 414000, - 485514110, - 413900, - 485492510, - 413800, - 485470910, - 413700, - 485449310, - 413600, - 485427710, - 413500, - 485406110, - 413400, - 485384510, - 413300, - 485362910, - 413200, - 485341310, - 413100, - 485319710, - 413000, - 485298110, - 412900, - 485276510, - 412800, - 485254910, - 412700, - 485233310, - 412600, - 485211710, - 412500, - 485190110, - 412400, - 485168510, - 412300, - 485146910, - 412200, - 485125310, - 412100, - 485103710, - 412000, - 485082110, - 411900, - 485060510, - 411800, - 485038910, - 411700, - 485017310, - 411600, - 484995710, - 411500, - 484974110, - 411400, - 484952510, - 411300, - 484930910, - 411200, - 484909310, - 411100, - 484887710, - 411000, - 484866110, - 410900, - 484844510, - 410800, - 484822910, - 410700, - 484801310, - 410600, - 484779710, - 410500, - 484758110, - 410400, - 484736510, - 410300, - 484714910, - 410200, - 484693310, - 410100, - 484671710, - 410000, - 484650110, - 409900, - 484628510, - 409800, - 484606910, - 409700, - 484585310, - 409600, - 484563710, - 409500, - 484542110, - 409400, - 484520510, - 409300, - 484498910, - 409200, - 484477310, - 409100, - 484455710, - 409000, - 484434110, - 408900, - 484412510, - 408800, - 484390910, - 408700, - 484369310, - 408600, - 484347710, - 408500, - 484326110, - 408400, - 484304510, - 408300, - 484282910, - 408200, - 484261310, - 408100, - 484239710, - 408000, - 484218110, - 407900, - 484196510, - 407800, - 484174910, - 407700, - 484153310, - 407600, - 484131710, - 407500, - 484110110, - 407400, - 484088510, - 407300, - 484066910, - 407200, - 484045310, - 407100, - 484023710, - 407000, - 484002110, - 406900, - 483980510, - 406800, - 483958910, - 406700, - 483937310, - 406600, - 483915710, - 406500, - 483894110, - 406400, - 483872510, - 406300, - 483850910, - 406200, - 483829310, - 406100, - 483807710, - 406000, - 483786110, - 405900, - 483764510, - 405800, - 483742910, - 405700, - 483721310, - 405600, - 483699710, - 405500, - 483678110, - 405400, - 483656510, - 405300, - 483634910, - 405200, - 483613310, - 405100, - 483591710, - 405000, - 483570110, - 404900, - 483548510, - 404800, - 483526910, - 404700, - 483505310, - 404600, - 483483710, - 404500, - 483462110, - 404400, - 483440510, - 404300, - 483418910, - 404200, - 483397310, - 404100, - 483375710, - 404000, - 483354110, - 403900, - 483332510, - 403800, - 483310910, - 403700, - 483289310, - 403600, - 483267710, - 403500, - 483246110, - 403400, - 483224510, - 403300, - 483202910, - 403200, - 483181310, - 403100, - 483159710, - 403000, - 483138110, - 402900, - 483116510, - 402800, - 483094910, - 402700, - 483073310, - 402600, - 483051710, - 402500, - 483030110, - 402400, - 483008510, - 402300, - 482986910, - 402200, - 482965310, - 402100, - 482943710, - 402000, - 482922110, - 401900, - 482900510, - 401800, - 482878910, - 401700, - 482857310, - 401600, - 482835710, - 401500, - 482814110, - 401400, - 482792510, - 401300, - 482770910, - 401200, - 482749310, - 401100, - 482727710, - 401000, - 482706110, - 400900, - 482684510, - 400800, - 482662910, - 400700, - 482641310, - 400600, - 482619710, - 400500, - 482598110, - 400400, - 482576510, - 400300, - 482554910, - 400200, - 482533310, - 400100, - 482511710, - 400000, - 482490110, - 399900, - 482468510, - 399800, - 482446910, - 399700, - 482425310, - 399600, - 482403710, - 399500, - 482382110, - 399400, - 482360510, - 399300, - 482338910, - 399200, - 482317310, - 399100, - 482295710, - 399000, - 482274110, - 398900, - 482252510, - 398800, - 482230910, - 398700, - 482209310, - 398600, - 482187710, - 398500, - 482166110, - 398400, - 482144510, - 398300, - 482122910, - 398200, - 482101310, - 398100, - 482079710, - 398000, - 482058110, - 397900, - 482036510, - 397800, - 482014910, - 397700, - 481993310, - 397600, - 481971710, - 397500, - 481950110, - 397400, - 481928510, - 397300, - 481906910, - 397200, - 481885310, - 397100, - 481863710, - 397000, - 481842110, - 396900, - 481820510, - 396800, - 481798910, - 396700, - 481777310, - 396600, - 481755710, - 396500, - 481734110, - 396400, - 481712510, - 396300, - 481690910, - 396200, - 481669310, - 396100, - 481647710, - 396000, - 481626110, - 395900, - 481604510, - 395800, - 481582910, - 395700, - 481561310, - 395600, - 481539710, - 395500, - 481518110, - 395400, - 481496510, - 395300, - 481474910, - 395200, - 481453310, - 395100, - 481431710, - 395000, - 481410110, - 394900, - 481388510, - 394800, - 481366910, - 394700, - 481345310, - 394600, - 481323710, - 394500, - 481302110, - 394400, - 481280510, - 394300, - 481258910, - 394200, - 481237310, - 394100, - 481215710, - 394000, - 481194110, - 393900, - 481172510, - 393800, - 481150910, - 393700, - 481129310, - 393600, - 481107710, - 393500, - 481086110, - 393400, - 481064510, - 393300, - 481042910, - 393200, - 481021310, - 393100, - 480999710, - 393000, - 480978110, - 392900, - 480956510, - 392800, - 480934910, - 392700, - 480913310, - 392600, - 480891710, - 392500, - 480870110, - 392400, - 480848510, - 392300, - 480826910, - 392200, - 480805310, - 392100, - 480783710, - 392000, - 480762110, - 391900, - 480740510, - 391800, - 480718910, - 391700, - 480697310, - 391600, - 480675710, - 391500, - 480654110, - 391400, - 480632510, - 391300, - 480610910, - 391200, - 480589310, - 391100, - 480567710, - 391000, - 480546110, - 390900, - 480524510, - 390800, - 480502910, - 390700, - 480481310, - 390600, - 480459710, - 390500, - 480438110, - 390400, - 480416510, - 390300, - 480394910, - 390200, - 480373310, - 390100, - 480351710, - 390000, - 480330110, - 389900, - 480308510, - 389800, - 480286910, - 389700, - 480265310, - 389600, - 480243710, - 389500, - 480222110, - 389400, - 480200510, - 389300, - 480178910, - 389200, - 480157310, - 389100, - 480135710, - 389000, - 480114110, - 388900, - 480092510, - 388800, - 480070910, - 388700, - 480049310, - 388600, - 480027710, - 388500, - 480006110, - 388400, - 479984510, - 388300, - 479962910, - 388200, - 479941310, - 388100, - 479919710, - 388000, - 479898110, - 387900, - 479876510, - 387800, - 479854910, - 387700, - 479833310, - 387600, - 479811710, - 387500, - 479790110, - 387400, - 479768510, - 387300, - 479746910, - 387200, - 479725310, - 387100, - 479703710, - 387000, - 479682110, - 386900, - 479660510, - 386800, - 479638910, - 386700, - 479617310, - 386600, - 479595710, - 386500, - 479574110, - 386400, - 479552510, - 386300, - 479530910, - 386200, - 479509310, - 386100, - 479487710, - 386000, - 479466110, - 385900, - 479444510, - 385800, - 479422910, - 385700, - 479401310, - 385600, - 479379710, - 385500, - 479358110, - 385400, - 479336510, - 385300, - 479314910, - 385200, - 479293310, - 385100, - 479271710, - 385000, - 479250110, - 384900, - 479228510, - 384800, - 479206910, - 384700, - 479185310, - 384600, - 479163710, - 384500, - 479142110, - 384400, - 479120510, - 384300, - 479098910, - 384200, - 479077310, - 384100, - 479055710, - 384000, - 479034110, - 383900, - 479012510, - 383800, - 478990910, - 383700, - 478969310, - 383600, - 478947710, - 383500, - 478926110, - 383400, - 478904510, - 383300, - 478882910, - 383200, - 478861310, - 383100, - 478839710, - 383000, - 478818110, - 382900, - 478796510, - 382800, - 478774910, - 382700, - 478753310, - 382600, - 478731710, - 382500, - 478710110, - 382400, - 478688510, - 382300, - 478666910, - 382200, - 478645310, - 382100, - 478623710, - 382000, - 478602110, - 381900, - 478580510, - 381800, - 478558910, - 381700, - 478537310, - 381600, - 478515710, - 381500, - 478494110, - 381400, - 478472510, - 381300, - 478450910, - 381200, - 478429310, - 381100, - 478407710, - 381000, - 478386110, - 380900, - 478364510, - 380800, - 478342910, - 380700, - 478321310, - 380600, - 478299710, - 380500, - 478278110, - 380400, - 478256510, - 380300, - 478234910, - 380200, - 478213310, - 380100, - 478191710, - 380000, - 478170110, - 379900, - 478148510, - 379800, - 478126910, - 379700, - 478105310, - 379600, - 478083710, - 379500, - 478062110, - 379400, - 478040510, - 379300, - 478018910, - 379200, - 477997310, - 379100, - 477975710, - 379000, - 477954110, - 378900, - 477932510, - 378800, - 477910910, - 378700, - 477889310, - 378600, - 477867710, - 378500, - 477846110, - 378400, - 477824510, - 378300, - 477802910, - 378200, - 477781310, - 378100, - 477759710, - 378000, - 477738110, - 377900, - 477716510, - 377800, - 477694910, - 377700, - 477673310, - 377600, - 477651710, - 377500, - 477630110, - 377400, - 477608510, - 377300, - 477586910, - 377200, - 477565310, - 377100, - 477543710, - 377000, - 477522110, - 376900, - 477500510, - 376800, - 477478910, - 376700, - 477457310, - 376600, - 477435710, - 376500, - 477414110, - 376400, - 477392510, - 376300, - 477370910, - 376200, - 477349310, - 376100, - 477327710, - 376000, - 477306110, - 375900, - 477284510, - 375800, - 477262910, - 375700, - 477241310, - 375600, - 477219710, - 375500, - 477198110, - 375400, - 477176510, - 375300, - 477154910, - 375200, - 477133310, - 375100, - 477111710, - 375000, - 477090110, - 374900, - 477068510, - 374800, - 477046910, - 374700, - 477025310, - 374600, - 477003710, - 374500, - 476982110, - 374400, - 476960510, - 374300, - 476938910, - 374200, - 476917310, - 374100, - 476895710, - 374000, - 476874110, - 373900, - 476852510, - 373800, - 476830910, - 373700, - 476809310, - 373600, - 476787710, - 373500, - 476766110, - 373400, - 476744510, - 373300, - 476722910, - 373200, - 476701310, - 373100, - 476679710, - 373000, - 476658110, - 372900, - 476636510, - 372800, - 476614910, - 372700, - 476593310, - 372600, - 476571710, - 372500, - 476550110, - 372400, - 476528510, - 372300, - 476506910, - 372200, - 476485310, - 372100, - 476463710, - 372000, - 476442110, - 371900, - 476420510, - 371800, - 476398910, - 371700, - 476377310, - 371600, - 476355710, - 371500, - 476334110, - 371400, - 476312510, - 371300, - 476290910, - 371200, - 476269310, - 371100, - 476247710, - 371000, - 476226110, - 370900, - 476204510, - 370800, - 476182910, - 370700, - 476161310, - 370600, - 476139710, - 370500, - 476118110, - 370400, - 476096510, - 370300, - 476074910, - 370200, - 476053310, - 370100, - 476031710, - 370000, - 476010110, - 369900, - 475988510, - 369800, - 475966910, - 369700, - 475945310, - 369600, - 475923710, - 369500, - 475902110, - 369400, - 475880510, - 369300, - 475858910, - 369200, - 475837310, - 369100, - 475815710, - 369000, - 475794110, - 368900, - 475772510, - 368800, - 475750910, - 368700, - 475729310, - 368600, - 475707710, - 368500, - 475686110, - 368400, - 475664510, - 368300, - 475642910, - 368200, - 475621310, - 368100, - 475599710, - 368000, - 475578110, - 367900, - 475556510, - 367800, - 475534910, - 367700, - 475513310, - 367600, - 475491710, - 367500, - 475470110, - 367400, - 475448510, - 367300, - 475426910, - 367200, - 475405310, - 367100, - 475383710, - 367000, - 475362110, - 366900, - 475340510, - 366800, - 475318910, - 366700, - 475297310, - 366600, - 475275710, - 366500, - 475254110, - 366400, - 475232510, - 366300, - 475210910, - 366200, - 475189310, - 366100, - 475167710, - 366000, - 475146110, - 365900, - 475124510, - 365800, - 475102910, - 365700, - 475081310, - 365600, - 475059710, - 365500, - 475038110, - 365400, - 475016510, - 365300, - 474994910, - 365200, - 474973310, - 365100, - 474951710, - 365000, - 474930110, - 364900, - 474908510, - 364800, - 474886910, - 364700, - 474865310, - 364600, - 474843710, - 364500, - 474822110, - 364400, - 474800510, - 364300, - 474778910, - 364200, - 474757310, - 364100, - 474735710, - 364000, - 474714110, - 363900, - 474692510, - 363800, - 474670910, - 363700, - 474649310, - 363600, - 474627710, - 363500, - 474606110, - 363400, - 474584510, - 363300, - 474562910, - 363200, - 474541310, - 363100, - 474519710, - 363000, - 474498110, - 362900, - 474476510, - 362800, - 474454910, - 362700, - 474433310, - 362600, - 474411710, - 362500, - 474390110, - 362400, - 474368510, - 362300, - 474346910, - 362200, - 474325310, - 362100, - 474303710, - 362000, - 474282110, - 361900, - 474260510, - 361800, - 474238910, - 361700, - 474217310, - 361600, - 474195710, - 361500, - 474174110, - 361400, - 474152510, - 361300, - 474130910, - 361200, - 474109310, - 361100, - 474087710, - 361000, - 474066110, - 360900, - 474044510, - 360800, - 474022910, - 360700, - 474001310, - 360600, - 473979710, - 360500, - 473958110, - 360400, - 473936510, - 360300, - 473914910, - 360200, - 473893310, - 360100, - 473871710, - 360000, - 473850110, - 359900, - 473828510, - 359800, - 473806910, - 359700, - 473785310, - 359600, - 473763710, - 359500, - 473742110, - 359400, - 473720510, - 359300, - 473698910, - 359200, - 473677310, - 359100, - 473655710, - 359000, - 473634110, - 358900, - 473612510, - 358800, - 473590910, - 358700, - 473569310, - 358600, - 473547710, - 358500, - 473526110, - 358400, - 473504510, - 358300, - 473482910, - 358200, - 473461310, - 358100, - 473439710, - 358000, - 473418110, - 357900, - 473396510, - 357800, - 473374910, - 357700, - 473353310, - 357600, - 473331710, - 357500, - 473310110, - 357400, - 473288510, - 357300, - 473266910, - 357200, - 473245310, - 357100, - 473223710, - 357000, - 473202110, - 356900, - 473180510, - 356800, - 473158910, - 356700, - 473137310, - 356600, - 473115710, - 356500, - 473094110, - 356400, - 473072510, - 356300, - 473050910, - 356200, - 473029310, - 356100, - 473007710, - 356000, - 472986110, - 355900, - 472964510, - 355800, - 472942910, - 355700, - 472921310, - 355600, - 472899710, - 355500, - 472878110, - 355400, - 472856510, - 355300, - 472834910, - 355200, - 472813310, - 355100, - 472791710, - 355000, - 472770110, - 354900, - 472748510, - 354800, - 472726910, - 354700, - 472705310, - 354600, - 472683710, - 354500, - 472662110, - 354400, - 472640510, - 354300, - 472618910, - 354200, - 472597310, - 354100, - 472575710, - 354000, - 472554110, - 353900, - 472532510, - 353800, - 472510910, - 353700, - 472489310, - 353600, - 472467710, - 353500, - 472446110, - 353400, - 472424510, - 353300, - 472402910, - 353200, - 472381310, - 353100, - 472359710, - 353000, - 472338110, - 352900, - 472316510, - 352800, - 472294910, - 352700, - 472273310, - 352600, - 472251710, - 352500, - 472230110, - 352400, - 472208510, - 352300, - 472186910, - 352200, - 472165310, - 352100, - 472143710, - 352000, - 472122110, - 351900, - 472100510, - 351800, - 472078910, - 351700, - 472057310, - 351600, - 472035710, - 351500, - 472014110, - 351400, - 471992510, - 351300, - 471970910, - 351200, - 471949310, - 351100, - 471927710, - 351000, - 471906110, - 350900, - 471884510, - 350800, - 471862910, - 350700, - 471841310, - 350600, - 471819710, - 350500, - 471798110, - 350400, - 471776510, - 350300, - 471754910, - 350200, - 471733310, - 350100, - 471711710, - 350000, - 471690110, - 349900, - 471668510, - 349800, - 471646910, - 349700, - 471625310, - 349600, - 471603710, - 349500, - 471582110, - 349400, - 471560510, - 349300, - 471538910, - 349200, - 471517310, - 349100, - 471495710, - 349000, - 471474110, - 348900, - 471452510, - 348800, - 471430910, - 348700, - 471409310, - 348600, - 471387710, - 348500, - 471366110, - 348400, - 471344510, - 348300, - 471322910, - 348200, - 471301310, - 348100, - 471279710, - 348000, - 471258110, - 347900, - 471236510, - 347800, - 471214910, - 347700, - 471193310, - 347600, - 471171710, - 347500, - 471150110, - 347400, - 471128510, - 347300, - 471106910, - 347200, - 471085310, - 347100, - 471063710, - 347000, - 471042110, - 346900, - 471020510, - 346800, - 470998910, - 346700, - 470977310, - 346600, - 470955710, - 346500, - 470934110, - 346400, - 470912510, - 346300, - 470890910, - 346200, - 470869310, - 346100, - 470847710, - 346000, - 470826110, - 345900, - 470804510, - 345800, - 470782910, - 345700, - 470761310, - 345600, - 470739710, - 345500, - 470718110, - 345400, - 470696510, - 345300, - 470674910, - 345200, - 470653310, - 345100, - 470631710, - 345000, - 470610110, - 344900, - 470588510, - 344800, - 470566910, - 344700, - 470545310, - 344600, - 470523710, - 344500, - 470502110, - 344400, - 470480510, - 344300, - 470458910, - 344200, - 470437310, - 344100, - 470415710, - 344000, - 470394110, - 343900, - 470372510, - 343800, - 470350910, - 343700, - 470329310, - 343600, - 470307710, - 343500, - 470286110, - 343400, - 470264510, - 343300, - 470242910, - 343200, - 470221310, - 343100, - 470199710, - 343000, - 470178110, - 342900, - 470156510, - 342800, - 470134910, - 342700, - 470113310, - 342600, - 470091710, - 342500, - 470070110, - 342400, - 470048510, - 342300, - 470026910, - 342200, - 470005310, - 342100, - 469983710, - 342000, - 469962110, - 341900, - 469940510, - 341800, - 469918910, - 341700, - 469897310, - 341600, - 469875710, - 341500, - 469854110, - 341400, - 469832510, - 341300, - 469810910, - 341200, - 469789310, - 341100, - 469767710, - 341000, - 469746110, - 340900, - 469724510, - 340800, - 469702910, - 340700, - 469681310, - 340600, - 469659710, - 340500, - 469638110, - 340400, - 469616510, - 340300, - 469594910, - 340200, - 469573310, - 340100, - 469551710, - 340000, - 469530110, - 339900, - 469508510, - 339800, - 469486910, - 339700, - 469465310, - 339600, - 469443710, - 339500, - 469422110, - 339400, - 469400510, - 339300, - 469378910, - 339200, - 469357310, - 339100, - 469335710, - 339000, - 469314110, - 338900, - 469292510, - 338800, - 469270910, - 338700, - 469249310, - 338600, - 469227710, - 338500, - 469206110, - 338400, - 469184510, - 338300, - 469162910, - 338200, - 469141310, - 338100, - 469119710, - 338000, - 469098110, - 337900, - 469076510, - 337800, - 469054910, - 337700, - 469033310, - 337600, - 469011710, - 337500, - 468990110, - 337400, - 468968510, - 337300, - 468946910, - 337200, - 468925310, - 337100, - 468903710, - 337000, - 468882110, - 336900, - 468860510, - 336800, - 468838910, - 336700, - 468817310, - 336600, - 468795710, - 336500, - 468774110, - 336400, - 468752510, - 336300, - 468730910, - 336200, - 468709310, - 336100, - 468687710, - 336000, - 468666110, - 335900, - 468644510, - 335800, - 468622910, - 335700, - 468601310, - 335600, - 468579710, - 335500, - 468558110, - 335400, - 468536510, - 335300, - 468514910, - 335200, - 468493310, - 335100, - 468471710, - 335000, - 468450110, - 334900, - 468428510, - 334800, - 468406910, - 334700, - 468385310, - 334600, - 468363710, - 334500, - 468342110, - 334400, - 468320510, - 334300, - 468298910, - 334200, - 468277310, - 334100, - 468255710, - 334000, - 468234110, - 333900, - 468212510, - 333800, - 468190910, - 333700, - 468169310, - 333600, - 468147710, - 333500, - 468126110, - 333400, - 468104510, - 333300, - 468082910, - 333200, - 468061310, - 333100, - 468039710, - 333000, - 468018110, - 332900, - 467996510, - 332800, - 467974910, - 332700, - 467953310, - 332600, - 467931710, - 332500, - 467910110, - 332400, - 467888510, - 332300, - 467866910, - 332200, - 467845310, - 332100, - 467823710, - 332000, - 467802110, - 331900, - 467780510, - 331800, - 467758910, - 331700, - 467737310, - 331600, - 467715710, - 331500, - 467694110, - 331400, - 467672510, - 331300, - 467650910, - 331200, - 467629310, - 331100, - 467607710, - 331000, - 467586110, - 330900, - 467564510, - 330800, - 467542910, - 330700, - 467521310, - 330600, - 467499710, - 330500, - 467478110, - 330400, - 467456510, - 330300, - 467434910, - 330200, - 467413310, - 330100, - 467391710, - 330000, - 467370110, - 329900, - 467348510, - 329800, - 467326910, - 329700, - 467305310, - 329600, - 467283710, - 329500, - 467262110, - 329400, - 467240510, - 329300, - 467218910, - 329200, - 467197310, - 329100, - 467175710, - 329000, - 467154110, - 328900, - 467132510, - 328800, - 467110910, - 328700, - 467089310, - 328600, - 467067710, - 328500, - 467046110, - 328400, - 467024510, - 328300, - 467002910, - 328200, - 466981310, - 328100, - 466959710, - 328000, - 466938110, - 327900, - 466916510, - 327800, - 466894910, - 327700, - 466873310, - 327600, - 466851710, - 327500, - 466830110, - 327400, - 466808510, - 327300, - 466786910, - 327200, - 466765310, - 327100, - 466743710, - 327000, - 466722110, - 326900, - 466700510, - 326800, - 466678910, - 326700, - 466657310, - 326600, - 466635710, - 326500, - 466614110, - 326400, - 466592510, - 326300, - 466570910, - 326200, - 466549310, - 326100, - 466527710, - 326000, - 466506110, - 325900, - 466484510, - 325800, - 466462910, - 325700, - 466441310, - 325600, - 466419710, - 325500, - 466398110, - 325400, - 466376510, - 325300, - 466354910, - 325200, - 466333310, - 325100, - 466311710, - 325000, - 466290110, - 324900, - 466268510, - 324800, - 466246910, - 324700, - 466225310, - 324600, - 466203710, - 324500, - 466182110, - 324400, - 466160510, - 324300, - 466138910, - 324200, - 466117310, - 324100, - 466095710, - 324000, - 466074110, - 323900, - 466052510, - 323800, - 466030910, - 323700, - 466009310, - 323600, - 465987710, - 323500, - 465966110, - 323400, - 465944510, - 323300, - 465922910, - 323200, - 465901310, - 323100, - 465879710, - 323000, - 465858110, - 322900, - 465836510, - 322800, - 465814910, - 322700, - 465793310, - 322600, - 465771710, - 322500, - 465750110, - 322400, - 465728510, - 322300, - 465706910, - 322200, - 465685310, - 322100, - 465663710, - 322000, - 465642110, - 321900, - 465620510, - 321800, - 465598910, - 321700, - 465577310, - 321600, - 465555710, - 321500, - 465534110, - 321400, - 465512510, - 321300, - 465490910, - 321200, - 465469310, - 321100, - 465447710, - 321000, - 465426110, - 320900, - 465404510, - 320800, - 465382910, - 320700, - 465361310, - 320600, - 465339710, - 320500, - 465318110, - 320400, - 465296510, - 320300, - 465274910, - 320200, - 465253310, - 320100, - 465231710, - 320000, - 465210110, - 319900, - 465188510, - 319800, - 465166910, - 319700, - 465145310, - 319600, - 465123710, - 319500, - 465102110, - 319400, - 465080510, - 319300, - 465058910, - 319200, - 465037310, - 319100, - 465015710, - 319000, - 464994110, - 318900, - 464972510, - 318800, - 464950910, - 318700, - 464929310, - 318600, - 464907710, - 318500, - 464886110, - 318400, - 464864510, - 318300, - 464842910, - 318200, - 464821310, - 318100, - 464799710, - 318000, - 464778110, - 317900, - 464756510, - 317800, - 464734910, - 317700, - 464713310, - 317600, - 464691710, - 317500, - 464670110, - 317400, - 464648510, - 317300, - 464626910, - 317200, - 464605310, - 317100, - 464583710, - 317000, - 464562110, - 316900, - 464540510, - 316800, - 464518910, - 316700, - 464497310, - 316600, - 464475710, - 316500, - 464454110, - 316400, - 464432510, - 316300, - 464410910, - 316200, - 464389310, - 316100, - 464367710, - 316000, - 464346110, - 315900, - 464324510, - 315800, - 464302910, - 315700, - 464281310, - 315600, - 464259710, - 315500, - 464238110, - 315400, - 464216510, - 315300, - 464194910, - 315200, - 464173310, - 315100, - 464151710, - 315000, - 464130110, - 314900, - 464108510, - 314800, - 464086910, - 314700, - 464065310, - 314600, - 464043710, - 314500, - 464022110, - 314400, - 464000510, - 314300, - 463978910, - 314200, - 463957310, - 314100, - 463935710, - 314000, - 463914110, - 313900, - 463892510, - 313800, - 463870910, - 313700, - 463849310, - 313600, - 463827710, - 313500, - 463806110, - 313400, - 463784510, - 313300, - 463762910, - 313200, - 463741310, - 313100, - 463719710, - 313000, - 463698110, - 312900, - 463676510, - 312800, - 463654910, - 312700, - 463633310, - 312600, - 463611710, - 312500, - 463590110, - 312400, - 463568510, - 312300, - 463546910, - 312200, - 463525310, - 312100, - 463503710, - 312000, - 463482110, - 311900, - 463460510, - 311800, - 463438910, - 311700, - 463417310, - 311600, - 463395710, - 311500, - 463374110, - 311400, - 463352510, - 311300, - 463330910, - 311200, - 463309310, - 311100, - 463287710, - 311000, - 463266110, - 310900, - 463244510, - 310800, - 463222910, - 310700, - 463201310, - 310600, - 463179710, - 310500, - 463158110, - 310400, - 463136510, - 310300, - 463114910, - 310200, - 463093310, - 310100, - 463071710, - 310000, - 463050110, - 309900, - 463028510, - 309800, - 463006910, - 309700, - 462985310, - 309600, - 462963710, - 309500, - 462942110, - 309400, - 462920510, - 309300, - 462898910, - 309200, - 462877310, - 309100, - 462855710, - 309000, - 462834110, - 308900, - 462812510, - 308800, - 462790910, - 308700, - 462769310, - 308600, - 462747710, - 308500, - 462726110, - 308400, - 462704510, - 308300, - 462682910, - 308200, - 462661310, - 308100, - 462639710, - 308000, - 462618110, - 307900, - 462596510, - 307800, - 462574910, - 307700, - 462553310, - 307600, - 462531710, - 307500, - 462510110, - 307400, - 462488510, - 307300, - 462466910, - 307200, - 462445310, - 307100, - 462423710, - 307000, - 462402110, - 306900, - 462380510, - 306800, - 462358910, - 306700, - 462337310, - 306600, - 462315710, - 306500, - 462294110, - 306400, - 462272510, - 306300, - 462250910, - 306200, - 462229310, - 306100, - 462207710, - 306000, - 462186110, - 305900, - 462164510, - 305800, - 462142910, - 305700, - 462121310, - 305600, - 462099710, - 305500, - 462078110, - 305400, - 462056510, - 305300, - 462034910, - 305200, - 462013310, - 305100, - 461991710, - 305000, - 461970110, - 304900, - 461948510, - 304800, - 461926910, - 304700, - 461905310, - 304600, - 461883710, - 304500, - 461862110, - 304400, - 461840510, - 304300, - 461818910, - 304200, - 461797310, - 304100, - 461775710, - 304000, - 461754110, - 303900, - 461732510, - 303800, - 461710910, - 303700, - 461689310, - 303600, - 461667710, - 303500, - 461646110, - 303400, - 461624510, - 303300, - 461602910, - 303200, - 461581310, - 303100, - 461559710, - 303000, - 461538110, - 302900, - 461516510, - 302800, - 461494910, - 302700, - 461473310, - 302600, - 461451710, - 302500, - 461430110, - 302400, - 461408510, - 302300, - 461386910, - 302200, - 461365310, - 302100, - 461343710, - 302000, - 461322110, - 301900, - 461300510, - 301800, - 461278910, - 301700, - 461257310, - 301600, - 461235710, - 301500, - 461214110, - 301400, - 461192510, - 301300, - 461170910, - 301200, - 461149310, - 301100, - 461127710, - 301000, - 461106110, - 300900, - 461084510, - 300800, - 461062910, - 300700, - 461041310, - 300600, - 461019710, - 300500, - 460998110, - 300400, - 460976510, - 300300, - 460954910, - 300200, - 460933310, - 300100, - 460911710, - 300000, - 460890110, - 299900, - 460868510, - 299800, - 460846910, - 299700, - 460825310, - 299600, - 460803710, - 299500, - 460782110, - 299400, - 460760510, - 299300, - 460738910, - 299200, - 460717310, - 299100, - 460695710, - 299000, - 460674110, - 298900, - 460652510, - 298800, - 460630910, - 298700, - 460609310, - 298600, - 460587710, - 298500, - 460566110, - 298400, - 460544510, - 298300, - 460522910, - 298200, - 460501310, - 298100, - 460479710, - 298000, - 460458110, - 297900, - 460436510, - 297800, - 460414910, - 297700, - 460393310, - 297600, - 460371710, - 297500, - 460350110, - 297400, - 460328510, - 297300, - 460306910, - 297200, - 460285310, - 297100, - 460263710, - 297000, - 460242110, - 296900, - 460220510, - 296800, - 460198910, - 296700, - 460177310, - 296600, - 460155710, - 296500, - 460134110, - 296400, - 460112510, - 296300, - 460090910, - 296200, - 460069310, - 296100, - 460047710, - 296000, - 460026110, - 295900, - 460004510, - 295800, - 459982910, - 295700, - 459961310, - 295600, - 459939710, - 295500, - 459918110, - 295400, - 459896510, - 295300, - 459874910, - 295200, - 459853310, - 295100, - 459831710, - 295000, - 459810110, - 294900, - 459788510, - 294800, - 459766910, - 294700, - 459745310, - 294600, - 459723710, - 294500, - 459702110, - 294400, - 459680510, - 294300, - 459658910, - 294200, - 459637310, - 294100, - 459615710, - 294000, - 459594110, - 293900, - 459572510, - 293800, - 459550910, - 293700, - 459529310, - 293600, - 459507710, - 293500, - 459486110, - 293400, - 459464510, - 293300, - 459442910, - 293200, - 459421310, - 293100, - 459399710, - 293000, - 459378110, - 292900, - 459356510, - 292800, - 459334910, - 292700, - 459313310, - 292600, - 459291710, - 292500, - 459270110, - 292400, - 459248510, - 292300, - 459226910, - 292200, - 459205310, - 292100, - 459183710, - 292000, - 459162110, - 291900, - 459140510, - 291800, - 459118910, - 291700, - 459097310, - 291600, - 459075710, - 291500, - 459054110, - 291400, - 459032510, - 291300, - 459010910, - 291200, - 458989310, - 291100, - 458967710, - 291000, - 458946110, - 290900, - 458924510, - 290800, - 458902910, - 290700, - 458881310, - 290600, - 458859710, - 290500, - 458838110, - 290400, - 458816510, - 290300, - 458794910, - 290200, - 458773310, - 290100, - 458751710, - 290000, - 458730110, - 289900, - 458708510, - 289800, - 458686910, - 289700, - 458665310, - 289600, - 458643710, - 289500, - 458622110, - 289400, - 458600510, - 289300, - 458578910, - 289200, - 458557310, - 289100, - 458535710, - 289000, - 458514110, - 288900, - 458492510, - 288800, - 458470910, - 288700, - 458449310, - 288600, - 458427710, - 288500, - 458406110, - 288400, - 458384510, - 288300, - 458362910, - 288200, - 458341310, - 288100, - 458319710, - 288000, - 458298110, - 287900, - 458276510, - 287800, - 458254910, - 287700, - 458233310, - 287600, - 458211710, - 287500, - 458190110, - 287400, - 458168510, - 287300, - 458146910, - 287200, - 458125310, - 287100, - 458103710, - 287000, - 458082110, - 286900, - 458060510, - 286800, - 458038910, - 286700, - 458017310, - 286600, - 457995710, - 286500, - 457974110, - 286400, - 457952510, - 286300, - 457930910, - 286200, - 457909310, - 286100, - 457887710, - 286000, - 457866110, - 285900, - 457844510, - 285800, - 457822910, - 285700, - 457801310, - 285600, - 457779710, - 285500, - 457758110, - 285400, - 457736510, - 285300, - 457714910, - 285200, - 457693310, - 285100, - 457671710, - 285000, - 457650110, - 284900, - 457628510, - 284800, - 457606910, - 284700, - 457585310, - 284600, - 457563710, - 284500, - 457542110, - 284400, - 457520510, - 284300, - 457498910, - 284200, - 457477310, - 284100, - 457455710, - 284000, - 457434110, - 283900, - 457412510, - 283800, - 457390910, - 283700, - 457369310, - 283600, - 457347710, - 283500, - 457326110, - 283400, - 457304510, - 283300, - 457282910, - 283200, - 457261310, - 283100, - 457239710, - 283000, - 457218110, - 282900, - 457196510, - 282800, - 457174910, - 282700, - 457153310, - 282600, - 457131710, - 282500, - 457110110, - 282400, - 457088510, - 282300, - 457066910, - 282200, - 457045310, - 282100, - 457023710, - 282000, - 457002110, - 281900, - 456980510, - 281800, - 456958910, - 281700, - 456937310, - 281600, - 456915710, - 281500, - 456894110, - 281400, - 456872510, - 281300, - 456850910, - 281200, - 456829310, - 281100, - 456807710, - 281000, - 456786110, - 280900, - 456764510, - 280800, - 456742910, - 280700, - 456721310, - 280600, - 456699710, - 280500, - 456678110, - 280400, - 456656510, - 280300, - 456634910, - 280200, - 456613310, - 280100, - 456591710, - 280000, - 456570110, - 279900, - 456548510, - 279800, - 456526910, - 279700, - 456505310, - 279600, - 456483710, - 279500, - 456462110, - 279400, - 456440510, - 279300, - 456418910, - 279200, - 456397310, - 279100, - 456375710, - 279000, - 456354110, - 278900, - 456332510, - 278800, - 456310910, - 278700, - 456289310, - 278600, - 456267710, - 278500, - 456246110, - 278400, - 456224510, - 278300, - 456202910, - 278200, - 456181310, - 278100, - 456159710, - 278000, - 456138110, - 277900, - 456116510, - 277800, - 456094910, - 277700, - 456073310, - 277600, - 456051710, - 277500, - 456030110, - 277400, - 456008510, - 277300, - 455986910, - 277200, - 455965310, - 277100, - 455943710, - 277000, - 455922110, - 276900, - 455900510, - 276800, - 455878910, - 276700, - 455857310, - 276600, - 455835710, - 276500, - 455814110, - 276400, - 455792510, - 276300, - 455770910, - 276200, - 455749310, - 276100, - 455727710, - 276000, - 455706110, - 275900, - 455684510, - 275800, - 455662910, - 275700, - 455641310, - 275600, - 455619710, - 275500, - 455598110, - 275400, - 455576510, - 275300, - 455554910, - 275200, - 455533310, - 275100, - 455511710, - 275000, - 455490110, - 274900, - 455468510, - 274800, - 455446910, - 274700, - 455425310, - 274600, - 455403710, - 274500, - 455382110, - 274400, - 455360510, - 274300, - 455338910, - 274200, - 455317310, - 274100, - 455295710, - 274000, - 455274110, - 273900, - 455252510, - 273800, - 455230910, - 273700, - 455209310, - 273600, - 455187710, - 273500, - 455166110, - 273400, - 455144510, - 273300, - 455122910, - 273200, - 455101310, - 273100, - 455079710, - 273000, - 455058110, - 272900, - 455036510, - 272800, - 455014910, - 272700, - 454993310, - 272600, - 454971710, - 272500, - 454950110, - 272400, - 454928510, - 272300, - 454906910, - 272200, - 454885310, - 272100, - 454863710, - 272000, - 454842110, - 271900, - 454820510, - 271800, - 454798910, - 271700, - 454777310, - 271600, - 454755710, - 271500, - 454734110, - 271400, - 454712510, - 271300, - 454690910, - 271200, - 454669310, - 271100, - 454647710, - 271000, - 454626110, - 270900, - 454604510, - 270800, - 454582910, - 270700, - 454561310, - 270600, - 454539710, - 270500, - 454518110, - 270400, - 454496510, - 270300, - 454474910, - 270200, - 454453310, - 270100, - 454431710, - 270000, - 454410110, - 269900, - 454388510, - 269800, - 454366910, - 269700, - 454345310, - 269600, - 454323710, - 269500, - 454302110, - 269400, - 454280510, - 269300, - 454258910, - 269200, - 454237310, - 269100, - 454215710, - 269000, - 454194110, - 268900, - 454172510, - 268800, - 454150910, - 268700, - 454129310, - 268600, - 454107710, - 268500, - 454086110, - 268400, - 454064510, - 268300, - 454042910, - 268200, - 454021310, - 268100, - 453999710, - 268000, - 453978110, - 267900, - 453956510, - 267800, - 453934910, - 267700, - 453913310, - 267600, - 453891710, - 267500, - 453870110, - 267400, - 453848510, - 267300, - 453826910, - 267200, - 453805310, - 267100, - 453783710, - 267000, - 453762110, - 266900, - 453740510, - 266800, - 453718910, - 266700, - 453697310, - 266600, - 453675710, - 266500, - 453654110, - 266400, - 453632510, - 266300, - 453610910, - 266200, - 453589310, - 266100, - 453567710, - 266000, - 453546110, - 265900, - 453524510, - 265800, - 453502910, - 265700, - 453481310, - 265600, - 453459710, - 265500, - 453438110, - 265400, - 453416510, - 265300, - 453394910, - 265200, - 453373310, - 265100, - 453351710, - 265000, - 453330110, - 264900, - 453308510, - 264800, - 453286910, - 264700, - 453265310, - 264600, - 453243710, - 264500, - 453222110, - 264400, - 453200510, - 264300, - 453178910, - 264200, - 453157310, - 264100, - 453135710, - 264000, - 453114110, - 263900, - 453092510, - 263800, - 453070910, - 263700, - 453049310, - 263600, - 453027710, - 263500, - 453006110, - 263400, - 452984510, - 263300, - 452962910, - 263200, - 452941310, - 263100, - 452919710, - 263000, - 452898110, - 262900, - 452876510, - 262800, - 452854910, - 262700, - 452833310, - 262600, - 452811710, - 262500, - 452790110, - 262400, - 452768510, - 262300, - 452746910, - 262200, - 452725310, - 262100, - 452703710, - 262000, - 452682110, - 261900, - 452660510, - 261800, - 452638910, - 261700, - 452617310, - 261600, - 452595710, - 261500, - 452574110, - 261400, - 452552510, - 261300, - 452530910, - 261200, - 452509310, - 261100, - 452487710, - 261000, - 452466110, - 260900, - 452444510, - 260800, - 452422910, - 260700, - 452401310, - 260600, - 452379710, - 260500, - 452358110, - 260400, - 452336510, - 260300, - 452314910, - 260200, - 452293310, - 260100, - 452271710, - 260000, - 452250110, - 259900, - 452228510, - 259800, - 452206910, - 259700, - 452185310, - 259600, - 452163710, - 259500, - 452142110, - 259400, - 452120510, - 259300, - 452098910, - 259200, - 452077310, - 259100, - 452055710, - 259000, - 452034110, - 258900, - 452012510, - 258800, - 451990910, - 258700, - 451969310, - 258600, - 451947710, - 258500, - 451926110, - 258400, - 451904510, - 258300, - 451882910, - 258200, - 451861310, - 258100, - 451839710, - 258000, - 451818110, - 257900, - 451796510, - 257800, - 451774910, - 257700, - 451753310, - 257600, - 451731710, - 257500, - 451710110, - 257400, - 451688510, - 257300, - 451666910, - 257200, - 451645310, - 257100, - 451623710, - 257000, - 451602110, - 256900, - 451580510, - 256800, - 451558910, - 256700, - 451537310, - 256600, - 451515710, - 256500, - 451494110, - 256400, - 451472510, - 256300, - 451450910, - 256200, - 451429310, - 256100, - 451407710, - 256000, - 451386110, - 255900, - 451364510, - 255800, - 451342910, - 255700, - 451321310, - 255600, - 451299710, - 255500, - 451278110, - 255400, - 451256510, - 255300, - 451234910, - 255200, - 451213310, - 255100, - 451191710, - 255000, - 451170110, - 254900, - 451148510, - 254800, - 451126910, - 254700, - 451105310, - 254600, - 451083710, - 254500, - 451062110, - 254400, - 451040510, - 254300, - 451018910, - 254200, - 450997310, - 254100, - 450975710, - 254000, - 450954110, - 253900, - 450932510, - 253800, - 450910910, - 253700, - 450889310, - 253600, - 450867710, - 253500, - 450846110, - 253400, - 450824510, - 253300, - 450802910, - 253200, - 450781310, - 253100, - 450759710, - 253000, - 450738110, - 252900, - 450716510, - 252800, - 450694910, - 252700, - 450673310, - 252600, - 450651710, - 252500, - 450630110, - 252400, - 450608510, - 252300, - 450586910, - 252200, - 450565310, - 252100, - 450543710, - 252000, - 450522110, - 251900, - 450500510, - 251800, - 450478910, - 251700, - 450457310, - 251600, - 450435710, - 251500, - 450414110, - 251400, - 450392510, - 251300, - 450370910, - 251200, - 450349310, - 251100, - 450327710, - 251000, - 450306110, - 250900, - 450284510, - 250800, - 450262910, - 250700, - 450241310, - 250600, - 450219710, - 250500, - 450198110, - 250400, - 450176510, - 250300, - 450154910, - 250200, - 450133310, - 250100, - 450111710, - 250000, - 450090110, - 249900, - 450068510, - 249800, - 450046910, - 249700, - 450025310, - 249600, - 450003710, - 249500, - 449982110, - 249400, - 449960510, - 249300, - 449938910, - 249200, - 449917310, - 249100, - 449895710, - 249000, - 449874110, - 248900, - 449852510, - 248800, - 449830910, - 248700, - 449809310, - 248600, - 449787710, - 248500, - 449766110, - 248400, - 449744510, - 248300, - 449722910, - 248200, - 449701310, - 248100, - 449679710, - 248000, - 449658110, - 247900, - 449636510, - 247800, - 449614910, - 247700, - 449593310, - 247600, - 449571710, - 247500, - 449550110, - 247400, - 449528510, - 247300, - 449506910, - 247200, - 449485310, - 247100, - 449463710, - 247000, - 449442110, - 246900, - 449420510, - 246800, - 449398910, - 246700, - 449377310, - 246600, - 449355710, - 246500, - 449334110, - 246400, - 449312510, - 246300, - 449290910, - 246200, - 449269310, - 246100, - 449247710, - 246000, - 449226110, - 245900, - 449204510, - 245800, - 449182910, - 245700, - 449161310, - 245600, - 449139710, - 245500, - 449118110, - 245400, - 449096510, - 245300, - 449074910, - 245200, - 449053310, - 245100, - 449031710, - 245000, - 449010110, - 244900, - 448988510, - 244800, - 448966910, - 244700, - 448945310, - 244600, - 448923710, - 244500, - 448902110, - 244400, - 448880510, - 244300, - 448858910, - 244200, - 448837310, - 244100, - 448815710, - 244000, - 448794110, - 243900, - 448772510, - 243800, - 448750910, - 243700, - 448729310, - 243600, - 448707710, - 243500, - 448686110, - 243400, - 448664510, - 243300, - 448642910, - 243200, - 448621310, - 243100, - 448599710, - 243000, - 448578110, - 242900, - 448556510, - 242800, - 448534910, - 242700, - 448513310, - 242600, - 448491710, - 242500, - 448470110, - 242400, - 448448510, - 242300, - 448426910, - 242200, - 448405310, - 242100, - 448383710, - 242000, - 448362110, - 241900, - 448340510, - 241800, - 448318910, - 241700, - 448297310, - 241600, - 448275710, - 241500, - 448254110, - 241400, - 448232510, - 241300, - 448210910, - 241200, - 448189310, - 241100, - 448167710, - 241000, - 448146110, - 240900, - 448124510, - 240800, - 448102910, - 240700, - 448081310, - 240600, - 448059710, - 240500, - 448038110, - 240400, - 448016510, - 240300, - 447994910, - 240200, - 447973310, - 240100, - 447951710, - 240000, - 447930110, - 239900, - 447908510, - 239800, - 447886910, - 239700, - 447865310, - 239600, - 447843710, - 239500, - 447822110, - 239400, - 447800510, - 239300, - 447778910, - 239200, - 447757310, - 239100, - 447735710, - 239000, - 447714110, - 238900, - 447692510, - 238800, - 447670910, - 238700, - 447649310, - 238600, - 447627710, - 238500, - 447606110, - 238400, - 447584510, - 238300, - 447562910, - 238200, - 447541310, - 238100, - 447519710, - 238000, - 447498110, - 237900, - 447476510, - 237800, - 447454910, - 237700, - 447433310, - 237600, - 447411710, - 237500, - 447390110, - 237400, - 447368510, - 237300, - 447346910, - 237200, - 447325310, - 237100, - 447303710, - 237000, - 447282110, - 236900, - 447260510, - 236800, - 447238910, - 236700, - 447217310, - 236600, - 447195710, - 236500, - 447174110, - 236400, - 447152510, - 236300, - 447130910, - 236200, - 447109310, - 236100, - 447087710, - 236000, - 447066110, - 235900, - 447044510, - 235800, - 447022910, - 235700, - 447001310, - 235600, - 446979710, - 235500, - 446958110, - 235400, - 446936510, - 235300, - 446914910, - 235200, - 446893310, - 235100, - 446871710, - 235000, - 446850110, - 234900, - 446828510, - 234800, - 446806910, - 234700, - 446785310, - 234600, - 446763710, - 234500, - 446742110, - 234400, - 446720510, - 234300, - 446698910, - 234200, - 446677310, - 234100, - 446655710, - 234000, - 446634110, - 233900, - 446612510, - 233800, - 446590910, - 233700, - 446569310, - 233600, - 446547710, - 233500, - 446526110, - 233400, - 446504510, - 233300, - 446482910, - 233200, - 446461310, - 233100, - 446439710, - 233000, - 446418110, - 232900, - 446396510, - 232800, - 446374910, - 232700, - 446353310, - 232600, - 446331710, - 232500, - 446310110, - 232400, - 446288510, - 232300, - 446266910, - 232200, - 446245310, - 232100, - 446223710, - 232000, - 446202110, - 231900, - 446180510, - 231800, - 446158910, - 231700, - 446137310, - 231600, - 446115710, - 231500, - 446094110, - 231400, - 446072510, - 231300, - 446050910, - 231200, - 446029310, - 231100, - 446007710, - 231000, - 445986110, - 230900, - 445964510, - 230800, - 445942910, - 230700, - 445921310, - 230600, - 445899710, - 230500, - 445878110, - 230400, - 445856510, - 230300, - 445834910, - 230200, - 445813310, - 230100, - 445791710, - 230000, - 445770110, - 229900, - 445748510, - 229800, - 445726910, - 229700, - 445705310, - 229600, - 445683710, - 229500, - 445662110, - 229400, - 445640510, - 229300, - 445618910, - 229200, - 445597310, - 229100, - 445575710, - 229000, - 445554110, - 228900, - 445532510, - 228800, - 445510910, - 228700, - 445489310, - 228600, - 445467710, - 228500, - 445446110, - 228400, - 445424510, - 228300, - 445402910, - 228200, - 445381310, - 228100, - 445359710, - 228000, - 445338110, - 227900, - 445316510, - 227800, - 445294910, - 227700, - 445273310, - 227600, - 445251710, - 227500, - 445230110, - 227400, - 445208510, - 227300, - 445186910, - 227200, - 445165310, - 227100, - 445143710, - 227000, - 445122110, - 226900, - 445100510, - 226800, - 445078910, - 226700, - 445057310, - 226600, - 445035710, - 226500, - 445014110, - 226400, - 444992510, - 226300, - 444970910, - 226200, - 444949310, - 226100, - 444927710, - 226000, - 444906110, - 225900, - 444884510, - 225800, - 444862910, - 225700, - 444841310, - 225600, - 444819710, - 225500, - 444798110, - 225400, - 444776510, - 225300, - 444754910, - 225200, - 444733310, - 225100, - 444711710, - 225000, - 444690110, - 224900, - 444668510, - 224800, - 444646910, - 224700, - 444625310, - 224600, - 444603710, - 224500, - 444582110, - 224400, - 444560510, - 224300, - 444538910, - 224200, - 444517310, - 224100, - 444495710, - 224000, - 444474110, - 223900, - 444452510, - 223800, - 444430910, - 223700, - 444409310, - 223600, - 444387710, - 223500, - 444366110, - 223400, - 444344510, - 223300, - 444322910, - 223200, - 444301310, - 223100, - 444279710, - 223000, - 444258110, - 222900, - 444236510, - 222800, - 444214910, - 222700, - 444193310, - 222600, - 444171710, - 222500, - 444150110, - 222400, - 444128510, - 222300, - 444106910, - 222200, - 444085310, - 222100, - 444063710, - 222000, - 444042110, - 221900, - 444020510, - 221800, - 443998910, - 221700, - 443977310, - 221600, - 443955710, - 221500, - 443934110, - 221400, - 443912510, - 221300, - 443890910, - 221200, - 443869310, - 221100, - 443847710, - 221000, - 443826110, - 220900, - 443804510, - 220800, - 443782910, - 220700, - 443761310, - 220600, - 443739710, - 220500, - 443718110, - 220400, - 443696510, - 220300, - 443674910, - 220200, - 443653310, - 220100, - 443631710, - 220000, - 443610110, - 219900, - 443588510, - 219800, - 443566910, - 219700, - 443545310, - 219600, - 443523710, - 219500, - 443502110, - 219400, - 443480510, - 219300, - 443458910, - 219200, - 443437310, - 219100, - 443415710, - 219000, - 443394110, - 218900, - 443372510, - 218800, - 443350910, - 218700, - 443329310, - 218600, - 443307710, - 218500, - 443286110, - 218400, - 443264510, - 218300, - 443242910, - 218200, - 443221310, - 218100, - 443199710, - 218000, - 443178110, - 217900, - 443156510, - 217800, - 443134910, - 217700, - 443113310, - 217600, - 443091710, - 217500, - 443070110, - 217400, - 443048510, - 217300, - 443026910, - 217200, - 443005310, - 217100, - 442983710, - 217000, - 442962110, - 216900, - 442940510, - 216800, - 442918910, - 216700, - 442897310, - 216600, - 442875710, - 216500, - 442854110, - 216400, - 442832510, - 216300, - 442810910, - 216200, - 442789310, - 216100, - 442767710, - 216000, - 442746110, - 215900, - 442724510, - 215800, - 442702910, - 215700, - 442681310, - 215600, - 442659710, - 215500, - 442638110, - 215400, - 442616510, - 215300, - 442594910, - 215200, - 442573310, - 215100, - 442551710, - 215000, - 442530110, - 214900, - 442508510, - 214800, - 442486910, - 214700, - 442465310, - 214600, - 442443710, - 214500, - 442422110, - 214400, - 442400510, - 214300, - 442378910, - 214200, - 442357310, - 214100, - 442335710, - 214000, - 442314110, - 213900, - 442292510, - 213800, - 442270910, - 213700, - 442249310, - 213600, - 442227710, - 213500, - 442206110, - 213400, - 442184510, - 213300, - 442162910, - 213200, - 442141310, - 213100, - 442119710, - 213000, - 442098110, - 212900, - 442076510, - 212800, - 442054910, - 212700, - 442033310, - 212600, - 442011710, - 212500, - 441990110, - 212400, - 441968510, - 212300, - 441946910, - 212200, - 441925310, - 212100, - 441903710, - 212000, - 441882110, - 211900, - 441860510, - 211800, - 441838910, - 211700, - 441817310, - 211600, - 441795710, - 211500, - 441774110, - 211400, - 441752510, - 211300, - 441730910, - 211200, - 441709310, - 211100, - 441687710, - 211000, - 441666110, - 210900, - 441644510, - 210800, - 441622910, - 210700, - 441601310, - 210600, - 441579710, - 210500, - 441558110, - 210400, - 441536510, - 210300, - 441514910, - 210200, - 441493310, - 210100, - 441471710, - 210000, - 441450110, - 209900, - 441428510, - 209800, - 441406910, - 209700, - 441385310, - 209600, - 441363710, - 209500, - 441342110, - 209400, - 441320510, - 209300, - 441298910, - 209200, - 441277310, - 209100, - 441255710, - 209000, - 441234110, - 208900, - 441212510, - 208800, - 441190910, - 208700, - 441169310, - 208600, - 441147710, - 208500, - 441126110, - 208400, - 441104510, - 208300, - 441082910, - 208200, - 441061310, - 208100, - 441039710, - 208000, - 441018110, - 207900, - 440996510, - 207800, - 440974910, - 207700, - 440953310, - 207600, - 440931710, - 207500, - 440910110, - 207400, - 440888510, - 207300, - 440866910, - 207200, - 440845310, - 207100, - 440823710, - 207000, - 440802110, - 206900, - 440780510, - 206800, - 440758910, - 206700, - 440737310, - 206600, - 440715710, - 206500, - 440694110, - 206400, - 440672510, - 206300, - 440650910, - 206200, - 440629310, - 206100, - 440607710, - 206000, - 440586110, - 205900, - 440564510, - 205800, - 440542910, - 205700, - 440521310, - 205600, - 440499710, - 205500, - 440478110, - 205400, - 440456510, - 205300, - 440434910, - 205200, - 440413310, - 205100, - 440391710, - 205000, - 440370110, - 204900, - 440348510, - 204800, - 440326910, - 204700, - 440305310, - 204600, - 440283710, - 204500, - 440262110, - 204400, - 440240510, - 204300, - 440218910, - 204200, - 440197310, - 204100, - 440175710, - 204000, - 440154110, - 203900, - 440132510, - 203800, - 440110910, - 203700, - 440089310, - 203600, - 440067710, - 203500, - 440046110, - 203400, - 440024510, - 203300, - 440002910, - 203200, - 439981310, - 203100, - 439959710, - 203000, - 439938110, - 202900, - 439916510, - 202800, - 439894910, - 202700, - 439873310, - 202600, - 439851710, - 202500, - 439830110, - 202400, - 439808510, - 202300, - 439786910, - 202200, - 439765310, - 202100, - 439743710, - 202000, - 439722110, - 201900, - 439700510, - 201800, - 439678910, - 201700, - 439657310, - 201600, - 439635710, - 201500, - 439614110, - 201400, - 439592510, - 201300, - 439570910, - 201200, - 439549310, - 201100, - 439527710, - 201000, - 439506110, - 200900, - 439484510, - 200800, - 439462910, - 200700, - 439441310, - 200600, - 439419710, - 200500, - 439398110, - 200400, - 439376510, - 200300, - 439354910, - 200200, - 439333310, - 200100, - 439311710, - 200000, - 439290110, - 199900, - 439268510, - 199800, - 439246910, - 199700, - 439225310, - 199600, - 439203710, - 199500, - 439182110, - 199400, - 439160510, - 199300, - 439138910, - 199200, - 439117310, - 199100, - 439095710, - 199000, - 439074110, - 198900, - 439052510, - 198800, - 439030910, - 198700, - 439009310, - 198600, - 438987710, - 198500, - 438966110, - 198400, - 438944510, - 198300, - 438922910, - 198200, - 438901310, - 198100, - 438879710, - 198000, - 438858110, - 197900, - 438836510, - 197800, - 438814910, - 197700, - 438793310, - 197600, - 438771710, - 197500, - 438750110, - 197400, - 438728510, - 197300, - 438706910, - 197200, - 438685310, - 197100, - 438663710, - 197000, - 438642110, - 196900, - 438620510, - 196800, - 438598910, - 196700, - 438577310, - 196600, - 438555710, - 196500, - 438534110, - 196400, - 438512510, - 196300, - 438490910, - 196200, - 438469310, - 196100, - 438447710, - 196000, - 438426110, - 195900, - 438404510, - 195800, - 438382910, - 195700, - 438361310, - 195600, - 438339710, - 195500, - 438318110, - 195400, - 438296510, - 195300, - 438274910, - 195200, - 438253310, - 195100, - 438231710, - 195000, - 438210110, - 194900, - 438188510, - 194800, - 438166910, - 194700, - 438145310, - 194600, - 438123710, - 194500, - 438102110, - 194400, - 438080510, - 194300, - 438058910, - 194200, - 438037310, - 194100, - 438015710, - 194000, - 437994110, - 193900, - 437972510, - 193800, - 437950910, - 193700, - 437929310, - 193600, - 437907710, - 193500, - 437886110, - 193400, - 437864510, - 193300, - 437842910, - 193200, - 437821310, - 193100, - 437799710, - 193000, - 437778110, - 192900, - 437756510, - 192800, - 437734910, - 192700, - 437713310, - 192600, - 437691710, - 192500, - 437670110, - 192400, - 437648510, - 192300, - 437626910, - 192200, - 437605310, - 192100, - 437583710, - 192000, - 437562110, - 191900, - 437540510, - 191800, - 437518910, - 191700, - 437497310, - 191600, - 437475710, - 191500, - 437454110, - 191400, - 437432510, - 191300, - 437410910, - 191200, - 437389310, - 191100, - 437367710, - 191000, - 437346110, - 190900, - 437324510, - 190800, - 437302910, - 190700, - 437281310, - 190600, - 437259710, - 190500, - 437238110, - 190400, - 437216510, - 190300, - 437194910, - 190200, - 437173310, - 190100, - 437151710, - 190000, - 437130110, - 189900, - 437108510, - 189800, - 437086910, - 189700, - 437065310, - 189600, - 437043710, - 189500, - 437022110, - 189400, - 437000510, - 189300, - 436978910, - 189200, - 436957310, - 189100, - 436935710, - 189000, - 436914110, - 188900, - 436892510, - 188800, - 436870910, - 188700, - 436849310, - 188600, - 436827710, - 188500, - 436806110, - 188400, - 436784510, - 188300, - 436762910, - 188200, - 436741310, - 188100, - 436719710, - 188000, - 436698110, - 187900, - 436676510, - 187800, - 436654910, - 187700, - 436633310, - 187600, - 436611710, - 187500, - 436590110, - 187400, - 436568510, - 187300, - 436546910, - 187200, - 436525310, - 187100, - 436503710, - 187000, - 436482110, - 186900, - 436460510, - 186800, - 436438910, - 186700, - 436417310, - 186600, - 436395710, - 186500, - 436374110, - 186400, - 436352510, - 186300, - 436330910, - 186200, - 436309310, - 186100, - 436287710, - 186000, - 436266110, - 185900, - 436244510, - 185800, - 436222910, - 185700, - 436201310, - 185600, - 436179710, - 185500, - 436158110, - 185400, - 436136510, - 185300, - 436114910, - 185200, - 436093310, - 185100, - 436071710, - 185000, - 436050110, - 184900, - 436028510, - 184800, - 436006910, - 184700, - 435985310, - 184600, - 435963710, - 184500, - 435942110, - 184400, - 435920510, - 184300, - 435898910, - 184200, - 435877310, - 184100, - 435855710, - 184000, - 435834110, - 183900, - 435812510, - 183800, - 435790910, - 183700, - 435769310, - 183600, - 435747710, - 183500, - 435726110, - 183400, - 435704510, - 183300, - 435682910, - 183200, - 435661310, - 183100, - 435639710, - 183000, - 435618110, - 182900, - 435596510, - 182800, - 435574910, - 182700, - 435553310, - 182600, - 435531710, - 182500, - 435510110, - 182400, - 435488510, - 182300, - 435466910, - 182200, - 435445310, - 182100, - 435423710, - 182000, - 435402110, - 181900, - 435380510, - 181800, - 435358910, - 181700, - 435337310, - 181600, - 435315710, - 181500, - 435294110, - 181400, - 435272510, - 181300, - 435250910, - 181200, - 435229310, - 181100, - 435207710, - 181000, - 435186110, - 180900, - 435164510, - 180800, - 435142910, - 180700, - 435121310, - 180600, - 435099710, - 180500, - 435078110, - 180400, - 435056510, - 180300, - 435034910, - 180200, - 435013310, - 180100, - 434991710, - 180000, - 434970110, - 179900, - 434948510, - 179800, - 434926910, - 179700, - 434905310, - 179600, - 434883710, - 179500, - 434862110, - 179400, - 434840510, - 179300, - 434818910, - 179200, - 434797310, - 179100, - 434775710, - 179000, - 434754110, - 178900, - 434732510, - 178800, - 434710910, - 178700, - 434689310, - 178600, - 434667710, - 178500, - 434646110, - 178400, - 434624510, - 178300, - 434602910, - 178200, - 434581310, - 178100, - 434559710, - 178000, - 434538110, - 177900, - 434516510, - 177800, - 434494910, - 177700, - 434473310, - 177600, - 434451710, - 177500, - 434430110, - 177400, - 434408510, - 177300, - 434386910, - 177200, - 434365310, - 177100, - 434343710, - 177000, - 434322110, - 176900, - 434300510, - 176800, - 434278910, - 176700, - 434257310, - 176600, - 434235710, - 176500, - 434214110, - 176400, - 434192510, - 176300, - 434170910, - 176200, - 434149310, - 176100, - 434127710, - 176000, - 434106110, - 175900, - 434084510, - 175800, - 434062910, - 175700, - 434041310, - 175600, - 434019710, - 175500, - 433998110, - 175400, - 433976510, - 175300, - 433954910, - 175200, - 433933310, - 175100, - 433911710, - 175000, - 433890110, - 174900, - 433868510, - 174800, - 433846910, - 174700, - 433825310, - 174600, - 433803710, - 174500, - 433782110, - 174400, - 433760510, - 174300, - 433738910, - 174200, - 433717310, - 174100, - 433695710, - 174000, - 433674110, - 173900, - 433652510, - 173800, - 433630910, - 173700, - 433609310, - 173600, - 433587710, - 173500, - 433566110, - 173400, - 433544510, - 173300, - 433522910, - 173200, - 433501310, - 173100, - 433479710, - 173000, - 433458110, - 172900, - 433436510, - 172800, - 433414910, - 172700, - 433393310, - 172600, - 433371710, - 172500, - 433350110, - 172400, - 433328510, - 172300, - 433306910, - 172200, - 433285310, - 172100, - 433263710, - 172000, - 433242110, - 171900, - 433220510, - 171800, - 433198910, - 171700, - 433177310, - 171600, - 433155710, - 171500, - 433134110, - 171400, - 433112510, - 171300, - 433090910, - 171200, - 433069310, - 171100, - 433047710, - 171000, - 433026110, - 170900, - 433004510, - 170800, - 432982910, - 170700, - 432961310, - 170600, - 432939710, - 170500, - 432918110, - 170400, - 432896510, - 170300, - 432874910, - 170200, - 432853310, - 170100, - 432831710, - 170000, - 432810110, - 169900, - 432788510, - 169800, - 432766910, - 169700, - 432745310, - 169600, - 432723710, - 169500, - 432702110, - 169400, - 432680510, - 169300, - 432658910, - 169200, - 432637310, - 169100, - 432615710, - 169000, - 432594110, - 168900, - 432572510, - 168800, - 432550910, - 168700, - 432529310, - 168600, - 432507710, - 168500, - 432486110, - 168400, - 432464510, - 168300, - 432442910, - 168200, - 432421310, - 168100, - 432399710, - 168000, - 432378110, - 167900, - 432356510, - 167800, - 432334910, - 167700, - 432313310, - 167600, - 432291710, - 167500, - 432270110, - 167400, - 432248510, - 167300, - 432226910, - 167200, - 432205310, - 167100, - 432183710, - 167000, - 432162110, - 166900, - 432140510, - 166800, - 432118910, - 166700, - 432097310, - 166600, - 432075710, - 166500, - 432054110, - 166400, - 432032510, - 166300, - 432010910, - 166200, - 431989310, - 166100, - 431967710, - 166000, - 431946110, - 165900, - 431924510, - 165800, - 431902910, - 165700, - 431881310, - 165600, - 431859710, - 165500, - 431838110, - 165400, - 431816510, - 165300, - 431794910, - 165200, - 431773310, - 165100, - 431751710, - 165000, - 431730110, - 164900, - 431708510, - 164800, - 431686910, - 164700, - 431665310, - 164600, - 431643710, - 164500, - 431622110, - 164400, - 431600510, - 164300, - 431578910, - 164200, - 431557310, - 164100, - 431535710, - 164000, - 431514110, - 163900, - 431492510, - 163800, - 431470910, - 163700, - 431449310, - 163600, - 431427710, - 163500, - 431406110, - 163400, - 431384510, - 163300, - 431362910, - 163200, - 431341310, - 163100, - 431319710, - 163000, - 431298110, - 162900, - 431276510, - 162800, - 431254910, - 162700, - 431233310, - 162600, - 431211710, - 162500, - 431190110, - 162400, - 431168510, - 162300, - 431146910, - 162200, - 431125310, - 162100, - 431103710, - 162000, - 431082110, - 161900, - 431060510, - 161800, - 431038910, - 161700, - 431017310, - 161600, - 430995710, - 161500, - 430974110, - 161400, - 430952510, - 161300, - 430930910, - 161200, - 430909310, - 161100, - 430887710, - 161000, - 430866110, - 160900, - 430844510, - 160800, - 430822910, - 160700, - 430801310, - 160600, - 430779710, - 160500, - 430758110, - 160400, - 430736510, - 160300, - 430714910, - 160200, - 430693310, - 160100, - 430671710, - 160000, - 430650110, - 159900, - 430628510, - 159800, - 430606910, - 159700, - 430585310, - 159600, - 430563710, - 159500, - 430542110, - 159400, - 430520510, - 159300, - 430498910, - 159200, - 430477310, - 159100, - 430455710, - 159000, - 430434110, - 158900, - 430412510, - 158800, - 430390910, - 158700, - 430369310, - 158600, - 430347710, - 158500, - 430326110, - 158400, - 430304510, - 158300, - 430282910, - 158200, - 430261310, - 158100, - 430239710, - 158000, - 430218110, - 157900, - 430196510, - 157800, - 430174910, - 157700, - 430153310, - 157600, - 430131710, - 157500, - 430110110, - 157400, - 430088510, - 157300, - 430066910, - 157200, - 430045310, - 157100, - 430023710, - 157000, - 430002110, - 156900, - 429980510, - 156800, - 429958910, - 156700, - 429937310, - 156600, - 429915710, - 156500, - 429894110, - 156400, - 429872510, - 156300, - 429850910, - 156200, - 429829310, - 156100, - 429807710, - 156000, - 429786110, - 155900, - 429764510, - 155800, - 429742910, - 155700, - 429721310, - 155600, - 429699710, - 155500, - 429678110, - 155400, - 429656510, - 155300, - 429634910, - 155200, - 429613310, - 155100, - 429591710, - 155000, - 429570110, - 154900, - 429548510, - 154800, - 429526910, - 154700, - 429505310, - 154600, - 429483710, - 154500, - 429462110, - 154400, - 429440510, - 154300, - 429418910, - 154200, - 429397310, - 154100, - 429375710, - 154000, - 429354110, - 153900, - 429332510, - 153800, - 429310910, - 153700, - 429289310, - 153600, - 429267710, - 153500, - 429246110, - 153400, - 429224510, - 153300, - 429202910, - 153200, - 429181310, - 153100, - 429159710, - 153000, - 429138110, - 152900, - 429116510, - 152800, - 429094910, - 152700, - 429073310, - 152600, - 429051710, - 152500, - 429030110, - 152400, - 429008510, - 152300, - 428986910, - 152200, - 428965310, - 152100, - 428943710, - 152000, - 428922110, - 151900, - 428900510, - 151800, - 428878910, - 151700, - 428857310, - 151600, - 428835710, - 151500, - 428814110, - 151400, - 428792510, - 151300, - 428770910, - 151200, - 428749310, - 151100, - 428727710, - 151000, - 428706110, - 150900, - 428684510, - 150800, - 428662910, - 150700, - 428641310, - 150600, - 428619710, - 150500, - 428598110, - 150400, - 428576510, - 150300, - 428554910, - 150200, - 428533310, - 150100, - 428511710, - 150000, - 428490110, - 149900, - 428468510, - 149800, - 428446910, - 149700, - 428425310, - 149600, - 428403710, - 149500, - 428382110, - 149400, - 428360510, - 149300, - 428338910, - 149200, - 428317310, - 149100, - 428295710, - 149000, - 428274110, - 148900, - 428252510, - 148800, - 428230910, - 148700, - 428209310, - 148600, - 428187710, - 148500, - 428166110, - 148400, - 428144510, - 148300, - 428122910, - 148200, - 428101310, - 148100, - 428079710, - 148000, - 428058110, - 147900, - 428036510, - 147800, - 428014910, - 147700, - 427993310, - 147600, - 427971710, - 147500, - 427950110, - 147400, - 427928510, - 147300, - 427906910, - 147200, - 427885310, - 147100, - 427863710, - 147000, - 427842110, - 146900, - 427820510, - 146800, - 427798910, - 146700, - 427777310, - 146600, - 427755710, - 146500, - 427734110, - 146400, - 427712510, - 146300, - 427690910, - 146200, - 427669310, - 146100, - 427647710, - 146000, - 427626110, - 145900, - 427604510, - 145800, - 427582910, - 145700, - 427561310, - 145600, - 427539710, - 145500, - 427518110, - 145400, - 427496510, - 145300, - 427474910, - 145200, - 427453310, - 145100, - 427431710, - 145000, - 427410110, - 144900, - 427388510, - 144800, - 427366910, - 144700, - 427345310, - 144600, - 427323710, - 144500, - 427302110, - 144400, - 427280510, - 144300, - 427258910, - 144200, - 427237310, - 144100, - 427215710, - 144000, - 427194110, - 143900, - 427172510, - 143800, - 427150910, - 143700, - 427129310, - 143600, - 427107710, - 143500, - 427086110, - 143400, - 427064510, - 143300, - 427042910, - 143200, - 427021310, - 143100, - 426999710, - 143000, - 426978110, - 142900, - 426956510, - 142800, - 426934910, - 142700, - 426913310, - 142600, - 426891710, - 142500, - 426870110, - 142400, - 426848510, - 142300, - 426826910, - 142200, - 426805310, - 142100, - 426783710, - 142000, - 426762110, - 141900, - 426740510, - 141800, - 426718910, - 141700, - 426697310, - 141600, - 426675710, - 141500, - 426654110, - 141400, - 426632510, - 141300, - 426610910, - 141200, - 426589310, - 141100, - 426567710, - 141000, - 426546110, - 140900, - 426524510, - 140800, - 426502910, - 140700, - 426481310, - 140600, - 426459710, - 140500, - 426438110, - 140400, - 426416510, - 140300, - 426394910, - 140200, - 426373310, - 140100, - 426351710, - 140000, - 426330110, - 139900, - 426308510, - 139800, - 426286910, - 139700, - 426265310, - 139600, - 426243710, - 139500, - 426222110, - 139400, - 426200510, - 139300, - 426178910, - 139200, - 426157310, - 139100, - 426135710, - 139000, - 426114110, - 138900, - 426092510, - 138800, - 426070910, - 138700, - 426049310, - 138600, - 426027710, - 138500, - 426006110, - 138400, - 425984510, - 138300, - 425962910, - 138200, - 425941310, - 138100, - 425919710, - 138000, - 425898110, - 137900, - 425876510, - 137800, - 425854910, - 137700, - 425833310, - 137600, - 425811710, - 137500, - 425790110, - 137400, - 425768510, - 137300, - 425746910, - 137200, - 425725310, - 137100, - 425703710, - 137000, - 425682110, - 136900, - 425660510, - 136800, - 425638910, - 136700, - 425617310, - 136600, - 425595710, - 136500, - 425574110, - 136400, - 425552510, - 136300, - 425530910, - 136200, - 425509310, - 136100, - 425487710, - 136000, - 425466110, - 135900, - 425444510, - 135800, - 425422910, - 135700, - 425401310, - 135600, - 425379710, - 135500, - 425358110, - 135400, - 425336510, - 135300, - 425314910, - 135200, - 425293310, - 135100, - 425271710, - 135000, - 425250110, - 134900, - 425228510, - 134800, - 425206910, - 134700, - 425185310, - 134600, - 425163710, - 134500, - 425142110, - 134400, - 425120510, - 134300, - 425098910, - 134200, - 425077310, - 134100, - 425055710, - 134000, - 425034110, - 133900, - 425012510, - 133800, - 424990910, - 133700, - 424969310, - 133600, - 424947710, - 133500, - 424926110, - 133400, - 424904510, - 133300, - 424882910, - 133200, - 424861310, - 133100, - 424839710, - 133000, - 424818110, - 132900, - 424796510, - 132800, - 424774910, - 132700, - 424753310, - 132600, - 424731710, - 132500, - 424710110, - 132400, - 424688510, - 132300, - 424666910, - 132200, - 424645310, - 132100, - 424623710, - 132000, - 424602110, - 131900, - 424580510, - 131800, - 424558910, - 131700, - 424537310, - 131600, - 424515710, - 131500, - 424494110, - 131400, - 424472510, - 131300, - 424450910, - 131200, - 424429310, - 131100, - 424407710, - 131000, - 424386110, - 130900, - 424364510, - 130800, - 424342910, - 130700, - 424321310, - 130600, - 424299710, - 130500, - 424278110, - 130400, - 424256510, - 130300, - 424234910, - 130200, - 424213310, - 130100, - 424191710, - 130000, - 424170110, - 129900, - 424148510, - 129800, - 424126910, - 129700, - 424105310, - 129600, - 424083710, - 129500, - 424062110, - 129400, - 424040510, - 129300, - 424018910, - 129200, - 423997310, - 129100, - 423975710, - 129000, - 423954110, - 128900, - 423932510, - 128800, - 423910910, - 128700, - 423889310, - 128600, - 423867710, - 128500, - 423846110, - 128400, - 423824510, - 128300, - 423802910, - 128200, - 423781310, - 128100, - 423759710, - 128000, - 423738110, - 127900, - 423716510, - 127800, - 423694910, - 127700, - 423673310, - 127600, - 423651710, - 127500, - 423630110, - 127400, - 423608510, - 127300, - 423586910, - 127200, - 423565310, - 127100, - 423543710, - 127000, - 423522110, - 126900, - 423500510, - 126800, - 423478910, - 126700, - 423457310, - 126600, - 423435710, - 126500, - 423414110, - 126400, - 423392510, - 126300, - 423370910, - 126200, - 423349310, - 126100, - 423327710, - 126000, - 423306110, - 125900, - 423284510, - 125800, - 423262910, - 125700, - 423241310, - 125600, - 423219710, - 125500, - 423198110, - 125400, - 423176510, - 125300, - 423154910, - 125200, - 423133310, - 125100, - 423111710, - 125000, - 423090110, - 124900, - 423068510, - 124800, - 423046910, - 124700, - 423025310, - 124600, - 423003710, - 124500, - 422982110, - 124400, - 422960510, - 124300, - 422938910, - 124200, - 422917310, - 124100, - 422895710, - 124000, - 422874110, - 123900, - 422852510, - 123800, - 422830910, - 123700, - 422809310, - 123600, - 422787710, - 123500, - 422766110, - 123400, - 422744510, - 123300, - 422722910, - 123200, - 422701310, - 123100, - 422679710, - 123000, - 422658110, - 122900, - 422636510, - 122800, - 422614910, - 122700, - 422593310, - 122600, - 422571710, - 122500, - 422550110, - 122400, - 422528510, - 122300, - 422506910, - 122200, - 422485310, - 122100, - 422463710, - 122000, - 422442110, - 121900, - 422420510, - 121800, - 422398910, - 121700, - 422377310, - 121600, - 422355710, - 121500, - 422334110, - 121400, - 422312510, - 121300, - 422290910, - 121200, - 422269310, - 121100, - 422247710, - 121000, - 422226110, - 120900, - 422204510, - 120800, - 422182910, - 120700, - 422161310, - 120600, - 422139710, - 120500, - 422118110, - 120400, - 422096510, - 120300, - 422074910, - 120200, - 422053310, - 120100, - 422031710, - 120000, - 422010110, - 119900, - 421988510, - 119800, - 421966910, - 119700, - 421945310, - 119600, - 421923710, - 119500, - 421902110, - 119400, - 421880510, - 119300, - 421858910, - 119200, - 421837310, - 119100, - 421815710, - 119000, - 421794110, - 118900, - 421772510, - 118800, - 421750910, - 118700, - 421729310, - 118600, - 421707710, - 118500, - 421686110, - 118400, - 421664510, - 118300, - 421642910, - 118200, - 421621310, - 118100, - 421599710, - 118000, - 421578110, - 117900, - 421556510, - 117800, - 421534910, - 117700, - 421513310, - 117600, - 421491710, - 117500, - 421470110, - 117400, - 421448510, - 117300, - 421426910, - 117200, - 421405310, - 117100, - 421383710, - 117000, - 421362110, - 116900, - 421340510, - 116800, - 421318910, - 116700, - 421297310, - 116600, - 421275710, - 116500, - 421254110, - 116400, - 421232510, - 116300, - 421210910, - 116200, - 421189310, - 116100, - 421167710, - 116000, - 421146110, - 115900, - 421124510, - 115800, - 421102910, - 115700, - 421081310, - 115600, - 421059710, - 115500, - 421038110, - 115400, - 421016510, - 115300, - 420994910, - 115200, - 420973310, - 115100, - 420951710, - 115000, - 420930110, - 114900, - 420908510, - 114800, - 420886910, - 114700, - 420865310, - 114600, - 420843710, - 114500, - 420822110, - 114400, - 420800510, - 114300, - 420778910, - 114200, - 420757310, - 114100, - 420735710, - 114000, - 420714110, - 113900, - 420692510, - 113800, - 420670910, - 113700, - 420649310, - 113600, - 420627710, - 113500, - 420606110, - 113400, - 420584510, - 113300, - 420562910, - 113200, - 420541310, - 113100, - 420519710, - 113000, - 420498110, - 112900, - 420476510, - 112800, - 420454910, - 112700, - 420433310, - 112600, - 420411710, - 112500, - 420390110, - 112400, - 420368510, - 112300, - 420346910, - 112200, - 420325310, - 112100, - 420303710, - 112000, - 420282110, - 111900, - 420260510, - 111800, - 420238910, - 111700, - 420217310, - 111600, - 420195710, - 111500, - 420174110, - 111400, - 420152510, - 111300, - 420130910, - 111200, - 420109310, - 111100, - 420087710, - 111000, - 420066110, - 110900, - 420044510, - 110800, - 420022910, - 110700, - 420001310, - 110600, - 419979710, - 110500, - 419958110, - 110400, - 419936510, - 110300, - 419914910, - 110200, - 419893310, - 110100, - 419871710, - 110000, - 419850110, - 109900, - 419828510, - 109800, - 419806910, - 109700, - 419785310, - 109600, - 419763710, - 109500, - 419742110, - 109400, - 419720510, - 109300, - 419698910, - 109200, - 419677310, - 109100, - 419655710, - 109000, - 419634110, - 108900, - 419612510, - 108800, - 419590910, - 108700, - 419569310, - 108600, - 419547710, - 108500, - 419526110, - 108400, - 419504510, - 108300, - 419482910, - 108200, - 419461310, - 108100, - 419439710, - 108000, - 419418110, - 107900, - 419396510, - 107800, - 419374910, - 107700, - 419353310, - 107600, - 419331710, - 107500, - 419310110, - 107400, - 419288510, - 107300, - 419266910, - 107200, - 419245310, - 107100, - 419223710, - 107000, - 419202110, - 106900, - 419180510, - 106800, - 419158910, - 106700, - 419137310, - 106600, - 419115710, - 106500, - 419094110, - 106400, - 419072510, - 106300, - 419050910, - 106200, - 419029310, - 106100, - 419007710, - 106000, - 418986110, - 105900, - 418964510, - 105800, - 418942910, - 105700, - 418921310, - 105600, - 418899710, - 105500, - 418878110, - 105400, - 418856510, - 105300, - 418834910, - 105200, - 418813310, - 105100, - 418791710, - 105000, - 418770110, - 104900, - 418748510, - 104800, - 418726910, - 104700, - 418705310, - 104600, - 418683710, - 104500, - 418662110, - 104400, - 418640510, - 104300, - 418618910, - 104200, - 418597310, - 104100, - 418575710, - 104000, - 418554110, - 103900, - 418532510, - 103800, - 418510910, - 103700, - 418489310, - 103600, - 418467710, - 103500, - 418446110, - 103400, - 418424510, - 103300, - 418402910, - 103200, - 418381310, - 103100, - 418359710, - 103000, - 418338110, - 102900, - 418316510, - 102800, - 418294910, - 102700, - 418273310, - 102600, - 418251710, - 102500, - 418230110, - 102400, - 418208510, - 102300, - 418186910, - 102200, - 418165310, - 102100, - 418143710, - 102000, - 418122110, - 101900, - 418100510, - 101800, - 418078910, - 101700, - 418057310, - 101600, - 418035710, - 101500, - 418014110, - 101400, - 417992510, - 101300, - 417970910, - 101200, - 417949310, - 101100, - 417927710, - 101000, - 417906110, - 100900, - 417884510, - 100800, - 417862910, - 100700, - 417841310, - 100600, - 417819710, - 100500, - 417798110, - 100400, - 417776510, - 100300, - 417754910, - 100200, - 417733310, - 100100, - 417711710, - 100000, - 417690110, - 99900, - 417668510, - 99800, - 417646910, - 99700, - 417625310, - 99600, - 417603710, - 99500, - 417582110, - 99400, - 417560510, - 99300, - 417538910, - 99200, - 417517310, - 99100, - 417495710, - 99000, - 417474110, - 98900, - 417452510, - 98800, - 417430910, - 98700, - 417409310, - 98600, - 417387710, - 98500, - 417366110, - 98400, - 417344510, - 98300, - 417322910, - 98200, - 417301310, - 98100, - 417279710, - 98000, - 417258110, - 97900, - 417236510, - 97800, - 417214910, - 97700, - 417193310, - 97600, - 417171710, - 97500, - 417150110, - 97400, - 417128510, - 97300, - 417106910, - 97200, - 417085310, - 97100, - 417063710, - 97000, - 417042110, - 96900, - 417020510, - 96800, - 416998910, - 96700, - 416977310, - 96600, - 416955710, - 96500, - 416934110, - 96400, - 416912510, - 96300, - 416890910, - 96200, - 416869310, - 96100, - 416847710, - 96000, - 416826110, - 95900, - 416804510, - 95800, - 416782910, - 95700, - 416761310, - 95600, - 416739710, - 95500, - 416718110, - 95400, - 416696510, - 95300, - 416674910, - 95200, - 416653310, - 95100, - 416631710, - 95000, - 416610110, - 94900, - 416588510, - 94800, - 416566910, - 94700, - 416545310, - 94600, - 416523710, - 94500, - 416502110, - 94400, - 416480510, - 94300, - 416458910, - 94200, - 416437310, - 94100, - 416415710, - 94000, - 416394110, - 93900, - 416372510, - 93800, - 416350910, - 93700, - 416329310, - 93600, - 416307710, - 93500, - 416286110, - 93400, - 416264510, - 93300, - 416242910, - 93200, - 416221310, - 93100, - 416199710, - 93000, - 416178110, - 92900, - 416156510, - 92800, - 416134910, - 92700, - 416113310, - 92600, - 416091710, - 92500, - 416070110, - 92400, - 416048510, - 92300, - 416026910, - 92200, - 416005310, - 92100, - 415983710, - 92000, - 415962110, - 91900, - 415940510, - 91800, - 415918910, - 91700, - 415897310, - 91600, - 415875710, - 91500, - 415854110, - 91400, - 415832510, - 91300, - 415810910, - 91200, - 415789310, - 91100, - 415767710, - 91000, - 415746110, - 90900, - 415724510, - 90800, - 415702910, - 90700, - 415681310, - 90600, - 415659710, - 90500, - 415638110, - 90400, - 415616510, - 90300, - 415594910, - 90200, - 415573310, - 90100, - 415551710, - 90000, - 415530110, - 89900, - 415508510, - 89800, - 415486910, - 89700, - 415465310, - 89600, - 415443710, - 89500, - 415422110, - 89400, - 415400510, - 89300, - 415378910, - 89200, - 415357310, - 89100, - 415335710, - 89000, - 415314110, - 88900, - 415292510, - 88800, - 415270910, - 88700, - 415249310, - 88600, - 415227710, - 88500, - 415206110, - 88400, - 415184510, - 88300, - 415162910, - 88200, - 415141310, - 88100, - 415119710, - 88000, - 415098110, - 87900, - 415076510, - 87800, - 415054910, - 87700, - 415033310, - 87600, - 415011710, - 87500, - 414990110, - 87400, - 414968510, - 87300, - 414946910, - 87200, - 414925310, - 87100, - 414903710, - 87000, - 414882110, - 86900, - 414860510, - 86800, - 414838910, - 86700, - 414817310, - 86600, - 414795710, - 86500, - 414774110, - 86400, - 414752510, - 86300, - 414730910, - 86200, - 414709310, - 86100, - 414687710, - 86000, - 414666110, - 85900, - 414644510, - 85800, - 414622910, - 85700, - 414601310, - 85600, - 414579710, - 85500, - 414558110, - 85400, - 414536510, - 85300, - 414514910, - 85200, - 414493310, - 85100, - 414471710, - 85000, - 414450110, - 84900, - 414428510, - 84800, - 414406910, - 84700, - 414385310, - 84600, - 414363710, - 84500, - 414342110, - 84400, - 414320510, - 84300, - 414298910, - 84200, - 414277310, - 84100, - 414255710, - 84000, - 414234110, - 83900, - 414212510, - 83800, - 414190910, - 83700, - 414169310, - 83600, - 414147710, - 83500, - 414126110, - 83400, - 414104510, - 83300, - 414082910, - 83200, - 414061310, - 83100, - 414039710, - 83000, - 414018110, - 82900, - 413996510, - 82800, - 413974910, - 82700, - 413953310, - 82600, - 413931710, - 82500, - 413910110, - 82400, - 413888510, - 82300, - 413866910, - 82200, - 413845310, - 82100, - 413823710, - 82000, - 413802110, - 81900, - 413780510, - 81800, - 413758910, - 81700, - 413737310, - 81600, - 413715710, - 81500, - 413694110, - 81400, - 413672510, - 81300, - 413650910, - 81200, - 413629310, - 81100, - 413607710, - 81000, - 413586110, - 80900, - 413564510, - 80800, - 413542910, - 80700, - 413521310, - 80600, - 413499710, - 80500, - 413478110, - 80400, - 413456510, - 80300, - 413434910, - 80200, - 413413310, - 80100, - 413391710, - 80000, - 413370110, - 79900, - 413348510, - 79800, - 413326910, - 79700, - 413305310, - 79600, - 413283710, - 79500, - 413262110, - 79400, - 413240510, - 79300, - 413218910, - 79200, - 413197310, - 79100, - 413175710, - 79000, - 413154110, - 78900, - 413132510, - 78800, - 413110910, - 78700, - 413089310, - 78600, - 413067710, - 78500, - 413046110, - 78400, - 413024510, - 78300, - 413002910, - 78200, - 412981310, - 78100, - 412959710, - 78000, - 412938110, - 77900, - 412916510, - 77800, - 412894910, - 77700, - 412873310, - 77600, - 412851710, - 77500, - 412830110, - 77400, - 412808510, - 77300, - 412786910, - 77200, - 412765310, - 77100, - 412743710, - 77000, - 412722110, - 76900, - 412700510, - 76800, - 412678910, - 76700, - 412657310, - 76600, - 412635710, - 76500, - 412614110, - 76400, - 412592510, - 76300, - 412570910, - 76200, - 412549310, - 76100, - 412527710, - 76000, - 412506110, - 75900, - 412484510, - 75800, - 412462910, - 75700, - 412441310, - 75600, - 412419710, - 75500, - 412398110, - 75400, - 412376510, - 75300, - 412354910, - 75200, - 412333310, - 75100, - 412311710, - 75000, - 412290110, - 74900, - 412268510, - 74800, - 412246910, - 74700, - 412225310, - 74600, - 412203710, - 74500, - 412182110, - 74400, - 412160510, - 74300, - 412138910, - 74200, - 412117310, - 74100, - 412095710, - 74000, - 412074110, - 73900, - 412052510, - 73800, - 412030910, - 73700, - 412009310, - 73600, - 411987710, - 73500, - 411966110, - 73400, - 411944510, - 73300, - 411922910, - 73200, - 411901310, - 73100, - 411879710, - 73000, - 411858110, - 72900, - 411836510, - 72800, - 411814910, - 72700, - 411793310, - 72600, - 411771710, - 72500, - 411750110, - 72400, - 411728510, - 72300, - 411706910, - 72200, - 411685310, - 72100, - 411663710, - 72000, - 411642110, - 71900, - 411620510, - 71800, - 411598910, - 71700, - 411577310, - 71600, - 411555710, - 71500, - 411534110, - 71400, - 411512510, - 71300, - 411490910, - 71200, - 411469310, - 71100, - 411447710, - 71000, - 411426110, - 70900, - 411404510, - 70800, - 411382910, - 70700, - 411361310, - 70600, - 411339710, - 70500, - 411318110, - 70400, - 411296510, - 70300, - 411274910, - 70200, - 411253310, - 70100, - 411231710, - 70000, - 411210110, - 69900, - 411188510, - 69800, - 411166910, - 69700, - 411145310, - 69600, - 411123710, - 69500, - 411102110, - 69400, - 411080510, - 69300, - 411058910, - 69200, - 411037310, - 69100, - 411015710, - 69000, - 410994110, - 68900, - 410972510, - 68800, - 410950910, - 68700, - 410929310, - 68600, - 410907710, - 68500, - 410886110, - 68400, - 410864510, - 68300, - 410842910, - 68200, - 410821310, - 68100, - 410799710, - 68000, - 410778110, - 67900, - 410756510, - 67800, - 410734910, - 67700, - 410713310, - 67600, - 410691710, - 67500, - 410670110, - 67400, - 410648510, - 67300, - 410626910, - 67200, - 410605310, - 67100, - 410583710, - 67000, - 410562110, - 66900, - 410540510, - 66800, - 410518910, - 66700, - 410497310, - 66600, - 410475710, - 66500, - 410454110, - 66400, - 410432510, - 66300, - 410410910, - 66200, - 410389310, - 66100, - 410367710, - 66000, - 410346110, - 65900, - 410324510, - 65800, - 410302910, - 65700, - 410281310, - 65600, - 410259710, - 65500, - 410238110, - 65400, - 410216510, - 65300, - 410194910, - 65200, - 410173310, - 65100, - 410151710, - 65000, - 410130110, - 64900, - 410108510, - 64800, - 410086910, - 64700, - 410065310, - 64600, - 410043710, - 64500, - 410022110, - 64400, - 410000510, - 64300, - 409978910, - 64200, - 409957310, - 64100, - 409935710, - 64000, - 409914110, - 63900, - 409892510, - 63800, - 409870910, - 63700, - 409849310, - 63600, - 409827710, - 63500, - 409806110, - 63400, - 409784510, - 63300, - 409762910, - 63200, - 409741310, - 63100, - 409719710, - 63000, - 409698110, - 62900, - 409676510, - 62800, - 409654910, - 62700, - 409633310, - 62600, - 409611710, - 62500, - 409590110, - 62400, - 409568510, - 62300, - 409546910, - 62200, - 409525310, - 62100, - 409503710, - 62000, - 409482110, - 61900, - 409460510, - 61800, - 409438910, - 61700, - 409417310, - 61600, - 409395710, - 61500, - 409374110, - 61400, - 409352510, - 61300, - 409330910, - 61200, - 409309310, - 61100, - 409287710, - 61000, - 409266110, - 60900, - 409244510, - 60800, - 409222910, - 60700, - 409201310, - 60600, - 409179710, - 60500, - 409158110, - 60400, - 409136510, - 60300, - 409114910, - 60200, - 409093310, - 60100, - 409071710, - 60000, - 409050110, - 59900, - 409028510, - 59800, - 409006910, - 59700, - 408985310, - 59600, - 408963710, - 59500, - 408942110, - 59400, - 408920510, - 59300, - 408898910, - 59200, - 408877310, - 59100, - 408855710, - 59000, - 408834110, - 58900, - 408812510, - 58800, - 408790910, - 58700, - 408769310, - 58600, - 408747710, - 58500, - 408726110, - 58400, - 408704510, - 58300, - 408682910, - 58200, - 408661310, - 58100, - 408639710, - 58000, - 408618110, - 57900, - 408596510, - 57800, - 408574910, - 57700, - 408553310, - 57600, - 408531710, - 57500, - 408510110, - 57400, - 408488510, - 57300, - 408466910, - 57200, - 408445310, - 57100, - 408423710, - 57000, - 408402110, - 56900, - 408380510, - 56800, - 408358910, - 56700, - 408337310, - 56600, - 408315710, - 56500, - 408294110, - 56400, - 408272510, - 56300, - 408250910, - 56200, - 408229310, - 56100, - 408207710, - 56000, - 408186110, - 55900, - 408164510, - 55800, - 408142910, - 55700, - 408121310, - 55600, - 408099710, - 55500, - 408078110, - 55400, - 408056510, - 55300, - 408034910, - 55200, - 408013310, - 55100, - 407991710, - 55000, - 407970110, - 54900, - 407948510, - 54800, - 407926910, - 54700, - 407905310, - 54600, - 407883710, - 54500, - 407862110, - 54400, - 407840510, - 54300, - 407818910, - 54200, - 407797310, - 54100, - 407775710, - 54000, - 407754110, - 53900, - 407732510, - 53800, - 407710910, - 53700, - 407689310, - 53600, - 407667710, - 53500, - 407646110, - 53400, - 407624510, - 53300, - 407602910, - 53200, - 407581310, - 53100, - 407559710, - 53000, - 407538110, - 52900, - 407516510, - 52800, - 407494910, - 52700, - 407473310, - 52600, - 407451710, - 52500, - 407430110, - 52400, - 407408510, - 52300, - 407386910, - 52200, - 407365310, - 52100, - 407343710, - 52000, - 407322110, - 51900, - 407300510, - 51800, - 407278910, - 51700, - 407257310, - 51600, - 407235710, - 51500, - 407214110, - 51400, - 407192510, - 51300, - 407170910, - 51200, - 407149310, - 51100, - 407127710, - 51000, - 407106110, - 50900, - 407084510, - 50800, - 407062910, - 50700, - 407041310, - 50600, - 407019710, - 50500, - 406998110, - 50400, - 406976510, - 50300, - 406954910, - 50200, - 406933310, - 50100, - 406911710, - 50000, - 406890110, - 49900, - 406868510, - 49800, - 406846910, - 49700, - 406825310, - 49600, - 406803710, - 49500, - 406782110, - 49400, - 406760510, - 49300, - 406738910, - 49200, - 406717310, - 49100, - 406695710, - 49000, - 406674110, - 48900, - 406652510, - 48800, - 406630910, - 48700, - 406609310, - 48600, - 406587710, - 48500, - 406566110, - 48400, - 406544510, - 48300, - 406522910, - 48200, - 406501310, - 48100, - 406479710, - 48000, - 406458110, - 47900, - 406436510, - 47800, - 406414910, - 47700, - 406393310, - 47600, - 406371710, - 47500, - 406350110, - 47400, - 406328510, - 47300, - 406306910, - 47200, - 406285310, - 47100, - 406263710, - 47000, - 406242110, - 46900, - 406220510, - 46800, - 406198910, - 46700, - 406177310, - 46600, - 406155710, - 46500, - 406134110, - 46400, - 406112510, - 46300, - 406090910, - 46200, - 406069310, - 46100, - 406047710, - 46000, - 406026110, - 45900, - 406004510, - 45800, - 405982910, - 45700, - 405961310, - 45600, - 405939710, - 45500, - 405918110, - 45400, - 405896510, - 45300, - 405874910, - 45200, - 405853310, - 45100, - 405831710, - 45000, - 405810110, - 44900, - 405788510, - 44800, - 405766910, - 44700, - 405745310, - 44600, - 405723710, - 44500, - 405702110, - 44400, - 405680510, - 44300, - 405658910, - 44200, - 405637310, - 44100, - 405615710, - 44000, - 405594110, - 43900, - 405572510, - 43800, - 405550910, - 43700, - 405529310, - 43600, - 405507710, - 43500, - 405486110, - 43400, - 405464510, - 43300, - 405442910, - 43200, - 405421310, - 43100, - 405399710, - 43000, - 405378110, - 42900, - 405356510, - 42800, - 405334910, - 42700, - 405313310, - 42600, - 405291710, - 42500, - 405270110, - 42400, - 405248510, - 42300, - 405226910, - 42200, - 405205310, - 42100, - 405183710, - 42000, - 405162110, - 41900, - 405140510, - 41800, - 405118910, - 41700, - 405097310, - 41600, - 405075710, - 41500, - 405054110, - 41400, - 405032510, - 41300, - 405010910, - 41200, - 404989310, - 41100, - 404967710, - 41000, - 404946110, - 40900, - 404924510, - 40800, - 404902910, - 40700, - 404881310, - 40600, - 404859710, - 40500, - 404838110, - 40400, - 404816510, - 40300, - 404794910, - 40200, - 404773310, - 40100, - 404751710, - 40000, - 404730110, - 39900, - 404708510, - 39800, - 404686910, - 39700, - 404665310, - 39600, - 404643710, - 39500, - 404622110, - 39400, - 404600510, - 39300, - 404578910, - 39200, - 404557310, - 39100, - 404535710, - 39000, - 404514110, - 38900, - 404492510, - 38800, - 404470910, - 38700, - 404449310, - 38600, - 404427710, - 38500, - 404406110, - 38400, - 404384510, - 38300, - 404362910, - 38200, - 404341310, - 38100, - 404319710, - 38000, - 404298110, - 37900, - 404276510, - 37800, - 404254910, - 37700, - 404233310, - 37600, - 404211710, - 37500, - 404190110, - 37400, - 404168510, - 37300, - 404146910, - 37200, - 404125310, - 37100, - 404103710, - 37000, - 404082110, - 36900, - 404060510, - 36800, - 404038910, - 36700, - 404017310, - 36600, - 403995710, - 36500, - 403974110, - 36400, - 403952510, - 36300, - 403930910, - 36200, - 403909310, - 36100, - 403887710, - 36000, - 403866110, - 35900, - 403844510, - 35800, - 403822910, - 35700, - 403801310, - 35600, - 403779710, - 35500, - 403758110, - 35400, - 403736510, - 35300, - 403714910, - 35200, - 403693310, - 35100, - 403671710, - 35000, - 403650110, - 34900, - 403628510, - 34800, - 403606910, - 34700, - 403585310, - 34600, - 403563710, - 34500, - 403542110, - 34400, - 403520510, - 34300, - 403498910, - 34200, - 403477310, - 34100, - 403455710, - 34000, - 403434110, - 33900, - 403412510, - 33800, - 403390910, - 33700, - 403369310, - 33600, - 403347710, - 33500, - 403326110, - 33400, - 403304510, - 33300, - 403282910, - 33200, - 403261310, - 33100, - 403239710, - 33000, - 403218110, - 32900, - 403196510, - 32800, - 403174910, - 32700, - 403153310, - 32600, - 403131710, - 32500, - 403110110, - 32400, - 403088510, - 32300, - 403066910, - 32200, - 403045310, - 32100, - 403023710, - 32000, - 403002110, - 31900, - 402980510, - 31800, - 402958910, - 31700, - 402937310, - 31600, - 402915710, - 31500, - 402894110, - 31400, - 402872510, - 31300, - 402850910, - 31200, - 402829310, - 31100, - 402807710, - 31000, - 402786110, - 30900, - 402764510, - 30800, - 402742910, - 30700, - 402721310, - 30600, - 402699710, - 30500, - 402678110, - 30400, - 402656510, - 30300, - 402634910, - 30200, - 402613310, - 30100, - 402591710, - 30000, - 402570110, - 29900, - 402548510, - 29800, - 402526910, - 29700, - 402505310, - 29600, - 402483710, - 29500, - 402462110, - 29400, - 402440510, - 29300, - 402418910, - 29200, - 402397310, - 29100, - 402375710, - 29000, - 402354110, - 28900, - 402332510, - 28800, - 402310910, - 28700, - 402289310, - 28600, - 402267710, - 28500, - 402246110, - 28400, - 402224510, - 28300, - 402202910, - 28200, - 402181310, - 28100, - 402159710, - 28000, - 402138110, - 27900, - 402116510, - 27800, - 402094910, - 27700, - 402073310, - 27600, - 402051710, - 27500, - 402030110, - 27400, - 402008510, - 27300, - 401986910, - 27200, - 401965310, - 27100, - 401943710, - 27000, - 401922110, - 26900, - 401900510, - 26800, - 401878910, - 26700, - 401857310, - 26600, - 401835710, - 26500, - 401814110, - 26400, - 401792510, - 26300, - 401770910, - 26200, - 401749310, - 26100, - 401727710, - 26000, - 401706110, - 25900, - 401684510, - 25800, - 401662910, - 25700, - 401641310, - 25600, - 401619710, - 25500, - 401598110, - 25400, - 401576510, - 25300, - 401554910, - 25200, - 401533310, - 25100, - 401511710, - 25000, - 401490110, - 24900, - 401468510, - 24800, - 401446910, - 24700, - 401425310, - 24600, - 401403710, - 24500, - 401382110, - 24400, - 401360510, - 24300, - 401338910, - 24200, - 401317310, - 24100, - 401295710, - 24000, - 401274110, - 23900, - 401252510, - 23800, - 401230910, - 23700, - 401209310, - 23600, - 401187710, - 23500, - 401166110, - 23400, - 401144510, - 23300, - 401122910, - 23200, - 401101310, - 23100, - 401079710, - 23000, - 401058110, - 22900, - 401036510, - 22800, - 401014910, - 22700, - 400993310, - 22600, - 400971710, - 22500, - 400950110, - 22400, - 400928510, - 22300, - 400906910, - 22200, - 400885310, - 22100, - 400863710, - 22000, - 400842110, - 21900, - 400820510, - 21800, - 400798910, - 21700, - 400777310, - 21600, - 400755710, - 21500, - 400734110, - 21400, - 400712510, - 21300, - 400690910, - 21200, - 400669310, - 21100, - 400647710, - 21000, - 400626110, - 20900, - 400604510, - 20800, - 400582910, - 20700, - 400561310, - 20600, - 400539710, - 20500, - 400518110, - 20400, - 400496510, - 20300, - 400474910, - 20200, - 400453310, - 20100, - 400431710, - 20000, - 400410110, - 19900, - 400388510, - 19800, - 400366910, - 19700, - 400345310, - 19600, - 400323710, - 19500, - 400302110, - 19400, - 400280510, - 19300, - 400258910, - 19200, - 400237310, - 19100, - 400215710, - 19000, - 400194110, - 18900, - 400172510, - 18800, - 400150910, - 18700, - 400129310, - 18600, - 400107710, - 18500, - 400086110, - 18400, - 400064510, - 18300, - 400042910, - 18200, - 400021310, - 18100, - 399999710, - 18000, - 399978110, - 17900, - 399956510, - 17800, - 399934910, - 17700, - 399913310, - 17600, - 399891710, - 17500, - 399870110, - 17400, - 399848510, - 17300, - 399826910, - 17200, - 399805310, - 17100, - 399783710, - 17000, - 399762110, - 16900, - 399740510, - 16800, - 399718910, - 16700, - 399697310, - 16600, - 399675710, - 16500, - 399654110, - 16400, - 399632510, - 16300, - 399610910, - 16200, - 399589310, - 16100, - 399567710, - 16000, - 399546110, - 15900, - 399524510, - 15800, - 399502910, - 15700, - 399481310, - 15600, - 399459710, - 15500, - 399438110, - 15400, - 399416510, - 15300, - 399394910, - 15200, - 399373310, - 15100, - 399351710, - 15000, - 399330110, - 14900, - 399308510, - 14800, - 399286910, - 14700, - 399265310, - 14600, - 399243710, - 14500, - 399222110, - 14400, - 399200510, - 14300, - 399178910, - 14200, - 399157310, - 14100, - 399135710, - 14000, - 399114110, - 13900, - 399092510, - 13800, - 399070910, - 13700, - 399049310, - 13600, - 399027710, - 13500, - 399006110, - 13400, - 398984510, - 13300, - 398962910, - 13200, - 398941310, - 13100, - 398919710, - 13000, - 398898110, - 12900, - 398876510, - 12800, - 398854910, - 12700, - 398833310, - 12600, - 398811710, - 12500, - 398790110, - 12400, - 398768510, - 12300, - 398746910, - 12200, - 398725310, - 12100, - 398703710, - 12000, - 398682110, - 11900, - 398660510, - 11800, - 398638910, - 11700, - 398617310, - 11600, - 398595710, - 11500, - 398574110, - 11400, - 398552510, - 11300, - 398530910, - 11200, - 398509310, - 11100, - 398487710, - 11000, - 398466110, - 10900, - 398444510, - 10800, - 398422910, - 10700, - 398401310, - 10600, - 398379710, - 10500, - 398358110, - 10400, - 398336510, - 10300, - 398314910, - 10200, - 398293310, - 10100, - 398271710, - 10000, - 398250110, - 9900, - 398228510, - 9800, - 398206910, - 9700, - 398185310, - 9600, - 398163710, - 9500, - 398142110, - 9400, - 398120510, - 9300, - 398098910, - 9200, - 398077310, - 9100, - 398055710, - 9000, - 398034110, - 8900, - 398012510, - 8800, - 397990910, - 8700, - 397969310, - 8600, - 397947710, - 8500, - 397926110, - 8400, - 397904510, - 8300, - 397882910, - 8200, - 397861310, - 8100, - 397839710, - 8000, - 397818110, - 7900, - 397796510, - 7800, - 397774910, - 7700, - 397753310, - 7600, - 397731710, - 7500, - 397710110, - 7400, - 397688510, - 7300, - 397666910, - 7200, - 397645310, - 7100, - 397623710, - 7000, - 397602110, - 6900, - 397580510, - 6800, - 397558910, - 6700, - 397537310, - 6600, - 397515710, - 6500, - 397494110, - 6400, - 397472510, - 6300, - 397450910, - 6200, - 397429310, - 6100, - 397407710, - 6000, - 397386110, - 5900, - 397364510, - 5800, - 397342910, - 5700, - 397321310, - 5600, - 397299710, - 5500, - 397278110, - 5400, - 397256510, - 5300, - 397234910, - 5200, - 397213310, - 5100, - 397191710, - 5000, - 397170110, - 4900, - 397148510, - 4800, - 397126910, - 4700, - 397105310, - 4600, - 397083710, - 4500, - 397062110, - 4400, - 397040510, - 4300, - 397018910, - 4200, - 396997310, - 4100, - 396975710, - 4000, - 396954110, - 3900, - 396932510, - 3800, - 396910910, - 3700, - 396889310, - 3600, - 396867710, - 3500, - 396846110, - 3400, - 396824510, - 3300, - 396802910, - 3200, - 396781310, - 3100, - 396759710, - 3000, - 396738110, - 2900, - 396716510, - 2800, - 396694910, - 2700, - 396673310, - 2600, - 396651710, - 2500, - 396630110, - 2400, - 396608510, - 2300, - 396586910, - 2200, - 396565310, - 2100, - 396543710, - 2000, - 396522110, - 1900, - 396500510, - 1800, - 396478910, - 1700, - 396457310, - 1600, - 396435710, - 1500, - 396414110, - 1400, - 396392510, - 1300, - 396370910, - 1200, - 396349310, - 1100, - 396327710, - 1000, - 396306110, - 900, - 396284510, - 800, - 396262910, - 700, - 396241310, - 600, - 396219710, - 500, - 396198110, - 400, - 396176510, - 300, - 396154910, - 200, - 396133310, - 100, - 396111710, - 950796, - 661467770, - 950383, - 661365665, - 950020, - 661291594, - 949631, - 661207387, - 949202, - 661123407, - 948737, - 661026086, - 948326, - 660952532, - 947951, - 660855850, - 947571, - 660761239, - 947209, - 660688317, - 946815, - 660594047, - 946438, - 660520599, - 946090, - 660430146, - 945787, - 660343546, - 945481, - 660260260, - 945081, - 660147818, - 944829, - 660084717, - 944454, - 659984903, - 944122, - 659907262, - 943785, - 659827435, - 943433, - 659740968, - 943128, - 659655353, - 942791, - 659569792, - 942482, - 659481864, - 942145, - 659377799, - 941851, - 659309778, - 941491, - 659201693, - 941210, - 659139066, - 940827, - 659049644, - 940306, - 658950673, - 939637, - 658847061, - 939318, - 658770859, - 938963, - 658691042, - 938731, - 658618302, - 938404, - 658523034, - 938053, - 658443802, - 937649, - 658339400, - 937368, - 658272491, - 937057, - 658185781, - 936727, - 658102275, - 936442, - 658014782, - 936111, - 657922124, - 935760, - 657841502, - 935412, - 657755855, - 935075, - 657654533, - 934768, - 657582870, - 934408, - 657483799, - 934104, - 657385614, - 933806, - 657314825, - 933494, - 657236695, - 933125, - 657151355, - 932709, - 657039497, - 932134, - 656964758, - 931786, - 656884406, - 931475, - 656791792, - 931134, - 656709161, - 930823, - 656630226, - 930466, - 656521749, - 930198, - 656458990, - 929890, - 656370893, - 929599, - 656284608, - 929273, - 656194885, - 928943, - 656102821, - 928644, - 656024425, - 928312, - 655936418, - 927999, - 655838001, - 927701, - 655762208, - 927377, - 655679437, - 927001, - 655586180, - 926687, - 655503112, - 926317, - 655422515, - 925989, - 655334956, - 925652, - 655237787, - 925333, - 655155175, - 924981, - 655058122, - 924629, - 654989485, - 924257, - 654884598, - 923910, - 654806289, - 923560, - 654719748, - 923178, - 654645125, - 922850, - 654553171, - 922456, - 654467716, - 922076, - 654367742, - 921768, - 654299583, - 921397, - 654204269, - 921037, - 654104455, - 920708, - 654035736, - 920307, - 653929299, - 919976, - 653859050, - 919633, - 653774521, - 919465, - 653464789, - 918191, - 653434702, - 917790, - 653335675, - 917420, - 653260128, - 916983, - 653156655, - 916583, - 653069521, - 916235, - 652987196, - 915881, - 652918355, - 915457, - 652825388, - 915049, - 652737900, - 914676, - 652654882, - 914270, - 652549613, - 913933, - 652476054, - 913574, - 652399170, - 913222, - 652304802, - 912803, - 652209682, - 912409, - 652140420, - 911986, - 652045732, - 911586, - 651951888, - 911191, - 651862750, - 910822, - 651783283, - 910450, - 651703555, - 910057, - 651604969, - 909701, - 651534960, - 909344, - 651434436, - 909006, - 651360368, - 908628, - 651260700, - 908260, - 651183874, - 907816, - 651088912, - 907369, - 651012717, - 906851, - 650902457, - 906456, - 650815609, - 906121, - 650732565, - 905736, - 650671071, - 905313, - 650571580, - 904924, - 650496971, - 904437, - 650387593, - 904049, - 650326265, - 903605, - 650219844, - 903223, - 650148089, - 902720, - 650051138, - 902290, - 649971599, - 901853, - 649888598, - 901384, - 649793702, - 900929, - 649716310, - 900449, - 649632021, - 900001, - 649533538, - 899577, - 649461304, - 899109, - 649356070, - 898685, - 649282801, - 898269, - 649196733, - 897855, - 649115862, - 897246, - 649021461, - 896789, - 648938298, - 896388, - 648848527, - 895983, - 648765060, - 895548, - 648662762, - 895153, - 648588009, - 894748, - 648509350, - 894330, - 648408382, - 893388, - 648309675, - 892707, - 648229865, - 892069, - 648162435, - 891375, - 648061950, - 891002, - 647993170, - 890539, - 647903735, - 890019, - 647795280, - 889670, - 647732240, - 889207, - 647638361, - 888783, - 647554080, - 888314, - 647463578, - 887866, - 647362642, - 887457, - 647300867, - 887012, - 647204043, - 886584, - 647114734, - 886085, - 647037382, - 885584, - 646956206, - 885109, - 646869785, - 884649, - 646775243, - 884143, - 646674497, - 883780, - 646610133, - 883386, - 646515160, - 882934, - 646413056, - 882614, - 646338189, - 882299, - 646262242, - 881944, - 646177548, - 881588, - 646090365, - 881233, - 645990115, - 880886, - 645895339, - 880571, - 645820046, - 880229, - 645729093, - 879859, - 645641218, - 879488, - 645563652, - 879081, - 645471655, - 878753, - 645397161, - 878430, - 645307055, - 878062, - 645224162, - 877670, - 645113974, - 877342, - 645055536, - 876902, - 644933970, - 876653, - 644882812, - 876223, - 644790071, - 875925, - 644703010, - 875551, - 644609574, - 875159, - 644535830, - 874705, - 644431858, - 874248, - 644339081, - 873936, - 644277946, - 873546, - 644188692, - 873153, - 644085887, - 872769, - 643993398, - 872357, - 643900530, - 872085, - 643826404, - 871798, - 643753358, - 871485, - 643670869, - 871204, - 643579823, - 870903, - 643492481, - 870506, - 643387975, - 870170, - 643318522, - 869748, - 643238337, - 869330, - 643135433, - 868934, - 643064856, - 868433, - 642980271, - 868015, - 642891965, - 867626, - 642783565, - 867329, - 642716404, - 866878, - 642614376, - 866501, - 642526461, - 866118, - 642458635, - 865703, - 642365600, - 865356, - 642290977, - 864968, - 642187210, - 864548, - 642115090, - 864140, - 642029372, - 863742, - 641934866, - 863321, - 641855613, - 862870, - 641739445, - 862577, - 641671049, - 862191, - 641572460, - 861863, - 641505668, - 861465, - 641396773, - 861192, - 641340098, - 860777, - 641231502, - 860392, - 641137811, - 860097, - 641074186, - 859757, - 640971860, - 859485, - 640901427, - 859096, - 640818254, - 858640, - 640716844, - 858305, - 640647199, - 857980, - 640555418, - 857641, - 640466939, - 857315, - 640385300, - 856934, - 640271909, - 856636, - 640212639, - 856206, - 640104391, - 855879, - 640041926, - 855437, - 639949051, - 855042, - 639856256, - 854632, - 639774794, - 854207, - 639677404, - 853836, - 639612773, - 853401, - 639523888, - 852907, - 639422454, - 852433, - 639335711, - 851975, - 639258662, - 851493, - 639180130, - 851010, - 639089873, - 850500, - 639001061, - 850032, - 638919348, - 849503, - 638814859, - 849104, - 638741793, - 848674, - 638661652, - 848227, - 638568542, - 847754, - 638477306, - 847385, - 638402454, - 846912, - 638313766, - 846351, - 638218119, - 845830, - 638114905, - 845351, - 638056080, - 844866, - 637955020, - 844397, - 637882555, - 843798, - 637784960, - 843332, - 637700390, - 842813, - 637623633, - 842315, - 637538868, - 841781, - 637433662, - 841211, - 637353590, - 840736, - 637260495, - 840322, - 637191577, - 839834, - 637106977, - 839398, - 637010124, - 838684, - 636930268, - 838271, - 636834511, - 837879, - 636758592, - 837471, - 636664875, - 836906, - 636581484, - 836305, - 636480150, - 833705, - 636395088, - 833339, - 636320515, - 833002, - 636238266, - 832606, - 636143798, - 832189, - 636056701, - 831851, - 635977097, - 831447, - 635890535, - 831018, - 635777956, - 830716, - 635697023, - 830451, - 635637719, - 830051, - 635539136, - 829705, - 635437734, - 829402, - 635374676, - 829057, - 635285040, - 828673, - 635177380, - 828428, - 635119792, - 828125, - 635026953, - 827774, - 634929745, - 827492, - 634854884, - 827165, - 634762110, - 826829, - 634680606, - 826507, - 634600447, - 826207, - 634496508, - 825907, - 634411428, - 825570, - 634338766, - 825227, - 634247795, - 824867, - 634152608, - 824538, - 634067443, - 824215, - 633982909, - 823844, - 633904477, - 823498, - 633800155, - 823167, - 633714599, - 822857, - 633648940, - 822570, - 633558749, - 822220, - 633457738, - 821950, - 633383275, - 821658, - 633302375, - 821337, - 633204544, - 821013, - 633132322, - 820671, - 633043919, - 820306, - 632944478, - 819937, - 632848554, - 819658, - 632773098, - 819331, - 632687046, - 819022, - 632586343, - 818715, - 632521344, - 818345, - 632407172, - 818073, - 632348793, - 817717, - 632252041, - 817428, - 632168432, - 817116, - 632088780, - 816764, - 631985238, - 816450, - 631910177, - 816126, - 631815405, - 815755, - 631720826, - 815479, - 631650195, - 815131, - 631562850, - 814805, - 631475845, - 814460, - 631382850, - 814159, - 631303136, - 813856, - 631210080, - 813497, - 631131382, - 813156, - 631041923, - 812872, - 630957944, - 812551, - 630877544, - 812254, - 630795239, - 811951, - 630695917, - 811599, - 630625521, - 811212, - 630534646, - 810884, - 630453249, - 810494, - 630363131, - 810057, - 630275358, - 809639, - 630173601, - 809310, - 630106022, - 808982, - 630022017, - 808595, - 629926493, - 808276, - 629849569, - 807906, - 629758964, - 807481, - 629666913, - 807013, - 629555316, - 806715, - 629488619, - 806328, - 629392430, - 805966, - 629302591, - 805700, - 629230708, - 805334, - 629137257, - 805002, - 629062121, - 804636, - 628955052, - 804353, - 628880721, - 803851, - 628769899, - 803598, - 628710851, - 803209, - 628639478, - 802772, - 628543825, - 802262, - 628439931, - 801820, - 628374149, - 801098, - 628264675, - 800758, - 628192078, - 800396, - 628094373, - 800078, - 628023093, - 799717, - 627930832, - 799375, - 627835725, - 799090, - 627774441, - 798775, - 627679724, - 798441, - 627601507, - 798137, - 627513455, - 797791, - 627409850, - 797476, - 627325771, - 797159, - 627252655, - 796877, - 627170879, - 796604, - 627079152, - 796300, - 626978062, - 795985, - 626904484, - 795631, - 626803176, - 795282, - 626731737, - 795022, - 626649428, - 794708, - 626554215, - 794282, - 626452554, - 793960, - 626392220, - 793633, - 626303808, - 793225, - 626194112, - 792924, - 626134301, - 792588, - 626032659, - 792256, - 625932306, - 791992, - 625861280, - 791675, - 625774110, - 791392, - 625698727, - 791037, - 625587761, - 790735, - 625525472, - 790334, - 625415570, - 790050, - 625344148, - 789748, - 625260884, - 789385, - 625175500, - 789047, - 625080722, - 788731, - 624994037, - 788381, - 624903823, - 788082, - 624831592, - 787702, - 624729497, - 787400, - 624645124, - 787066, - 624577428, - 786655, - 624472018, - 786323, - 624404277, - 785909, - 624312250, - 785553, - 624230452, - 785208, - 624142740, - 784839, - 624041538, - 784509, - 623952699, - 784184, - 623868576, - 783833, - 623791860, - 783447, - 623697246, - 783049, - 623600859, - 782717, - 623517901, - 782400, - 623434660, - 782096, - 623365015, - 781743, - 623275067, - 781366, - 623187714, - 781001, - 623109967, - 780554, - 623018596, - 780052, - 622911544, - 779903, - 622837242, - 779496, - 622750753, - 779094, - 622673207, - 778718, - 622588580, - 778267, - 622473155, - 777984, - 622414912, - 777622, - 622324148, - 777283, - 622235221, - 776923, - 622140321, - 776540, - 622063618, - 776181, - 621972163, - 775808, - 621884563, - 775458, - 621804072, - 775051, - 621699960, - 774761, - 621633622, - 774364, - 621547837, - 774004, - 621458185, - 773632, - 621377218, - 773217, - 621285273, - 772874, - 621203450, - 772534, - 621118323, - 772153, - 621034562, - 771792, - 620944447, - 771403, - 620844226, - 771063, - 620766260, - 770702, - 620679069, - 770321, - 620595867, - 770004, - 620503766, - 769682, - 620420673, - 769307, - 620342885, - 768862, - 620253806, - 768514, - 620154790, - 767993, - 620042307, - 767783, - 619999388, - 767399, - 619907637, - 767009, - 619807527, - 766636, - 619722055, - 766198, - 619630498, - 765845, - 619565299, - 765380, - 619472810, - 764854, - 619363488, - 764504, - 619293747, - 764100, - 619219544, - 763630, - 619132167, - 763162, - 619045189, - 762666, - 618944149, - 762333, - 618874737, - 761858, - 618765964, - 761454, - 618690276, - 760709, - 618593012, - 759726, - 618504950, - 759286, - 618441414, - 758745, - 618340711, - 758165, - 618248669, - 757669, - 618168780, - 757260, - 618094148, - 756865, - 618003334, - 756497, - 617908513, - 756073, - 617822264, - 755682, - 617729820, - 755276, - 617639393, - 754941, - 617576187, - 754557, - 617465929, - 754287, - 617398344, - 753927, - 617317144, - 753506, - 617215982, - 753126, - 617132849, - 752766, - 617046756, - 752376, - 616946536, - 752126, - 616883832, - 751757, - 616777916, - 751372, - 616710253, - 751032, - 616628167, - 750637, - 616523650, - 750222, - 616418124, - 749940, - 616348149, - 749670, - 616280105, - 749309, - 616194951, - 748963, - 616104331, - 748415, - 616021956, - 748012, - 615912364, - 747665, - 615844851, - 747273, - 615763519, - 746885, - 615654509, - 746543, - 615571495, - 746172, - 615497018, - 745778, - 615407190, - 745391, - 615323284, - 745019, - 615240773, - 744613, - 615136535, - 744340, - 615053701, - 743977, - 614959086, - 743578, - 614861998, - 743331, - 614801622, - 742919, - 614711929, - 742526, - 614619326, - 742126, - 614525151, - 741887, - 614466991, - 741578, - 614371655, - 741176, - 614276433, - 740844, - 614208344, - 740464, - 614111948, - 740056, - 614029989, - 739649, - 613932591, - 739341, - 613848800, - 738969, - 613751885, - 738690, - 613686176, - 738357, - 613586831, - 738020, - 613489604, - 737719, - 613431517, - 737455, - 613340404, - 737217, - 613243659, - 736948, - 613157317, - 736624, - 613057408, - 736443, - 613001582, - 736156, - 612914514, - 735768, - 612799604, - 735515, - 612735618, - 735205, - 612637265, - 734830, - 612536898, - 734575, - 612481353, - 734244, - 612388733, - 733866, - 612298585, - 733530, - 612204917, - 733249, - 612134774, - 732921, - 612033644, - 732592, - 611944042, - 732302, - 611862474, - 731964, - 611784123, - 731620, - 611702109, - 731281, - 611607866, - 730904, - 611510203, - 730520, - 611413813, - 730196, - 611335502, - 729896, - 611273129, - 729550, - 611185288, - 729147, - 611083880, - 728805, - 610992316, - 728475, - 610909208, - 728135, - 610834750, - 727709, - 610719968, - 727491, - 610667624, - 727112, - 610562988, - 726675, - 610477512, - 726321, - 610395743, - 725934, - 610320246, - 725544, - 610232493, - 725254, - 610145972, - 724985, - 610061323, - 724634, - 609955981, - 724327, - 609890991, - 723956, - 609778307, - 723639, - 609695118, - 723423, - 609627816, - 723139, - 609543730, - 722867, - 609450708, - 722579, - 609356986, - 722227, - 609273551, - 721905, - 609178894, - 721509, - 609080985, - 721271, - 609022388, - 720784, - 608891663, - 720619, - 608848126, - 720300, - 608766597, - 719909, - 608665049, - 719498, - 608566283, - 719127, - 608505761, - 718709, - 608397696, - 718353, - 608309357, - 717997, - 608237064, - 717578, - 608152633, - 717170, - 608063859, - 716748, - 607967646, - 716409, - 607879746, - 716144, - 607808253, - 715800, - 607707476, - 715480, - 607638243, - 715054, - 607527084, - 714729, - 607471472, - 714350, - 607385311, - 713938, - 607296531, - 713392, - 607211962, - 713020, - 607125235, - 712306, - 607028163, - 711605, - 606939225, - 711100, - 606849018, - 710607, - 606743697, - 710319, - 606677735, - 709945, - 606574057, - 709721, - 606521341, - 709368, - 606419190, - 709038, - 606336039, - 708600, - 606239705, - 708281, - 606165579, - 707944, - 606081161, - 707648, - 605984560, - 707331, - 605901328, - 707019, - 605828262, - 706607, - 605731020, - 706187, - 605652160, - 705694, - 605535132, - 705433, - 605483907, - 705139, - 605374529, - 704804, - 605307412, - 704530, - 605217933, - 704178, - 605107875, - 703864, - 605026465, - 703372, - 604965581, - 702907, - 604849115, - 702686, - 604782242, - 702396, - 604696890, - 702076, - 604608693, - 701616, - 604520421, - 701026, - 604410178, - 700756, - 604356672, - 700346, - 604257819, - 700116, - 604186044, - 699799, - 604077677, - 699522, - 604015803, - 699228, - 603928226, - 698835, - 603825537, - 698453, - 603714757, - 698345, - 603667499, - 698011, - 603556140, - 697716, - 603469638, - 697393, - 603376016, - 697139, - 603322050, - 696832, - 603233123, - 696477, - 603132704, - 696185, - 603028149, - 695988, - 602968673, - 695737, - 602886619, - 695394, - 602789384, - 695014, - 602689310, - 694803, - 602628439, - 694505, - 602533043, - 694203, - 602438079, - 694009, - 602374375, - 693732, - 602280705, - 693467, - 602190863, - 693193, - 602098945, - 692943, - 602027307, - 692677, - 601937838, - 692467, - 601855771, - 692230, - 601754650, - 691888, - 601644886, - 691643, - 601565001, - 691387, - 601465082, - 691269, - 601409626, - 691058, - 601330945, - 690854, - 601246296, - 690629, - 601141789, - 690435, - 601067614, - 690193, - 600979907, - 689951, - 600883641, - 689749, - 600802756, - 689453, - 600708374, - 689249, - 600646155, - 689007, - 600536451, - 688726, - 600458011, - 688494, - 600371059, - 688134, - 600300641, - 687711, - 600194927, - 687434, - 600092836, - 687269, - 600038521, - 687026, - 599927901, - 686832, - 599850898, - 686570, - 599749439, - 686356, - 599674675, - 686036, - 599601664, - 685781, - 599515202, - 685530, - 599411492, - 685351, - 599333115, - 685058, - 599217848, - 684932, - 599152652, - 684726, - 599075269, - 684419, - 598997905, - 684163, - 598901497, - 683956, - 598824707, - 683708, - 598716414, - 683527, - 598657468, - 683245, - 598548340, - 682855, - 598461721, - 682568, - 598370690, - 682370, - 598293264, - 682155, - 598226873, - 681891, - 598136878, - 681617, - 598048548, - 681280, - 597943703, - 681003, - 597869893, - 679465, - 597777622, - 679165, - 597704057, - 676783, - 597617460, - 676532, - 597518301, - 676263, - 597439856, - 675998, - 597360785, - 675644, - 597246311, - 675423, - 597188198, - 675093, - 597074004, - 674826, - 597015258, - 674585, - 596931124, - 674295, - 596841168, - 673971, - 596750670, - 673657, - 596655722, - 673333, - 596585538, - 672926, - 596473941, - 672706, - 596411110, - 672417, - 596308810, - 672128, - 596232170, - 671793, - 596148591, - 671442, - 596066063, - 671086, - 595952546, - 670785, - 595892899, - 670478, - 595792603, - 670188, - 595710650, - 669944, - 595626966, - 669588, - 595520316, - 669272, - 595433369, - 669031, - 595368886, - 668659, - 595268706, - 668361, - 595187318, - 668046, - 595108694, - 667747, - 595011656, - 667443, - 594918941, - 667195, - 594855960, - 666744, - 594731279, - 666538, - 594673263, - 666198, - 594581327, - 665916, - 594504154, - 665551, - 594404802, - 665151, - 594306160, - 664834, - 594237671, - 664463, - 594164256, - 663967, - 594037875, - 663696, - 593965302, - 663422, - 593905398, - 663037, - 593807047, - 662636, - 593713695, - 662261, - 593637810, - 661907, - 593561460, - 661487, - 593460951, - 660993, - 593360324, - 660642, - 593297825, - 651924, - 593212799, - 651355, - 593128313, - 650701, - 593040060, - 639830, - 592943106, - 627956, - 592851540, - 619892, - 592750963, - 616194, - 592683290, - 610931, - 592601474, - 604041, - 592509226, - 600293, - 592438116, - 596213, - 592329325, - 594223, - 592251347, - 592110, - 592160341, - 590161, - 592079754, - 587118, - 591987375, - 585157, - 591915610, - 583920, - 591817362, - 583403, - 591738649, - 582733, - 591628427, - 582236, - 591554183, - 581743, - 591459857, - 581233, - 591370357, - 580779, - 591295835, - 580275, - 591226785, - 577878, - 591141713, - 576988, - 591054806, - 576392, - 590956014, - 575523, - 590868124, - 574703, - 590790324, - 574077, - 590688262, - 573508, - 590603281, - 572914, - 590531537, - 572330, - 590447600, - 571683, - 590333305, - 571333, - 590278061, - 570776, - 590175472, - 570189, - 590094343, - 569207, - 590001929, - 566829, - 589917395, - 564837, - 589824111, - 564325, - 589758879, - 563908, - 589665540, - 563433, - 589579422, - 562889, - 589498701, - 562194, - 589397163, - 560174, - 589314829, - 559296, - 589212645, - 558528, - 589136064, - 557856, - 589056389, - 556967, - 588978194, - 554305, - 588885328, - 553171, - 588784163, - 552512, - 588705057, - 551751, - 588609244, - 550996, - 588536783, - 548250, - 588445491, - 547818, - 588368584, - 547396, - 588287967, - 546805, - 588200504, - 545670, - 588102324, - 543547, - 588020129, - 542077, - 587912920, - 541592, - 587846143, - 540964, - 587735777, - 539348, - 587669957, - 536539, - 587583196, - 533361, - 587513244, - 529280, - 587425937, - 522840, - 587335858, - 521890, - 587253316, - 520193, - 587149039, - 517789, - 587062961, - 514695, - 586982610, - 511042, - 586900841, - 506657, - 586822140, - 505992, - 586731857, - 502105, - 586618922, - 500561, - 586525487, - 497263, - 586456456, - 484131, - 586378279, - 476879, - 586297535, - 476093, - 586181865, - 475666, - 586119501, - 475131, - 586033781, - 474421, - 585933398, - 473828, - 585845766, - 473215, - 585765449, - 472657, - 585679784, - 472005, - 585591617, - 471335, - 585507956, - 470849, - 585432827, - 470219, - 585337093, - 469665, - 585254988, - 469052, - 585162139, - 468498, - 585089408, - 467866, - 585007712, - 467239, - 584913050, - 466700, - 584824318, - 465333, - 584735652, - 462619, - 584644160, - 461659, - 584565165, - 460790, - 584443771, - 460311, - 584380002, - 459744, - 584302967, - 459278, - 584229891, - 458684, - 584109623, - 458205, - 584044924, - 457655, - 583950396, - 457142, - 583865060, - 456540, - 583770350, - 456029, - 583681078, - 455616, - 583598327, - 455110, - 583509696, - 454618, - 583429894, - 454021, - 583337521, - 453547, - 583269537, - 453034, - 583170014, - 452542, - 583096800, - 452031, - 583006942, - 451491, - 582913320, - 450864, - 582826549, - 450320, - 582736352, - 449900, - 582661446, - 449418, - 582575536, - 448978, - 582501915, - 448582, - 582413296, - 448104, - 582305062, - 447710, - 582227562, - 447271, - 582145544, - 446797, - 582045859, - 446317, - 581954254, - 445933, - 581894880, - 445500, - 581780076, - 445177, - 581714309, - 444737, - 581614492, - 444170, - 581497477, - 443854, - 581423949, - 443510, - 581346413, - 443176, - 581267531, - 442842, - 581189773, - 442518, - 581116160, - 442115, - 581028176, - 441733, - 580929324, - 441390, - 580854701, - 441031, - 580766758, - 440709, - 580679188, - 440435, - 580592902, - 440116, - 580488687, - 439818, - 580409383, - 439490, - 580338239, - 439028, - 580218413, - 438660, - 580109892, - 438347, - 579980867, - 438047, - 579870353, - 437928, - 579821486, - 437629, - 579724865, - 437248, - 579618514, - 437117, - 579558310, - 436508, - 579360178, - 436301, - 579299855, - 435969, - 579218953, - 435381, - 579063154, - 435284, - 579020078, - 434879, - 578901451, - 434763, - 578868193, - 434428, - 578778374, - 434058, - 578671267, - 433848, - 578609743, - 433509, - 578527853, - 433112, - 578395490, - 432891, - 578322446, - 432660, - 578262965, - 432390, - 578177394, - 432032, - 578068916, - 431578, - 577979189, - 430910, - 577922698, - 430488, - 577800938, - 429997, - 577741719, - 429684, - 577641560, - 429474, - 577576552, - 428703, - 577365531, - 428285, - 577256004, - 428159, - 577224558, - 427681, - 577131718, - 427373, - 577056937, - 427053, - 576950633, - 426757, - 576878103, - 424531, - 576795659, - 422197, - 576692895, - 421400, - 576608864, - 421010, - 576501310, - 420813, - 576453475, - 420396, - 576358333, - 417417, - 576261867, - 416683, - 576190256, - 416326, - 576096947, - 415912, - 576005939, - 414559, - 575884848, - 414189, - 575832591, - 413262, - 575755934, - 412958, - 575650660, - 412631, - 575559736, - 412318, - 575476770, - 411803, - 575390528, - 411551, - 575326141, - 410895, - 575224151, - 410547, - 575151642, - 409121, - 575034975, - 408316, - 574959394, - 406615, - 574878417, - 401586, - 574802765, - 401222, - 574716990, - 400918, - 574619693, - 400681, - 574527593, - 400438, - 574463150, - 400113, - 574365407, - 399813, - 574293367, - 399459, - 574193144, - 399155, - 574105673, - 398871, - 574034524, - 398582, - 573920780, - 398283, - 573844577, - 397967, - 573752704, - 397648, - 573668996, - 397355, - 573595055, - 396965, - 573477575, - 396756, - 573414589, - 396450, - 573317001, - 396176, - 573238538, - 395875, - 573158417, - 395485, - 573062921, - 395199, - 572978867, - 394885, - 572896748, - 394597, - 572802183, - 394280, - 572705994, - 393975, - 572621922, - 393754, - 572563660, - 393416, - 572457902, - 393093, - 572358143, - 392856, - 572285340, - 392607, - 572216559, - 392373, - 572125555, - 391534, - 572005961, - 390764, - 571929501, - 390268, - 571846813, - 389885, - 571766431, - 389583, - 571695099, - 389159, - 571595634, - 388714, - 571502905, - 388325, - 571406300, - 388114, - 571340126, - 387780, - 571264440, - 387314, - 571140531, - 387094, - 571087455, - 386685, - 571008819, - 386237, - 570880195, - 385967, - 570796745, - 385775, - 570741010, - 385344, - 570627641, - 385056, - 570556645, - 384749, - 570485695, - 384168, - 570375799, - 383646, - 570296158, - 383134, - 570223781, - 382574, - 570139931, - 382064, - 570049499, - 381511, - 569933598, - 381311, - 569875744, - 380849, - 569795871, - 380365, - 569680719, - 380185, - 569624230, - 379612, - 569534385, - 378466, - 569449513, - 377373, - 569342882, - 375395, - 569250530, - 374736, - 569194082, - 374461, - 569079435, - 374252, - 569013920, - 373937, - 568908461, - 373424, - 568822588, - 373085, - 568735396, - 372059, - 568635864, - 371443, - 568562812, - 371095, - 568481428, - 370897, - 568410467, - 370631, - 568315018, - 369614, - 568242262, - 368765, - 568148199, - 368428, - 568061800, - 367783, - 567945132, - 367581, - 567871165, - 366991, - 567803262, - 365389, - 567724158, - 363616, - 567623207, - 362181, - 567501340, - 361033, - 567441130, - 358015, - 567349371, - 356702, - 567284999, - 355475, - 567206180, - 353810, - 567065907, - 351334, - 567021770, - 343768, - 566891909, - 340252, - 566861184, - 339219, - 566775054, - 337202, - 566644341, - 336622, - 566600610, - 336031, - 566514930, - 331483, - 566412754, - 330520, - 566304789, - 329708, - 566245800, - 328418, - 566149689, - 327060, - 566078277, - 326796, - 565991580, - 326497, - 565883817, - 326244, - 565803438, - 325814, - 565703116, - 325563, - 565643433, - 325326, - 565553704, - 325115, - 565472314, - 324887, - 565389677, - 324566, - 565275173, - 324286, - 565215227, - 324019, - 565134048, - 323724, - 565035130, - 323421, - 564926839, - 323184, - 564843116, - 322945, - 564766061, - 322664, - 564681874, - 322398, - 564604267, - 322126, - 564513308, - 321836, - 564419588, - 321564, - 564336109, - 321364, - 564264013, - 321041, - 564163955, - 320503, - 564097376, - 320236, - 563988176, - 320015, - 563919775, - 319588, - 563776354, - 319501, - 563734503, - 319295, - 563665111, - 318940, - 563545061, - 318598, - 563425229, - 318538, - 563403533, - 318139, - 563268530, - 318001, - 563222702, - 317759, - 563114189, - 317578, - 563044604, - 317145, - 562905216, - 317100, - 562881441, - 316847, - 562776024, - 316602, - 562682099, - 316362, - 562601578, - 316076, - 562496973, - 315960, - 562454187, - 315639, - 562330123, - 315412, - 562246873, - 315205, - 562176589, - 314958, - 562087736, - 314748, - 562016905, - 314452, - 561894669, - 314274, - 561814497, - 314094, - 561747937, - 313867, - 561656587, - 313629, - 561579436, - 313304, - 561458926, - 312942, - 561396858, - 312291, - 561315399, - 311640, - 561188889, - 311497, - 561136762, - 311203, - 561040908, - 310988, - 560986431, - 310724, - 560882616, - 310440, - 560787181, - 310159, - 560685148, - 310032, - 560635567, - 309772, - 560534119, - 309570, - 560460083, - 309307, - 560379544, - 309031, - 560289416, - 308322, - 560112618, - 308075, - 560020072, - 307780, - 559931144, - 307588, - 559860342, - 307354, - 559753320, - 307133, - 559669616, - 306932, - 559591648, - 306654, - 559499260, - 306472, - 559433431, - 306223, - 559333754, - 305951, - 559255193, - 305668, - 559163068, - 305430, - 559075350, - 305212, - 558991606, - 304998, - 558914194, - 304766, - 558816999, - 304520, - 558738251, - 304239, - 558653129, - 303980, - 558568962, - 303657, - 558443208, - 303468, - 558379210, - 303212, - 558292592, - 302995, - 558218537, - 302676, - 558104616, - 302341, - 558007492, - 302169, - 557961318, - 301843, - 557848061, - 301526, - 557754369, - 301360, - 557699561, - 301173, - 557615810, - 300908, - 557516220, - 300194, - 557419708, - 299376, - 557339605, - 299082, - 557244163, - 298835, - 557171297, - 298572, - 557079490, - 298236, - 556993735, - 297945, - 556905804, - 297625, - 556825005, - 297265, - 556741965, - 296725, - 556666738, - 296402, - 556563182, - 296099, - 556455171, - 295936, - 556379310, - 295744, - 556311354, - 295490, - 556234632, - 295059, - 556121396, - 294454, - 556029723, - 294182, - 555958405, - 293779, - 555857478, - 293493, - 555751997, - 293374, - 555700233, - 293107, - 555605887, - 292893, - 555529062, - 292651, - 555459011, - 292378, - 555357751, - 292072, - 555253567, - 291913, - 555194104, - 291618, - 555097383, - 291173, - 554981790, - 290935, - 554906457, - 290681, - 554837074, - 290348, - 554741221, - 290019, - 554644593, - 289834, - 554586743, - 289550, - 554495363, - 289221, - 554407342, - 288574, - 554282481, - 288360, - 554240867, - 288091, - 554146216, - 287822, - 554045452, - 287632, - 553964332, - 287363, - 553865082, - 287196, - 553809864, - 286944, - 553720657, - 286670, - 553638083, - 286333, - 553520941, - 286097, - 553467252, - 285748, - 553351475, - 285423, - 553263050, - 285068, - 553190756, - 284056, - 553080367, - 283637, - 553036531, - 283043, - 552909429, - 282810, - 552864701, - 282274, - 552747323, - 281072, - 552670214, - 278284, - 552590989, - 270922, - 552469590, - 267723, - 552424436, - 261162, - 552311146, - 258613, - 552241378, - 257104, - 552145104, - 256418, - 552061502, - 255826, - 551995148, - 254712, - 551872336, - 254365, - 551821723, - 253322, - 551718374, - 252350, - 551650134, - 251275, - 551545277, - 251067, - 551477033, - 250714, - 551364555, - 250476, - 551300179, - 250123, - 551197528, - 249899, - 551124807, - 249680, - 551048806, - 249466, - 550958340, - 249176, - 550845176, - 248965, - 550755250, - 248831, - 550707188, - 248550, - 550618040, - 248396, - 550528485, - 248094, - 550428102, - 247902, - 550339025, - 247624, - 550234007, - 247312, - 550139421, - 247025, - 550062551, - 246799, - 550011183, - 246400, - 549913615, - 246036, - 549840791, - 245551, - 549726153, - 245298, - 549656642, - 245073, - 549571343, - 244855, - 549486316, - 244671, - 549394253, - 244462, - 549296247, - 244204, - 549182621, - 244133, - 549140384, - 243874, - 549044586, - 243630, - 548954324, - 243363, - 548859539, - 243179, - 548805955, - 242912, - 548700778, - 242475, - 548595199, - 242293, - 548518591, - 242000, - 548411356, - 241807, - 548342677, - 241565, - 548266786, - 241338, - 548195741, - 241086, - 548100276, - 240898, - 548016030, - 240626, - 547909068, - 240436, - 547830082, - 240279, - 547763201, - 240054, - 547676864, - 239774, - 547560376, - 239542, - 547467753, - 239379, - 547423163, - 239120, - 547312447, - 238923, - 547242640, - 238690, - 547162849, - 238431, - 547075852, - 238210, - 546989569, - 237958, - 546874708, - 237757, - 546808810, - 237565, - 546728653, - 237287, - 546636805, - 237051, - 546558062, - 236811, - 546472598, - 236500, - 546353738, - 236269, - 546242269, - 236176, - 546189880, - 236035, - 546120285, - 235788, - 546016689, - 235549, - 545937458, - 235307, - 545862999, - 235032, - 545770306, - 234711, - 545647115, - 234560, - 545583901, - 234338, - 545472300, - 234205, - 545413477, - 234027, - 545337344, - 233798, - 545254485, - 233562, - 545161600, - 233337, - 545081901, - 233017, - 544969481, - 232908, - 544913397, - 232680, - 544815644, - 232458, - 544733291, - 232230, - 544658415, - 232014, - 544561392, - 231782, - 544458401, - 231583, - 544395779, - 231419, - 544312613, - 231082, - 544183160, - 230876, - 544106191, - 230719, - 544052097, - 230421, - 543945662, - 230215, - 543862891, - 229946, - 543760154, - 229791, - 543682797, - 229536, - 543602895, - 229302, - 543505965, - 229107, - 543441575, - 228794, - 543324261, - 228640, - 543261531, - 228367, - 543170257, - 228159, - 543093961, - 227933, - 543014383, - 227658, - 542900502, - 227482, - 542836046, - 227243, - 542755084, - 226949, - 542634932, - 226749, - 542572906, - 226508, - 542464871, - 226291, - 542377830, - 226104, - 542307877, - 225800, - 542189638, - 225624, - 542115018, - 225448, - 542053683, - 225235, - 541945860, - 225042, - 541885512, - 224834, - 541802862, - 224575, - 541690573, - 224397, - 541623603, - 224162, - 541543981, - 223910, - 541462094, - 223674, - 541354673, - 223514, - 541270273, - 223141, - 541169604, - 222848, - 541062720, - 222711, - 541025395, - 222501, - 540915731, - 222300, - 540833140, - 222112, - 540753166, - 221937, - 540656104, - 221731, - 540571904, - 221526, - 540486899, - 221302, - 540390869, - 221121, - 540317893, - 220817, - 540200441, - 220677, - 540129442, - 220551, - 540056354, - 220350, - 539957191, - 220218, - 539893267, - 220005, - 539811038, - 219798, - 539733873, - 219565, - 539621730, - 219409, - 539543726, - 219176, - 539428693, - 219060, - 539388260, - 218793, - 539278961, - 218617, - 539212575, - 218402, - 539109929, - 218160, - 539008770, - 217977, - 538918696, - 217869, - 538860487, - 217614, - 538746632, - 217495, - 538691165, - 217263, - 538578575, - 217058, - 538483975, - 216923, - 538418401, - 216742, - 538329540, - 216574, - 538265469, - 216315, - 538158707, - 216006, - 538085732, - 215662, - 537992587, - 215328, - 537877460, - 215121, - 537829274, - 214896, - 537700502, - 214732, - 537655791, - 214530, - 537557932, - 214272, - 537454840, - 214057, - 537388275, - 213823, - 537288354, - 213631, - 537208037, - 213423, - 537116139, - 213154, - 537028266, - 212974, - 536956925, - 212753, - 536858011, - 212527, - 536784996, - 212284, - 536686715, - 211926, - 536587131, - 211690, - 536519482, - 211450, - 536449670, - 211167, - 536359785, - 210841, - 536266528, - 210440, - 536152228, - 210251, - 536092766, - 209941, - 535970233, - 209848, - 535916455, - 209669, - 535837558, - 209281, - 535715786, - 209098, - 535658397, - 208750, - 535562575, - 208462, - 535441149, - 208376, - 535408093, - 208089, - 535286381, - 207883, - 535214528, - 207723, - 535133352, - 207150, - 535051271, - 206900, - 534959436, - 206631, - 534873653, - 206412, - 534792571, - 206095, - 534700932, - 205880, - 534620625, - 205527, - 534502179, - 205383, - 534460033, - 205166, - 534373671, - 204973, - 534290460, - 204750, - 534202359, - 204542, - 534094258, - 204412, - 534024293, - 204213, - 533911240, - 203733, - 533756108, - 202721, - 533685763, - 201613, - 533584091, - 201196, - 533468694, - 201019, - 533376831, - 200936, - 533330740, - 200576, - 533211427, - 200304, - 533152603, - 200063, - 533075329, - 199862, - 532987917, - 199461, - 532890753, - 199177, - 532780345, - 198826, - 532709748, - 198640, - 532647750, - 198457, - 532549910, - 198189, - 532455290, - 197867, - 532338548, - 197720, - 532287556, - 197461, - 532200033, - 197293, - 532117120, - 197082, - 532010251, - 196950, - 531947828, - 196738, - 531846064, - 196583, - 531770833, - 196399, - 531671782, - 196255, - 531587629, - 196107, - 531515861, - 195912, - 531412449, - 195778, - 531348208, - 195607, - 531252717, - 195367, - 531128440, - 195302, - 531087607, - 195131, - 530988849, - 194969, - 530918203, - 194747, - 530799868, - 194551, - 530698433, - 194445, - 530649275, - 194262, - 530553722, - 194042, - 530447735, - 193915, - 530362378, - 193782, - 530283295, - 193683, - 530229552, - 193518, - 530114558, - 193368, - 530057302, - 193168, - 529959310, - 192987, - 529865398, - 192819, - 529773907, - 192668, - 529691283, - 192440, - 529593694, - 192300, - 529494581, - 192024, - 529412242, - 191828, - 529364996, - 191572, - 529232740, - 191402, - 529147752, - 191316, - 529098214, - 191128, - 529010353, - 190910, - 528890491, - 190775, - 528815130, - 190605, - 528728254, - 190440, - 528626107, - 190355, - 528575117, - 190176, - 528484242, - 190012, - 528396956, - 189849, - 528303239, - 189692, - 528230030, - 189518, - 528151393, - 189300, - 528051441, - 189142, - 527983957, - 188964, - 527886706, - 188750, - 527782127, - 188592, - 527705959, - 188403, - 527635763, - 188193, - 527538248, - 188039, - 527454874, - 187883, - 527374104, - 187686, - 527273583, - 187486, - 527182451, - 187323, - 527103811, - 187158, - 527025583, - 186994, - 526942035, - 186740, - 526806805, - 186649, - 526750023, - 186490, - 526676114, - 186275, - 526567135, - 186129, - 526478440, - 186026, - 526427347, - 185864, - 526342066, - 185612, - 526211805, - 185454, - 526137218, - 185318, - 526066509, - 185134, - 525966686, - 185000, - 525895149, - 184774, - 525783592, - 184617, - 525725171, - 184370, - 525623900, - 183871, - 525509858, - 183561, - 525458294, - 183363, - 525364689, - 183149, - 525261758, - 183050, - 525202791, - 182864, - 525103705, - 182718, - 525032455, - 182550, - 524945879, - 182342, - 524852747, - 182164, - 524777967, - 181956, - 524677124, - 181812, - 524613785, - 181595, - 524503797, - 181470, - 524440382, - 181298, - 524346520, - 181119, - 524265206, - 180934, - 524161571, - 180749, - 524066059, - 180606, - 524002559, - 180399, - 523895894, - 180238, - 523827571, - 180080, - 523743351, - 179707, - 523570632, - 179487, - 523450474, - 179187, - 523323163, - 179175, - 523309583, - 178837, - 523187515, - 178719, - 523140981, - 178436, - 523019396, - 178251, - 522948083, - 178036, - 522857343, - 177809, - 522760279, - 177700, - 522708720, - 177530, - 522596042, - 177416, - 522523038, - 177288, - 522447753, - 177136, - 522344633, - 176964, - 522247304, - 176833, - 522182456, - 176671, - 522081532, - 176495, - 521987778, - 176397, - 521925449, - 176256, - 521840978, - 176062, - 521751541, - 175819, - 521646351, - 175717, - 521585917, - 175495, - 521452939, - 175407, - 521383878, - 175223, - 521268722, - 175161, - 521223225, - 175023, - 521135976, - 174892, - 521067224, - 174737, - 520968156, - 174614, - 520885601, - 174440, - 520797371, - 174294, - 520710925, - 174124, - 520630732, - 173937, - 520524678, - 173700, - 520382774, - 173695, - 520377529, - 173504, - 520283921, - 173357, - 520190094, - 173237, - 520120854, - 173055, - 519995351, - 172963, - 519936599, - 172748, - 519820434, - 172631, - 519749580, - 172493, - 519678812, - 172307, - 519577534, - 172188, - 519502651, - 172022, - 519419186, - 171822, - 519327331, - 171587, - 519211694, - 171505, - 519166052, - 171228, - 518992108, - 171127, - 518911184, - 170971, - 518797044, - 170865, - 518724549, - 170755, - 518642833, - 170591, - 518526592, - 170513, - 518467451, - 170382, - 518378033, - 170161, - 518246737, - 170092, - 518196118, - 169965, - 518114553, - 169756, - 517972791, - 169725, - 517947322, - 169587, - 517849974, - 169449, - 517772275, - 169274, - 517672739, - 169161, - 517605287, - 169035, - 517507068, - 168905, - 517421386, - 168766, - 517325833, - 168665, - 517256960, - 168503, - 517161558, - 168421, - 517086692, - 168283, - 517006323, - 168077, - 516844815, - 167974, - 516774048, - 167935, - 516747512, - 167690, - 516593293, - 167639, - 516547111, - 167529, - 516488702, - 167381, - 516395842, - 167261, - 516315219, - 167120, - 516221551, - 166965, - 516116273, - 166849, - 516048168, - 166723, - 515965739, - 166616, - 515887930, - 166500, - 515797571, - 166361, - 515678544, - 166281, - 515609734, - 166144, - 515510597, - 166017, - 515420140, - 165918, - 515347155, - 165753, - 515248118, - 165666, - 515175282, - 165547, - 515094054, - 165449, - 515022594, - 165328, - 514923238, - 165215, - 514837897, - 165106, - 514739589, - 165032, - 514661225, - 164942, - 514586394, - 164850, - 514503118, - 164743, - 514413747, - 164575, - 514284611, - 164513, - 514234321, - 164402, - 514141580, - 164314, - 514054201, - 164183, - 513961192, - 164066, - 513893237, - 163920, - 513803297, - 163780, - 513727969, - 163551, - 513607230, - 163518, - 513553057, - 163343, - 513442367, - 163220, - 513376551, - 163110, - 513295922, - 162986, - 513189698, - 162840, - 513103073, - 162715, - 513034459, - 162585, - 512941065, - 162477, - 512857656, - 162358, - 512755111, - 162251, - 512683278, - 162115, - 512568784, - 161954, - 512469572, - 161856, - 512396942, - 161783, - 512324909, - 161675, - 512246362, - 161566, - 512169596, - 161431, - 512059776, - 161328, - 511996710, - 161180, - 511897514, - 161016, - 511788119, - 160940, - 511739100, - 160824, - 511648944, - 160694, - 511566808, - 160566, - 511470755, - 160379, - 511365983, - 160259, - 511281171, - 160132, - 511196898, - 159975, - 511107040, - 159869, - 511041206, - 159640, - 510921971, - 159502, - 510853060, - 159354, - 510775790, - 159213, - 510700430, - 159088, - 510605710, - 158984, - 510526761, - 158888, - 510442802, - 158772, - 510355960, - 158621, - 510226265, - 158563, - 510176434, - 158429, - 510082618, - 158342, - 510011444, - 158263, - 509921420, - 158111, - 509801685, - 157989, - 509715028, - 157912, - 509648613, - 157797, - 509557904, - 157716, - 509488609, - 157636, - 509340447, - 157483, - 509306811, - 157326, - 509206168, - 157234, - 509133685, - 157121, - 509035655, - 157013, - 508946650, - 156941, - 508863960, - 156871, - 508789404, - 156793, - 508711857, - 156695, - 508610130, - 156601, - 508526016, - 156502, - 508444655, - 156401, - 508367539, - 156292, - 508258005, - 156215, - 508190224, - 156107, - 508103367, - 156008, - 508010559, - 155895, - 507910724, - 155826, - 507851807, - 155692, - 507738758, - 155592, - 507648685, - 155481, - 507554316, - 155383, - 507477510, - 155223, - 507356081, - 155153, - 507294247, - 155090, - 507231515, - 154957, - 507117273, - 154883, - 507056182, - 154751, - 506949594, - 154647, - 506865255, - 154577, - 506806204, - 154435, - 506683206, - 154349, - 506613279, - 154223, - 506516008, - 154117, - 506465039, - 153917, - 506319476, - 153884, - 506290215, - 153751, - 506205050, - 153631, - 506106721, - 153503, - 506018469, - 153402, - 505946361, - 153274, - 505863228, - 153127, - 505751377, - 153037, - 505690566, - 152887, - 505559848, - 152827, - 505514263, - 152690, - 505413481, - 152594, - 505337581, - 152520, - 505240290, - 152412, - 505167564, - 152297, - 505084633, - 152117, - 504950693, - 152026, - 504888570, - 151933, - 504828499, - 151807, - 504741883, - 151699, - 504636041, - 151564, - 504540239, - 151429, - 504433876, - 151356, - 504375424, - 151274, - 504305298, - 151137, - 504206017, - 151038, - 504131319, - 150898, - 504045408, - 150759, - 503939621, - 150647, - 503865556, - 150527, - 503766080, - 150416, - 503691508, - 150255, - 503574283, - 150180, - 503515977, - 150096, - 503440875, - 149967, - 503339219, - 149863, - 503262291, - 149760, - 503184970, - 149645, - 503084468, - 149501, - 502992855, - 149358, - 502894660, - 149248, - 502819636, - 149173, - 502749576, - 149043, - 502656335, - 148736, - 502548691, - 148423, - 502466627, - 148271, - 502405152, - 147991, - 502308606, - 147576, - 502200907, - 147404, - 502135444, - 147055, - 502022589, - 146913, - 501977240, - 146518, - 501859187, - 146295, - 501798690, - 145974, - 501689062, - 145628, - 501596458, - 145321, - 501509286, - 145093, - 501440384, - 144638, - 501299327, - 144547, - 501268965, - 144201, - 501186501, - 143913, - 501106658, - 143644, - 501019552, - 143401, - 500936950, - 143135, - 500841154, - 142790, - 500727687, - 142631, - 500670770, - 142253, - 500531071, - 142181, - 500505126, - 141766, - 500378440, - 141615, - 500322081, - 141339, - 500227722, - 140705, - 500015629, - 140498, - 499947647, - 140353, - 499895914, - 139994, - 499780611, - 139788, - 499713921, - 139530, - 499622483, - 139316, - 499557841, - 139031, - 499453257, - 138600, - 499310819, - 138436, - 499256118, - 138264, - 499203842, - 137942, - 499120341, - 137636, - 499009240, - 137427, - 498935742, - 137095, - 498840193, - 136833, - 498761400, - 136440, - 498643908, - 136230, - 498575630, - 135943, - 498478380, - 135800, - 498416961, - 135345, - 498264861, - 134962, - 498141639, - 134771, - 498086843, - 134397, - 497970246, - 134111, - 497889133, - 133834, - 497814082, - 133498, - 497703945, - 133218, - 497622659, - 132989, - 497558098, - 132302, - 497357771, - 131601, - 497137471, - 131212, - 497025502, - 130639, - 496912259, - 130428, - 496879495, - 129896, - 496728373, - 129739, - 496673819, - 129427, - 496566006, - 129280, - 496513084, - 129078, - 496444586, - 128807, - 496342310, - 128310, - 496177906, - 127855, - 496042590, - 127641, - 495958967, - 127550, - 495915808, - 127265, - 495820223, - 127062, - 495751396, - 126557, - 495582976, - 126178, - 495461796, - 125908, - 495360561, - 125766, - 495298010, - 125449, - 495191180, - 125281, - 495131939, - 124929, - 495018560, - 124769, - 494972239, - 124277, - 494840890, - 124137, - 494800287, - 123835, - 494695752, - 123592, - 494631574, - 123317, - 494534068, - 123083, - 494449609, - 122615, - 494312545, - 122496, - 494273081, - 122182, - 494167710, - 122054, - 494109203, - 121599, - 493960233, - 121494, - 493925349, - 121186, - 493831002, - 120900, - 493736863, - 120672, - 493650416, - 120522, - 493580414, - 120115, - 493433769, - 119934, - 493364447, - 119664, - 493275212, - 119340, - 493153551, - 119125, - 493075483, - 118779, - 492951649, - 118589, - 492846991, - 118512, - 492801279, - 118214, - 492685936, - 118037, - 492611074, - 117876, - 492536755, - 117576, - 492422007, - 117475, - 492381712, - 117248, - 492291822, - 116963, - 492170446, - 116844, - 492116747, - 116653, - 492030077, - 116374, - 491933114, - 116208, - 491868145, - 115985, - 491772951, - 115714, - 491670043, - 115461, - 491583901, - 115208, - 491487913, - 115025, - 491401969, - 114854, - 491323276, - 114642, - 491239109, - 114367, - 491138115, - 114117, - 491037967, - 113995, - 490987947, - 113715, - 490886466, - 113527, - 490817127, - 113104, - 490661091, - 113082, - 490651387, - 112595, - 490455062, - 112418, - 490396972, - 111992, - 490225454, - 111676, - 490100803, - 111448, - 490012709, - 111075, - 489878754, - 110645, - 489746370, - 110497, - 489698393, - 110196, - 489594808, - 109685, - 489414160, - 109448, - 489323715, - 109224, - 489242309, - 108954, - 489185383, - 108452, - 489076950, - 108162, - 488986558, - 107957, - 488918621, - 107688, - 488820833, - 107273, - 488682467, - 107214, - 488652932, - 107015, - 488576247, - 106775, - 488485761, - 106334, - 488321541, - 106100, - 488224066, - 105865, - 488127792, - 105690, - 488052085, - 105387, - 487965005, - 105186, - 487884463, - 104926, - 487794514, - 104639, - 487708748, - 104327, - 487603448, - 104114, - 487533299, - 103800, - 487439653, - 103396, - 487358631, - 103119, - 487273497, - 102908, - 487194191, - 102521, - 487067898, - 102387, - 487027884, - 101911, - 486864213, - 101812, - 486841812, - 101599, - 486763345, - 101241, - 486641080, - 100943, - 486563557, - 100479, - 486413492, - 100212, - 486334997, - 99905, - 486218562, - 99687, - 486147902, - 99408, - 486049713, - 99201, - 485980556, - 98983, - 485895036, - 98726, - 485796747, - 98444, - 485683413, - 98119, - 485563306, - 97803, - 485450069, - 97549, - 485351906, - 97300, - 485270978, - 97137, - 485208303, - 96915, - 485127447, - 96607, - 485000061, - 96495, - 484956427, - 96202, - 484848388, - 96010, - 484782581, - 95718, - 484682644, - 95409, - 484584667, - 95186, - 484510557, - 94864, - 484412693, - 94572, - 484337709, - 94221, - 484230715, - 93976, - 484145983, - 93823, - 484092260, - 93258, - 483886756, - 92627, - 483705661, - 92359, - 483613764, - 92251, - 483570743, - 91875, - 483450526, - 91693, - 483393667, - 91424, - 483299691, - 91151, - 483201476, - 90941, - 483120621, - 90601, - 483015751, - 90468, - 482969383, - 90063, - 482854835, - 89722, - 482776952, - 89556, - 482676318, - 89432, - 482618357, - 89184, - 482521172, - 88950, - 482442403, - 88678, - 482349644, - 88433, - 482268181, - 88160, - 482166998, - 87909, - 482087086, - 87554, - 481964514, - 87397, - 481908582, - 86946, - 481753031, - 86599, - 481620558, - 86447, - 481551418, - 86301, - 481480172, - 86110, - 481390359, - 85905, - 481318967, - 85671, - 481219406, - 85469, - 481137059, - 85250, - 481039830, - 85033, - 480951209, - 84862, - 480880931, - 84640, - 480785743, - 84464, - 480707005, - 84216, - 480607104, - 84017, - 480534445, - 83718, - 480416725, - 83570, - 480359495, - 83372, - 480290040, - 83096, - 480186770, - 82864, - 480100889, - 82506, - 479982932, - 82380, - 479939283, - 82057, - 479829971, - 81792, - 479741834, - 81599, - 479667829, - 81341, - 479561147, - 81188, - 479504407, - 80912, - 479403374, - 80651, - 479334685, - 80277, - 479224862, - 79872, - 479094709, - 79822, - 479072573, - 79601, - 478993350, - 79342, - 478890415, - 79144, - 478809270, - 78966, - 478725402, - 78727, - 478614651, - 78591, - 478560822, - 78403, - 478468361, - 78194, - 478382835, - 77886, - 478269534, - 77505, - 478106042, - 77254, - 478008456, - 77126, - 477953157, - 76932, - 477862594, - 76696, - 477773713, - 76487, - 477693006, - 76172, - 477568499, - 76066, - 477523549, - 75774, - 477409193, - 75613, - 477335019, - 75324, - 477216116, - 75216, - 477165873, - 75021, - 477088820, - 74799, - 476992878, - 74412, - 476826146, - 74051, - 476700192, - 73929, - 476652183, - 73565, - 476535248, - 73382, - 476478094, - 73159, - 476401526, - 72908, - 476291039, - 72744, - 476227739, - 72518, - 476123918, - 72301, - 476042333, - 72009, - 475930330, - 71828, - 475863086, - 71587, - 475752421, - 71477, - 475711248, - 71144, - 475587316, - 71047, - 475515379, - 70559, - 475381884, - 70322, - 475306509, - 70145, - 475249078, - 69911, - 475187155, - 69475, - 475078441, - 69162, - 475009312, - 68921, - 474928888, - 68614, - 474831404, - 68380, - 474745131, - 68155, - 474669162, - 67676, - 474442919, - 67554, - 474387701, - 67336, - 474301211, - 67149, - 474215729, - 66925, - 474141819, - 66626, - 474043125, - 66127, - 473843707, - 66034, - 473808633, - 65654, - 473663746, - 65566, - 473615980, - 65366, - 473529278, - 65039, - 473403362, - 64919, - 473361754, - 64654, - 473251253, - 64483, - 473189249, - 64226, - 473070147, - 64084, - 473003621, - 63871, - 472900160, - 63753, - 472845370, - 63560, - 472768973, - 63318, - 472648967, - 63204, - 472597673, - 63027, - 472497041, - 62866, - 472419539, - 62559, - 472285025, - 62483, - 472246102, - 62332, - 472164665, - 62138, - 472078426, - 61864, - 471954385, - 61760, - 471907774, - 61586, - 471810716, - 61390, - 471715961, - 61240, - 471638208, - 60963, - 471509966, - 60795, - 471439244, - 60637, - 471390975, - 60263, - 471222915, - 60236, - 471200877, - 60057, - 471096057, - 59896, - 471020858, - 59677, - 470914870, - 59543, - 470844533, - 59378, - 470754210, - 59211, - 470667341, - 59102, - 470609769, - 58761, - 470425432, - 58547, - 470326013, - 58445, - 470252575, - 58274, - 470163305, - 58092, - 470081518, - 57828, - 469963390, - 57720, - 469912434, - 57483, - 469804314, - 57255, - 469682560, - 57200, - 469649332, - 57014, - 469548453, - 56877, - 469483479, - 56689, - 469391840, - 56466, - 469297576, - 56109, - 469183235, - 55924, - 469081300, - 55869, - 469054063, - 55722, - 468971914, - 55473, - 468844959, - 55274, - 468733403, - 55159, - 468678773, - 54918, - 468551248, - 54867, - 468516737, - 54647, - 468409467, - 54551, - 468356849, - 54295, - 468230881, - 54182, - 468166628, - 54034, - 468099075, - 53861, - 468015101, - 53676, - 467915058, - 53502, - 467823424, - 53267, - 467720639, - 53071, - 467637490, - 52927, - 467562170, - 52775, - 467491646, - 52509, - 467385080, - 52307, - 467320828, - 51788, - 467215404, - 51397, - 467135938, - 51135, - 467014610, - 51069, - 466971253, - 50913, - 466878413, - 50729, - 466765499, - 50637, - 466711317, - 50349, - 466564810, - 50041, - 466428859, - 49887, - 466360364, - 49727, - 466283532, - 49530, - 466169030, - 49417, - 466105490, - 49258, - 466025996, - 49027, - 465901712, - 48728, - 465743288, - 48555, - 465667766, - 48357, - 465590891, - 48170, - 465506493, - 47995, - 465415472, - 47767, - 465303312, - 47605, - 465210198, - 47326, - 465068776, - 47050, - 464919237, - 47017, - 464895456, - 46817, - 464805650, - 46500, - 464693368, - 46401, - 464634825, - 46233, - 464554908, - 46056, - 464458650, - 45912, - 464390533, - 45739, - 464289118, - 45443, - 464149247, - 45251, - 464057834, - 45155, - 464017453, - 45020, - 463934984, - 44846, - 463850546, - 44573, - 463700239, - 44423, - 463614693, - 44041, - 463424531, - 43723, - 463256157, - 43522, - 463148007, - 43402, - 463078146, - 43172, - 462967460, - 42990, - 462868811, - 42808, - 462768975, - 42776, - 462751007, - 42603, - 462660006, - 42196, - 462489325, - 42005, - 462405285, - 41828, - 462317050, - 41649, - 462225134, - 41358, - 462122366, - 41011, - 461927779, - 40899, - 461874170, - 40709, - 461755731, - 40638, - 461707912, - 40493, - 461628679, - 40327, - 461508954, - 40172, - 461434456, - 40027, - 461357008, - 39891, - 461268328, - 39670, - 461154109, - 39302, - 460956334, - 39185, - 460875531, - 39106, - 460834490, - 38854, - 460715957, - 38623, - 460596236, - 38614, - 460588599, - 38401, - 460482441, - 38124, - 460360881, - 37983, - 460276067, - 37897, - 460215537, - 37768, - 460159165, - 37567, - 460052349, - 37287, - 459915954, - 37267, - 459897593, - 36819, - 459640345, - 36460, - 459486023, - 36412, - 459461859, - 35905, - 459259055, - 35765, - 459193240, - 35411, - 459053858, - 35244, - 458964201, - 35214, - 458945774, - 35009, - 458841717, - 34629, - 458659536, - 34393, - 458502105, - 34230, - 458406893, - 34101, - 458340882, - 33921, - 458247818, - 33703, - 458110370, - 33652, - 458082289, - 33456, - 457970789, - 33284, - 457837764, - 33271, - 457810883, - 33188, - 457716546, - 32962, - 457502650, - 32909, - 457432173, - 32843, - 457367482, - 32696, - 457264717, - 32630, - 457197753, - 32550, - 457116268, - 32462, - 457036857, - 32297, - 456938676, - 32204, - 456837384, - 32048, - 456710442, - 31934, - 456601381, - 31824, - 456502939, - 31745, - 456443272, - 31579, - 456343786, - 31346, - 456165455, - 31213, - 456062264, - 30975, - 455903060, - 30882, - 455837536, - 30643, - 455686141, - 30604, - 455659547, - 30428, - 455531408, - 30356, - 455490508, - 30217, - 455383905, - 30017, - 455213056, - 29941, - 455130781, - 29741, - 454973693, - 29657, - 454884015, - 29554, - 454767357, - 29494, - 454712961, - 29385, - 454612221, - 29310, - 454532391, - 29162, - 454400672, - 29096, - 454360741, - 28989, - 454267397, - 28878, - 454154650, - 28801, - 454088736, - 28714, - 454008792, - 28607, - 453938853, - 28450, - 453844346, - 28322, - 453717416, - 28253, - 453642460, - 28185, - 453580910, - 28036, - 453448891, - 27987, - 453391599, - 27909, - 453318897, - 27709, - 453174124, - 27671, - 453143039, - 27512, - 453029638, - 27376, - 452932075, - 27329, - 452882774, - 27244, - 452806168, - 27166, - 452729513, - 26965, - 452581072, - 26852, - 452527743, - 26784, - 452468344, - 26667, - 452361409, - 26575, - 452286589, - 26463, - 452202523, - 26317, - 452087018, - 26250, - 452030977, - 26132, - 451922253, - 26046, - 451848137, - 25883, - 451769235, - 25711, - 451652547, - 25606, - 451584582, - 25462, - 451485213, - 25324, - 451373816, - 25267, - 451334020, - 25101, - 451230326, - 24915, - 451130741, - 24847, - 451084394, - 24677, - 450953724, - 24587, - 450891283, - 24413, - 450819153, - 24217, - 450714789, - 24095, - 450654954, - 23859, - 450553366, - 23726, - 450474598, - 23627, - 450395644, - 23504, - 450301166, - 23352, - 450208933, - 23219, - 450123380, - 23100, - 450044465, - 22994, - 449961548, - 22862, - 449872554, - 22755, - 449786985, - 22609, - 449676837, - 22517, - 449614142, - 22372, - 449512307, - 22257, - 449433207, - 22093, - 449322895, - 21991, - 449244181, - 21891, - 449169248, - 21778, - 449090268, - 21630, - 448976571, - 21539, - 448914170, - 21422, - 448826789, - 21277, - 448693931, - 21189, - 448616532, - 20982, - 448424645, - 20870, - 448332554, - 20849, - 448309742, - 20755, - 448230480, - 20656, - 448145739, - 20546, - 448057135, - 20475, - 447964334, - 20362, - 447791777, - 20287, - 447684308, - 20210, - 447588830, - 20133, - 447505309, - 20098, - 447448870, - 20036, - 447355006, - 19939, - 447234043, - 19881, - 447128900, - 19867, - 447109686, - 19764, - 446955553, - 19737, - 446915167, - 19670, - 446819531, - 19637, - 446763263, - 19582, - 446680407, - 19502, - 446578445, - 19431, - 446508796, - 19356, - 446407469, - 19260, - 446281530, - 19146, - 446142958, - 19052, - 446037259, - 18999, - 445960237, - 18941, - 445894883, - 18827, - 445777961, - 18724, - 445681870, - 18678, - 445637963, - 18554, - 445513861, - 18502, - 445456504, - 18441, - 445381629, - 18291, - 445202937, - 18218, - 445111857, - 18139, - 445022475, - 18052, - 444931703, - 17983, - 444852826, - 17905, - 444763288, - 17839, - 444684910, - 17730, - 444564551, - 17655, - 444497675, - 17582, - 444420848, - 17434, - 444270184, - 17428, - 444256105, - 17272, - 444082022, - 17207, - 444000988, - 17044, - 443816230, - 16973, - 443725378, - 16887, - 443630756, - 16801, - 443528209, - 16781, - 443479623, - 16681, - 443371481, - 16557, - 443280793, - 16489, - 443215428, - 16416, - 443135198, - 16350, - 443052371, - 16268, - 442965402, - 16164, - 442848667, - 16080, - 442764015, - 15941, - 442637638, - 15834, - 442522164, - 15714, - 442407170, - 15590, - 442297667, - 15511, - 442226060, - 15458, - 442177971, - 15294, - 442059355, - 15188, - 441981233, - 15133, - 441884655, - 15120, - 441831888, - 15056, - 441688131, - 15026, - 441592379, - 15021, - 441577521, - 14990, - 441479069, - 14959, - 441396115, - 14924, - 441310173, - 14872, - 441216075, - 14807, - 441097094, - 14793, - 441051856, - 14765, - 440943937, - 14746, - 440886894, - 14699, - 440779608, - 14648, - 440627316, - 14592, - 440448605, - 14531, - 440273934, - 14503, - 440196023, - 14454, - 440074243, - 14414, - 439961132, - 14398, - 439901387, - 14376, - 439821921, - 14353, - 439747239, - 14299, - 439596861, - 14283, - 439548372, - 14234, - 439455460, - 14213, - 439395034, - 14173, - 439291609, - 14129, - 439160886, - 14108, - 439066815, - 14068, - 438937594, - 14052, - 438898841, - 14007, - 438787713, - 13973, - 438683493, - 13956, - 438643166, - 13903, - 438487290, - 13894, - 438463422, - 13869, - 438364772, - 13825, - 438297016, - 13755, - 438194682, - 13732, - 438124186, - 13690, - 438027787, - 13669, - 437953483, - 13609, - 437803665, - 13596, - 437771305, - 13551, - 437666554, - 13527, - 437574251, - 13502, - 437493761, - 13479, - 437420395, - 13443, - 437338282, - 13409, - 437248323, - 13374, - 437139091, - 13352, - 437062691, - 13331, - 436985837, - 13306, - 436912779, - 13270, - 436817314, - 13223, - 436646763, - 13189, - 436555145, - 13152, - 436472492, - 13095, - 436318650, - 13081, - 436272405, - 13057, - 436212968, - 13029, - 436125907, - 12974, - 435968519, - 12930, - 435795814, - 12925, - 435777104, - 12893, - 435688944, - 12846, - 435587991, - 12819, - 435517221, - 12784, - 435429839, - 12760, - 435336799, - 12735, - 435267111, - 12709, - 435185291, - 12672, - 435100033, - 12633, - 435016509, - 12599, - 434913452, - 12566, - 434808971, - 12493, - 434614546, - 12478, - 434567393, - 12434, - 434478167, - 12406, - 434408832, - 12363, - 434259832, - 12348, - 434221030, - 12324, - 434150749, - 12266, - 434037032, - 12155, - 433824619, - 12152, - 433807051, - 12104, - 433681826, - 12075, - 433608463, - 12049, - 433537601, - 12028, - 433458072, - 12000, - 433373719, - 11951, - 433260041, - 11925, - 433176155, - 11897, - 433093787, - 11878, - 433029937, - 11827, - 432925793, - 11772, - 432740967, - 11734, - 432665774, - 11691, - 432541805, - 11679, - 432506373, - 11651, - 432418244, - 11626, - 432296741, - 11614, - 432230344, - 11580, - 432153504, - 11554, - 432062833, - 11523, - 431990976, - 11470, - 431870368, - 11439, - 431771033, - 11409, - 431678048, - 11392, - 431640453, - 11361, - 431549958, - 11326, - 431473248, - 11291, - 431387351, - 11261, - 431296243, - 11232, - 431205869, - 11203, - 431122943, - 11172, - 431041031, - 11109, - 430908880, - 11092, - 430858127, - 11056, - 430766098, - 11033, - 430681854, - 11010, - 430582145, - 10961, - 430377783, - 10937, - 430330298, - 10909, - 430241239, - 10891, - 430152310, - 10865, - 430065073, - 10847, - 429987747, - 10811, - 429856349, - 10806, - 429830074, - 10751, - 429708026, - 10720, - 429609427, - 10666, - 429514635, - 10649, - 429478657, - 10613, - 429377485, - 10579, - 429285238, - 10556, - 429216924, - 10513, - 429123768, - 10462, - 429007810, - 10428, - 428908780, - 10419, - 428879870, - 10385, - 428778434, - 10343, - 428631607, - 10328, - 428585910, - 10293, - 428487948, - 10283, - 428449869, - 10239, - 428331334, - 10223, - 428257857, - 10206, - 428186109, - 10182, - 428088044, - 10155, - 428012970, - 10118, - 427885248, - 10105, - 427835825, - 10076, - 427731807, - 10060, - 427669784, - 9972, - 427352445, - 9946, - 427257399, - 9932, - 427205043, - 9885, - 427007542, - 9869, - 426943492, - 9837, - 426841179, - 9823, - 426793780, - 9798, - 426692794, - 9774, - 426581001, - 9756, - 426475137, - 9738, - 426403393, - 9731, - 426370586, - 9713, - 426268686, - 9667, - 426078713, - 9645, - 426006680, - 9612, - 425887003, - 9579, - 425820784, - 9574, - 425682843, - 9545, - 425571362, - 9529, - 425503022, - 9492, - 425403758, - 9470, - 425269489, - 9465, - 425243973, - 9443, - 425157665, - 9426, - 425072626, - 9408, - 424979388, - 9382, - 424883376, - 9364, - 424803201, - 9344, - 424726204, - 9316, - 424641264, - 9291, - 424562228, - 9246, - 424355552, - 9233, - 424301686, - 9198, - 424129269, - 9177, - 424040960, - 9109, - 423843356, - 9090, - 423769250, - 9058, - 423687825, - 9031, - 423587562, - 8992, - 423483035, - 8976, - 423422500, - 8955, - 423352983, - 8917, - 423226292, - 8896, - 423150853, - 8858, - 423026842, - 8851, - 422998708, - 8813, - 422871502, - 8803, - 422814974, - 8779, - 422742587, - 8746, - 422630092, - 8728, - 422569832, - 8701, - 422481890, - 8677, - 422382514, - 8658, - 422283972, - 8639, - 422206043, - 8615, - 422128737, - 8557, - 421903211, - 8538, - 421838013, - 8515, - 421759065, - 8501, - 421709068, - 8471, - 421611823, - 8428, - 421478509, - 8412, - 421411006, - 8394, - 421339176, - 8370, - 421252646, - 8353, - 421189411, - 8332, - 421103719, - 8314, - 421017480, - 8290, - 420922272, - 8259, - 420827520, - 8232, - 420734393, - 8194, - 420595482, - 8188, - 420583225, - 8159, - 420499634, - 8142, - 420408396, - 8113, - 420312628, - 8089, - 420238041, - 8063, - 420152110, - 8032, - 420006542, - 8025, - 419975905, - 7963, - 419800975, - 7913, - 419627182, - 7888, - 419539819, - 7865, - 419449645, - 7838, - 419346613, - 7823, - 419291930, - 7793, - 419181850, - 7765, - 419079499, - 7736, - 418984973, - 7720, - 418915315, - 7686, - 418783339, - 7680, - 418762333, - 7642, - 418637510, - 7614, - 418570313, - 7591, - 418502014, - 7568, - 418420784, - 7531, - 418334387, - 7513, - 418236917, - 7493, - 418126474, - 7484, - 418065143, - 7454, - 417973359, - 7435, - 417907226, - 7415, - 417815173, - 7385, - 417725112, - 7360, - 417629216, - 7333, - 417543202, - 7311, - 417465854, - 7271, - 417370723, - 7242, - 417258647, - 7229, - 417203451, - 7203, - 417100609, - 7178, - 417036624, - 7153, - 416945210, - 7071, - 416702353, - 7068, - 416687836, - 7008, - 416485542, - 6992, - 416427380, - 6948, - 416333576, - 6932, - 416256106, - 6879, - 416063744, - 6844, - 415980369, - 6832, - 415897620, - 6807, - 415808608, - 6779, - 415742609, - 6746, - 415633903, - 6727, - 415567694, - 6676, - 415379694, - 6654, - 415306117, - 6631, - 415213580, - 6576, - 415057156, - 6547, - 414967547, - 6522, - 414881219, - 6484, - 414789422, - 6457, - 414682768, - 6441, - 414627151, - 6401, - 414518090, - 6372, - 414446495, - 6357, - 414365868, - 6317, - 414225606, - 6301, - 414164027, - 6279, - 414064304, - 6252, - 413996639, - 6205, - 413838485, - 6177, - 413747342, - 6148, - 413655624, - 6110, - 413531585, - 6079, - 413406139, - 6061, - 413319920, - 5992, - 413054627, - 5963, - 412982084, - 5921, - 412832430, - 5890, - 412705255, - 5866, - 412632468, - 5832, - 412522108, - 5798, - 412392349, - 5776, - 412319040, - 5774, - 412275700, - 5749, - 412187330, - 5729, - 412089566, - 5699, - 412004913, - 5680, - 411913600, - 5659, - 411820021, - 5621, - 411662515, - 5594, - 411600568, - 5559, - 411515385, - 5536, - 411400031, - 5510, - 411321090, - 5466, - 411175523, - 5444, - 411077863, - 5370, - 410891758, - 5341, - 410787055, - 5306, - 410686415, - 5289, - 410623612, - 5269, - 410540047, - 5238, - 410458764, - 5201, - 410357177, - 5178, - 410300179, - 5151, - 410191173, - 5117, - 410125666, - 5086, - 410033979, - 5056, - 409949511, - 5030, - 409872627, - 4994, - 409784906, - 4947, - 409646179, - 4876, - 409454205, - 4868, - 409424277, - 4839, - 409319060, - 4822, - 409262501, - 4785, - 409132483, - 4763, - 409078438, - 4725, - 408960440, - 4707, - 408896368, - 4676, - 408799292, - 4654, - 408733452, - 4635, - 408664608, - 4606, - 408577944, - 4582, - 408469638, - 4547, - 408346523, - 4540, - 408313391, - 4514, - 408209077, - 4495, - 408145065, - 4469, - 408036746, - 4443, - 407944857, - 4404, - 407821200, - 4401, - 407794654, - 4376, - 407706767, - 4324, - 407587531, - 4305, - 407518511, - 4271, - 407426796, - 4252, - 407355650, - 4220, - 407242830, - 4192, - 407162279, - 4158, - 407072655, - 4138, - 407009123, - 4114, - 406922818, - 4090, - 406829908, - 4053, - 406764370, - 4009, - 406632679, - 3975, - 406532041, - 3941, - 406435583, - 3936, - 406416272, - 3898, - 406307971, - 3853, - 406205940, - 3831, - 406157466, - 3783, - 406044007, - 3750, - 405955573, - 3719, - 405894332, - 3672, - 405808616, - 3571, - 405606547, - 3517, - 405480111, - 3512, - 405468189, - 3461, - 405329271, - 3446, - 405278771, - 3412, - 405197093, - 3374, - 405115159, - 3339, - 405034183, - 3318, - 404937077, - 3293, - 404822249, - 3279, - 404774044, - 3256, - 404680234, - 3225, - 404560852, - 3214, - 404486222, - 3185, - 404381691, - 3171, - 404334388, - 3149, - 404231816, - 3121, - 404072691, - 3100, - 403953130, - 3079, - 403852731, - 3074, - 403822642, - 3040, - 403713006, - 3020, - 403654079, - 2995, - 403566032, - 2968, - 403469613, - 2948, - 403385644, - 2927, - 403293488, - 2904, - 403180107, - 2889, - 403122968, - 2860, - 403025692, - 2844, - 402925313, - 2818, - 402822193, - 2806, - 402757959, - 2778, - 402608250, - 2758, - 402524210, - 2720, - 402431294, - 2673, - 402322565, - 2646, - 402270583, - 2596, - 402184523, - 2551, - 402071287, - 2499, - 401983500, - 2465, - 401917793, - 2443, - 401831201, - 2419, - 401746688, - 2392, - 401665342, - 2336, - 401456675, - 2322, - 401401765, - 2297, - 401321379, - 2240, - 401227782, - 2223, - 401123893, - 2203, - 401059039, - 2172, - 400971770, - 2140, - 400883376, - 2016, - 400799995, - 1919, - 400712363, - 1728, - 400576264, - 1652, - 400521772, - 1518, - 400440870, - 1402, - 400361374, - 1275, - 400267723, - 1183, - 400135645, - 1153, - 400103570, - 1058, - 400017067, - 965, - 399909958, - 870, - 399789775, - 814, - 399763330, - 712, - 399665968, - 634, - 399566915, - 568, - 399499167, - 539, - 399324708, - 516, - 399211657, - 508, - 399160094, - 482, - 399069408, - 394, - 398745083, - 365, - 398626196, - 326, - 398350430, - 315, - 398188766, - 304, - 398116766, - 272, - 397948198, - 249, - 397745016, - 236, - 397650343, - 233, - 397605695, - 217, - 397507017, - 183, - 397370524, - 182, - 397341406, - 157, - 396922460, - 156, - 396882366, - 147, - 396803779, - 142, - 396701690, - 133, - 396600604, - 91, - 395978376, - 87, - 395943246, - 81, - 395641605, - 75, - 395354126, - 64, - 394617939, - 59, - 394471174, - 57, - 394347239, - 50, - 394055167, - 47, - 393973444, - 35, - 393873324, - 31, - 393761769, - 30, - 393699855, - 28, - 393610932, - 23, - 393432343, - 15, - 393107867, - 4, - 392813448, - 1, - 392753103 -] \ No newline at end of file diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/README.md" "b/\350\207\252\347\224\250\350\204\232\346\234\254/README.md" deleted file mode 100644 index fcc6adbe2..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/README.md" +++ /dev/null @@ -1,30 +0,0 @@ -# 自用脚本列表 -该目录不维护 -- ❌表示废弃,不再更新。 -- ⚠️表示能用,但BUG多,勉强凑合用。 -- ✅ 正常满足使用,偶尔修复问题 -- ~~删除线~~表示移出该目录,已发布油猴 -- - -| 脚本 | 说明 | -| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| ⚠️ **~~外语终结者~~** | 自动将外语内容翻译为中文,适合在中文网站内翻译一些外语 | -| ✅ **~~网页翻译——自动翻译为中文日文~~** | 修改自Greasyfork,增加自动点击,无需手动翻译 | -| **~~*网页高亮关键字*~~** | 修改自Greasyfork用户脚本,增加适应移动设备,可设置生效范围,增加自定义高亮文本颜色 ,仅对关键词高亮。 | -| **~~*在搜索结果中屏蔽指定站点*~~** | 在搜索引擎结果中屏蔽特定的站点,帮助用户过滤掉不需要的搜索结果。 输入"-zhihu""-baidu" 用户屏蔽谷歌搜索内容 | -| **~~*置顶和置底按钮*~~** | 修改自Greasyfork用户脚本 为网页添加置顶和置底按钮,方便在长页面中快速移动到顶部或底部。 增加向下滚动时按钮变色,3秒内无滚动自动停止 | -| ❌**~~自用高亮关键字~~** | 修改自Greasyfork用户脚本 ,会高亮关键词所在元素的所有文本 | -| ❌ **Fix Sidebar Icon** | 增加Greasyfork侧边栏始终可见 | -| ❌**GitHub File Download Links Exporter** | 将 GitHub 文件下载链接导出为列表,方便用户批量下载文件。 | -| ❌ **GitHub File Download Links Exporter_markdown** | 将 GitHub 文件下载链接导出为 Markdown 格式,便于记录和分享。 | -| ⚠️**Greasy Fork - 分析发布的脚本增强版本** | 修改自Greasyfork用户脚本 半成品BUG很多 | -| ✅**~~GreasyFork Search~~** | 修改自Greasyfork用户脚本,增加了sleasyfork搜索 | -| ❌**greasyforklocalfav** *已合并糊裱匠* | 为 Greasy Fork 添加本地收藏功能,方便用户管理和访问收藏的脚本。 | -| ✅ **~~*GreasyFork User Control Panel Button*~~** | 在导航栏中添加快捷功能按钮,提高用户操作的便捷性。 | -| ❌**高亮隐藏** | 修改自Greasyfork用户脚本 提供高亮和隐藏网页元素的功能,高亮关键词和所在元素的文本。 | -| ✅ **~~去你妈的CSDN登录复制~~** | 提取自Greasyfork用户脚本,让登录复制可以点击 | -| ✅ **~~Markdown toobar for GreasyFork~~** | 在论坛默认使用 Markdown 格式,添加格式帮助链接及 Markdown 工具栏 修改 DOMContentLoaded 为load,解决与一些脚本冲突 | -| ❌ **~~*Github按文件更新日期排序*~~** | 修改为自动排序,无需手动点击 | -| **~~*小窗口预览*~~** | 增加长按触发,兼容chrome插件使用 | -| ✅**GitHub 文件夹下载** | 修改自Greasyfork用户脚本 修复了在PC端使用 | - diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/greasyforklocalfav.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/greasyforklocalfav.user.js" deleted file mode 100644 index 9d8841245..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/greasyforklocalfav.user.js" +++ /dev/null @@ -1,174 +0,0 @@ -// ==UserScript== -// @name Greasy Fork Bookmark -// @name:zh-CN Greasy Fork 书签 -// @name:ja Greasy Fork ブックマーク -// @namespace http://tampermonkey.net/ -// @version 2024-07-10 11:22 -// @description Bookmark the script easily -// @description:zh-CN Bookmark the script easily -// @description:ja Greasy Forkのブックマーク機能 -// @author ぐらんぴ -// @match https://greasyfork.org/* -// @icon https://www.google.com/s2/favicons?sz=64&domain=greasyfork.org -// @grant none -// @license MIT -// @grant GM_setValue -// @grant GM_getValue -// @grant GM_addStyle -// @downloadURL https://update.greasyfork.org/scripts/493406/Greasy%20Fork%20Bookmark.user.js -// @updateURL https://update.greasyfork.org/scripts/493406/Greasy%20Fork%20Bookmark.meta.js -// ==/UserScript== - -(() => { - var favs = JSON.parse(GM_getValue('favs', '[]')) - function favLink() { - let nav = document.querySelector("#site-nav > nav"), - li = document.createElement('li') - li.innerHTML = `Favs` - nav.appendChild(li) - } favLink() - function favPage() { - if (window.location.href == "https://greasyfork.org/Bookmarks") { - document.title = 'bookmarks' - // document.querySelector("body > div > section").remove() - - let scripts = JSON.parse(GM_getValue('favs', '[]')) - document.querySelector("body > div > section").innerHTML = `
      ` - const reverseOrder = true - for (let script of (reverseOrder ? scripts.reverse() : scripts)) { - let elm = document.querySelector("#browse-script-list"), - li = document.createElement("li") - li.innerHTML = ` -
      - ${script.title} - ${script.timestamp} - ${script.description} -
      - - ` - let scriptLinkElement = li.querySelector('.script-link') - handleScriptPage(script.description, script.title, scriptLinkElement, script.href, 'a', 'custom-class', (favs, value, scriptLinks) => { - // 这里是回调函数的实现 - if (value) { - elm.style.textDecoration = 'none' - elm.style.color = '#a42121' // 文字颜色改为红色 - elm.style.fontStyle = 'normal' // 取消斜体 - } else { - elm.style.textDecoration = 'line-through' - elm.style.color = 'gray' // 文字颜色改为灰色 - elm.style.fontStyle = 'italic' // 文字变成斜体 - - } - - }) - elm.appendChild(li) - } - } - } - favPage() - function handleScriptPage(scriptDescription, scriptTitle, scriptLinks, href, type = 'li', customClassName = '', callback = null) { - let li = document.createElement(type) - if (customClassName) { - li.classList.add(customClassName) - - } - setStar(li, false) - scriptLinks.appendChild(li) - - let index = -1, - val = scriptTitle, - filteredObj = favs.find((item, i) => { - if (item.title === val) { - index = i - return i - } - }) - - if (index !== -1) { - setStar(li, true) - } - - li.addEventListener('click', (event) => { - event.preventDefault() - event.stopPropagation() - const now = new Date() - const localTime = now.toLocaleString() - var value = { - title: scriptTitle, - description: scriptDescription, - href: href, - timestamp: localTime, - } - var index = -1, - val = scriptTitle, - filteredObj = favs.find(function (item, i) { - if (item.title === val) { - index = i - return i - } - }) - - if (index == -1) { - favs.push(value) - setStar(li, true) - if (callback) { - callback(favs, true, scriptLinks) - } - } else { - favs.splice(index, 1) - setStar(li, false) - if (callback) { - callback(favs, false, scriptLinks) - } - } - GM_setValue('favs', JSON.stringify(favs)) - - }) - } - function scriptPage() { - if (location.href.match('/scripts')) { - let scriptLinks = document.querySelector("#script-links") - let scriptTitle = document.querySelector("#script-info > header > h2").innerText - let scriptDescription = document.querySelector(".script-description").innerText - let href = window.location.href - - handleScriptPage(scriptDescription, scriptTitle, scriptLinks, href) - } - } - - scriptPage() - function addStyle() { - var css = ` -.badge.badge-author { - font-size: 0.7em; - float: right; -} -.custom-class { - position: absolute; - bottom: 0; - right: 0; - margin-right: 0px; - margin-bottom: 0; - -} - .parent-container { - position: relative; - - } - #script-links > li:nth-child(6) { - text-decoration: none; - cursor: pointer; - color: #a42121; - }`, - style = document.createElement('style') - style.innerHTML = css - document.head.append(style) - } addStyle() - function setStar(li, condition) { - if (condition) { - li.innerHTML = '' - } else { - li.innerHTML = '' - } - } -})() \ No newline at end of file diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/\346\226\207\346\234\254\346\233\277\346\215\242.user copy.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/\346\226\207\346\234\254\346\233\277\346\215\242.user copy.user.js" deleted file mode 100644 index dbcefbe12..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/\346\226\207\346\234\254\346\233\277\346\215\242.user copy.user.js" +++ /dev/null @@ -1,40 +0,0 @@ -// ==UserScript== -// @name Replace Text in Input -// @namespace http://tampermonkey.n -// @version 1.0 -// @description Replace "renmindeqinwuyuan" with "UserScript" in inputs containing "https" -// @author Your Name -// @match *://*/* -// @grant none -// ==/UserScript== - -(function () { - 'use strict' - - // 创建按钮 - const button = document.createElement('button') - button.innerText = 'Replace Text' - button.style.position = 'fixed' - button.style.top = '80px' - button.style.right = '50px' - button.style.zIndex = '1000' - button.style.padding = '10px' - button.style.backgroundColor = '#4CAF50' - button.style.color = 'white' - button.style.border = 'none' - button.style.borderRadius = '5px' - button.style.cursor = 'pointer' - - // 按钮点击事件 - button.addEventListener('click', () => { - document.querySelectorAll('input').forEach(input => { - if (input.value.includes('https')) { - input.value = input.value.replace(/ScollButton/g, 'UserScripts') - } - }) - //alert('Replacement done!'); - }) - - // 将按钮添加到页面上 - document.body.appendChild(button) -})() diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/\346\226\207\346\234\254\346\233\277\346\215\242.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/\346\226\207\346\234\254\346\233\277\346\215\242.user.js" deleted file mode 100644 index c46ae8c99..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/\346\226\207\346\234\254\346\233\277\346\215\242.user.js" +++ /dev/null @@ -1,138 +0,0 @@ -// ==UserScript== -// @name Replace Text in Inputs -// @namespace http://tampermonkey.net/ -// @version 1.0 -// @description Replace "renmindeqinwuyuan" with "UserScript" in inputs containing "https" -// @author Your Name -// @match *://*/* -// @grant none -// ==/UserScript== - -(function () { - 'use strict' - - // 创建按钮 - const button = document.createElement('button') - button.innerText = 'Replace Text' - button.style.position = 'fixed' - button.style.top = '100px' - button.style.right = '10px' - button.style.zIndex = '1000' - button.style.padding = '10px' - button.style.backgroundColor = '#4CAF50' - button.style.color = 'white' - button.style.border = 'none' - button.style.borderRadius = '5px' - button.style.cursor = 'pointer' - - // 创建显示匹配关键字的文本框 - const keywordTextBox = document.createElement('textarea') - keywordTextBox.style.position = 'fixed' - keywordTextBox.style.top = '150px' - keywordTextBox.style.left = '10px' - keywordTextBox.style.zIndex = '1000' - keywordTextBox.style.width = '300px' - keywordTextBox.style.height = '150px' - keywordTextBox.style.padding = '10px' - keywordTextBox.style.backgroundColor = '#f0f0f0' - keywordTextBox.style.border = '1px solid #ccc' - keywordTextBox.style.borderRadius = '5px' - keywordTextBox.readOnly = true - - // 创建显示替换文本的文本框 - const replacementTextBox = document.createElement('textarea') - replacementTextBox.style.position = 'fixed' - replacementTextBox.style.top = '310px' - replacementTextBox.style.left = '10px' - replacementTextBox.style.zIndex = '1000' - replacementTextBox.style.width = '300px' - replacementTextBox.style.height = '150px' - replacementTextBox.style.padding = '10px' - replacementTextBox.style.backgroundColor = '#f0f0f0' - replacementTextBox.style.border = '1px solid #ccc' - replacementTextBox.style.borderRadius = '5px' - replacementTextBox.readOnly = true - - // 读取替换规则并创建一个 Map - async function loadReplaceRules() { - const response = await fetch('http://127.0.0.1:5500/%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC/1.txt') - const text = await response.text() - const rules = text.split('\n').map(line => { - const [replacement, keyword] = line.split('@') - return { keyword: keyword.trim(), replacement: replacement.trim() } - }) - return rules - } - let key = "" - let re = "" - - // 更新文本框内容 - async function updateTextBoxes() { - const replaceRules = await loadReplaceRules() - let matchedKeywords = [] - let replacementTexts = [] - - document.querySelectorAll('input').forEach(input => { - replaceRules.forEach(rule => { - if (input.value.includes(rule.keyword)) { - if (!matchedKeywords.includes(rule.keyword)) { - matchedKeywords.push(rule.keyword) - key = rule.keyword - re = rule.replacement - replacementTexts.push(rule.replacement) - } - } - }) - }) - - // 更新文本框内容 - keywordTextBox.value = matchedKeywords.length > 0 ? matchedKeywords.join('\n') : '没有匹配的关键字' - replacementTextBox.value = replacementTexts.length > 0 ? replacementTexts.join('\n') : '没有替换文本' - } - - // 执行替换操作 - async function replaceText() { - - - document.querySelectorAll('input').forEach(input => { - if (input.value.includes('https')) { - const originalValue = input.value // 记录原始值 - console.log(originalValue) - input.value = input.value.replace(key, re) - if (input.value !== originalValue) { // 检查替换是否成功 - input.style.backgroundColor = 'red' // 将背景颜色改为红色 - } - } - if (input.value.includes('https')) { - const originalValue = input.value // 记录原始值 - console.log(originalValue) - - // 使用正则表达式替换 "Script%20details/" 和 "/READ" 之间的文本 - input.value = input.value.replace(/Script%20details\/.*?\/READ/, `Script%20details/${re}/READ`) - - if (input.value !== originalValue) { // 检查替换是否成功 - input.style.backgroundColor = 'red' // 将背景颜色改为红色 - } - } - - }) - - // alert('Replacement done!'); - } - - - // 按钮点击事件 - button.addEventListener('click', replaceText) - - // 页面加载时自动更新文本框 - window.addEventListener('load', updateTextBoxes) - - // 将按钮和文本框添加到页面上 - document.body.appendChild(button) - document.body.appendChild(keywordTextBox) - document.body.appendChild(replacementTextBox) - - - -})() - diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/\347\275\221\351\241\265\347\276\216\345\214\226.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/\347\275\221\351\241\265\347\276\216\345\214\226.user.js" deleted file mode 100644 index bc6f80cd5..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/\347\275\221\351\241\265\347\276\216\345\214\226.user.js" +++ /dev/null @@ -1,143 +0,0 @@ -// ==UserScript== -// @name 网页页面样式美化 -// @namespace 网页页面样式小美化 -// @description 指向文字加粗, 指向图片发光, 指向图片放大动画, 输入框美化, 去除下划线, 选择文字高亮颜色, 链接更改颜色, 图片圆角, 指向链接增加边框 -// @version 0.41. -// @match *://*/* -// @run-at document-start -// ==/UserScript== - -(function () { - - // 选择文字背景色, 输入框颜色 - //var textarea = '#D96396' - var textarea = '#87CEFF' - // 链接颜色 - var Urlcolor = '#87CEFF' - - // 已访问链接颜色 - var visited = '#90EE90' - - /* 指向链接高亮颜色//SECTION - 更改颜色 - var Urlhovercolor = '#FA8072' */ - var Urlhovercolor = '#87CEFF' - // 指向链接边框颜色 - var bordercolor = '#D96396' - - // 指向链接边框圆角 - var borderradius = '5px' - - /* 虚线下划线 */ - // underline dotted - /* 普通下划线 */ - // underline - /* 双下划线 */ - // underline double - /* 波浪线下划线 */ - // underline wavy - // 下划线样式 none为去掉 - var decoration = 'none' - - // 输入框, 图片圆角 - var imgborder = '8px' - - // 图片放大 - var imgtransform = '1.02' - - // 图片放大动画速度 - var imgtransition = '0.2s' - - let css = ` - /* 已访问链接颜色 //STUB - 取消 - a:visited { - color: ${visited} !important; - } - */ - - /* 图片 */ - img { - /* 放大图片动画 */ - transition: transform ${imgtransition} ease !important; - /* 添加圆角 */ - border-radius: ${imgborder} !important; - /* 添加阴影效果 */ - box-shadow: 2px 2px rgba(0, 0, 0, 0.2) !important; - -webkit-transition-property: box-shadow; - } - /* 指向图片 */ - img:hover { - /* 放大图片 */ - transform: scale(${imgtransform}); - /* 粉色边框 */ - box-shadow: 0px 0px 4px 4px rgba(217, 99, 150, 0.6) !important; - -webkit-transition-property: box-shadow; - } - - /* 输入框 */ - textarea:focus, - input[type="text"]:focus, - input[type="password"]:focus, - input[type="checkbox"]:focus, - input[type="submit"]:focus, - input[type="reset"]:focus, - input[type="radio"]:focus { - /* 颜色 */ - outline: 2px solid ${textarea} !important; - -webkit-box-shadow:0px 0px 0px #D96396 !important; - /* 圆角度数 */ - border-radius: ${imgborder} !important; - } - - /* 选择文字自定义高亮颜色 */ - ::selection { - /* 背景颜色 */ - background-color: ${textarea} !important; - /* 文本颜色 */ - color: #fff !important; - } - - a * { - /* 下划线 */ - text-decoration: ${decoration} !important; - -webkit-transition-property: color; - -webkit-transition-duration: 0.2s; - } - - /* 链接 */ - a, strong, span.highlight-style, .mobile-subcategories-item.flex-row-center { - /* 下划线 */ - text-decoration: ${decoration} !important; - -webkit-transition-property: color; - -webkit-transition-duration: 0.2s; - /* 链接更改颜色 //STUB - 取消 - color: ${Urlcolor} !important; - */ - } - - /* 指向链接 */ - a:hover { - /* 下划线 */ - text-decoration: ${decoration} !important; - -webkit-transition-property: color; - -webkit-transition-duration: 0.2s; - /* 指向链接颜色 */ - color: ${Urlhovercolor} !important; - /* 指向文字加粗 */ - text-shadow: 0em 0em 0.1em !important; - font-weight: bold !important; - /* 增加边框 */ - /* border: 1px solid ${bordercolor}; */ - /* 边框圆角 */ - border-radius: ${borderradius}; - } -` - - function addStyle(cssstyle) { - let styleNode = document.createElement("style") - styleNode.appendChild(document.createTextNode(cssstyle)); - (document.querySelector("head") || document.documentElement).appendChild(styleNode) - } - - addStyle(css) - -})() \ No newline at end of file diff --git "a/\350\207\252\347\224\250\350\204\232\346\234\254/\351\253\230\344\272\256\351\232\220\350\227\217.user.js" "b/\350\207\252\347\224\250\350\204\232\346\234\254/\351\253\230\344\272\256\351\232\220\350\227\217.user.js" deleted file mode 100644 index fb86dfa82..000000000 --- "a/\350\207\252\347\224\250\350\204\232\346\234\254/\351\253\230\344\272\256\351\232\220\350\227\217.user.js" +++ /dev/null @@ -1,192 +0,0 @@ -// ==UserScript== -// @name 高亮隐藏 -// @namespace https://www.gitlink.org.cn/sonichy -// @version 1.22.2 -// @description 高亮含有关键字的链接,隐藏含有关键字的链接,并动态监测页面变化。s -// @author -// @match *://*/* -// @grant GM_registerMenuCommand -// @grant GM_getValue -// @grant GM_setValue -// @license MIT -// @downloadURL https://update.greasyfork.org/scripts/498001/%E9%AB%98%E4%BA%AE%E9%9A%90%E8%97%8F.user.js -// @updateURL https://update.greasyfork.org/scripts/498001/%E9%AB%98%E4%BA%AE%E9%9A%90%E8%97%8F.meta.js -// ==/UserScript== - -(function () { - 'use strict' - - // 定义函数来应用高亮和隐藏逻辑 - function applyHighlightsAndHides() { - var s, sl, a, i, j - - // 获取保存的关键字并处理高亮链接 - s = GM_getValue('keyword_light', '') - if (s != '') { - sl = s.split('\n').map(function (keyword) { - return keyword.trim() // 去除每个关键字前后的空白符 - }).filter(function (keyword) { - return keyword !== '' // 过滤掉空白关键字 - }) - - a = document.getElementsByTagName('a') - for (i = 0; i < a.length; i++) { - if (!a[i].classList.contains('highlighted')) { // 检查是否已经高亮 - for (j = 0; j < sl.length; j++) { - if (a[i].textContent.indexOf(sl[j]) != -1) { - a[i].classList.add('highlighted') - var regex = new RegExp('(' + sl[j] + ')', 'gi') - a[i].innerHTML = a[i].innerHTML.replace(regex, '$1') - break // 找到一个匹配关键字就跳出循环 - } - } - } - } - } - - // 处理隐藏链接 - s = GM_getValue('keyword_hide', '') - if (s != '') { - sl = s.split('\n').map(function (keyword) { - return keyword.trim() // 去除每个关键字前后的空白符 - }).filter(function (keyword) { - return keyword !== '' // 过滤掉空白关键字 - }) - - a = document.getElementsByTagName('a') - for (i = 0; i < a.length; i++) { - if (!a[i].classList.contains('hidden')) { // 检查是否已经隐藏 - for (j = 0; j < sl.length; j++) { - if (a[i].textContent.indexOf(sl[j]) != -1) { - a[i].classList.add('hidden') - a[i].style.display = 'none' - break // 找到一个匹配关键字就跳出循环 - } - } - } - } - } - } - - - // 注册菜单命令打开设置 - GM_registerMenuCommand('打开设置', function () { - var dialog = document.createElement('dialog') - var div = document.createElement('div') - div.style.textAlign = 'right' - var button = document.createElement('button') - button.textContent = 'X' - button.onclick = function () { - // 在关闭对话框时自动保存关键字 - GM_setValue('keyword_light', textarea_light.value) - GM_setValue('keyword_hide', textarea_hide.value) - dialog.close() - } - div.appendChild(button) - dialog.appendChild(div) - var h3 = document.createElement('h3') - h3.textContent = '设置' - h3.style.textAlign = 'center' - h3.style.margin = '0' - dialog.appendChild(h3) - var p = document.createElement('p') - p.style.whiteSpace = 'nowrap' - var checkbox = document.createElement('input') - checkbox.type = 'checkbox' - checkbox.checked = GM_getValue('is_light', true) - checkbox.style.verticalAlign = 'top' - checkbox.onchange = function () { - GM_setValue('is_light', checkbox.checked) - if (checkbox.checked) { - msg.textContent = '开启高亮关键字' - } else { - msg.textContent = '关闭高亮关键字' - } - } - p.appendChild(checkbox) - var span = document.createElement('span') - span.textContent = '高亮关键字' - span.style.verticalAlign = 'top' - p.appendChild(span) - var textarea_light = document.createElement('textarea') - textarea_light.rows = '5' - var savedKeywordsLight = GM_getValue('keyword_light', '').split('\n').map(function (keyword) { - return keyword.trim() // 去除每个关键字前后的空白符 - }).filter(function (keyword) { - return keyword !== '' // 过滤掉空白关键字 - }).join('\n') // 将过滤后的关键字重新连接成一个字符串 - - textarea_light.value = savedKeywordsLight // 设置文本框的值 - textarea_light.style.margin = '0 5px' - p.appendChild(textarea_light) - var button_save_light = document.createElement('button') - button_save_light.textContent = '保存' - button_save_light.style.verticalAlign = 'top' - p.appendChild(button_save_light) - dialog.appendChild(p) - - p = document.createElement('p') - p.style.whiteSpace = 'nowrap' - checkbox = document.createElement('input') - checkbox.type = 'checkbox' - checkbox.checked = GM_getValue('is_hide', true) - checkbox.style.verticalAlign = 'top' - checkbox.onchange = function () { - GM_setValue('is_hide', checkbox.checked) - if (checkbox.checked) { - msg.textContent = '开启隐藏关键字' - } else { - msg.textContent = '关闭隐藏关键字' - } - } - //TODO - p.appendChild(checkbox) - span = document.createElement('span') - span.textContent = '隐藏关键字' - span.style.verticalAlign = 'top' - //TODO - p.appendChild(span); - var textarea_hide = document.createElement('textarea') - textarea_hide.rows = '5' - var savedKeywordsHide = GM_getValue('keyword_hide', '').split('\n').map(function (keyword) { - return keyword.trim() // 去除每个关键字前后的空白符 - }).filter(function (keyword) { - return keyword !== '' // 过滤掉空白关键字 - }).join('\n') // 将过滤后的关键字重新连接成一个字符串 - - textarea_hide.value = savedKeywordsHide // 设置文本框的值 - textarea_hide.style.margin = '0 5px' - //TODO - p.appendChild(textarea_hide) - var button_save_hide = document.createElement('button') - button_save_hide.textContent = '保存' - button_save_hide.style.verticalAlign = 'top' - //TODO - p.appendChild(button_save_hide) - dialog.appendChild(p) - - var msg = document.createElement('p') - msg.textContent = '关键字一行一个' - dialog.appendChild(msg) - button_save_light.onclick = function () { - GM_setValue('keyword_light', textarea_light.value) - msg.textContent = '已经保存:高亮关键字' - } - button_save_hide.onclick = function () { - GM_setValue('keyword_hide', textarea_hide.value) - msg.textContent = '已经保存:隐藏关键字' - } - document.body.appendChild(dialog) - dialog.showModal() - }) - - // 初始化时应用一次高亮和隐藏逻辑 - applyHighlightsAndHides() - - // 使用MutationObserver监测页面变化并重新应用高亮和隐藏逻辑 - var observer = new MutationObserver(function (mutations) { - mutations.forEach(function (mutation) { - applyHighlightsAndHides() - }) - }) - - // 配置和启动MutationObserver - var observerConfig = { childList: true, subtree: true } - observer.observe(document.body, observerConfig) -})()