11 篇文章带有标签 “automation”

macOS Finder 中的“反向选择”功能实现(Automator)

通过 Automator 制作一个“快速操作”的方案。请按照以下的步骤操作:

  1. 打开 Automator,新建一个 “快速操作”
  2. 设置:“工作流程收到当前”选 “没有输入”,“位于”选 “Finder.app”
  3. 在搜索框输入 AppleScript,拖入 “运行 AppleScript” 动作。
  4. 清空原内容,粘贴以下这段代码:
on run {input, parameters}
    tell application "Finder"
        -- 获取当前窗口,如果没有窗口则退出
        if (count of windows) = 0 then return
        set win to front window
        
        -- 获取文件夹内所有对象的路径列表
        set all_items to every item of win
        set all_paths to {}
        repeat with i in all_items
            set end of all_paths to (POSIX path of (i as alias))
        end repeat
        
        -- 获取当前已选对象的路径列表
        set sel_items to selection
// ...

保存并命名为 “反向选择”。

Agent News:首个专为智能体打造的新闻门户,及基于 OpenClaw 的“龙虾团队”自动化运营实践

Agent News

首个专为智能体打造的新闻门户。

GitHub 源代码: https://github.com/wang-junjian/agent-news

技能

ClawHubAgent News 技能

发布技能到 ClawHub

clawhub publish /Users/junjian/.openclaw/workspace/skills/agent-news \
  --slug "agent-news" \
  --name "Agent News - 智能体的新闻门户" \
  --version "1.0.0" \
  --tags "agent, news" \
  --changelog "Initial release: 支持Agent News平台的新闻搜索、发布、编辑、删除等全流程操作。支持部署Agent News的部署和状态查看。"

创建龙虾团队

飞书上创建机器人

打开开发者后台,参考下面的文档分别创建三个机器人:龙虾军舰龙虾编辑龙虾运营

下面是每个龙虾机器人的定位与职责

龙虾军舰

核心定位:团队的枢纽,兼顾协同衔接与流程优化,负责统筹每日工作,确保龙虾编辑、龙虾运营高效联动,避免工作脱节。

PowerShell 脚本示例

# 核心参数配置(无需修改,已按你的需求设定)
$targetMinDate = Get-Date "2024-06-01"  # 目标日期区间:开始
$targetMaxDate = Get-Date "2024-12-31"  # 目标日期区间:结束
$hourMin = 8                            # 限制最小小时(8点)
$hourMax = 21                           # 限制最大小时(21点,因22点不包含,实际最晚21:59:59)
$folderPath = "D:\test"                 # 要遍历的目录
$skipExtension = ".eml"                 # 需跳过的文件后缀
$logFilePath = "D:\log.txt"  # 日志文件路径(与脚本同目录)

# 生成目标区间内随机时间(限制8:00-22:00)的函数
function Get-RandomTargetDateTime {
    param(
        [datetime]$DateMin = $targetMinDate,
        [datetime]$DateMax = $targetMaxDate,
        [int]$HourMin = $hourMin,
// ...

该PowerShell脚本的核心功能是 批量筛选并修改指定目录下文件的修改时间,同时跳过特定类型文件、记录操作日

macOS 解压RAR(Automator)

本文档详细介绍了如何在 macOS 上使用 Automator 创建一个快速操作来解压 RAR 文件。它提供了一个Shell 脚本,用于检测 Homebrew 环境并调用 rar 命令进行解压,同时包含错误处理和用户通知。文章还指导用户授予 rar 可执行文件“完全磁盘访问权限”,这是解决“Operation not permitted”错误的关键步骤。此外,文本提供了一个带调试日志功能的 Shell 脚本,帮助用户诊断解压过程中可能出现的问题,并展示了实际的调试输出。

开发 Automator 快速操作(“解压RAR”)

通过命令使用 ChatGPT

ChatGPT Wrapper

ChatGPT Wrapper is an open-source unofficial Power CLI, Python API and Flask API that lets you interact programmatically with ChatGPT.

安装

必要条件

  • macOS
brew install moreutils
  • Ubuntu
sudo apt install moreutils

创建虚拟环境

mkdir chatgpt-wrapper && cd chatgpt-wrapper

python -m venv env
source ./env/bin/activate

使用 GitHub 安装最新版本

pip install --upgrade pip
pip install git+https://github.com/mmabrouk/chatgpt-wrapper

Playwright 中安装浏览器,默认为 firefox。

playwright install

ChatGPT 安装

以安装模式启动程序。 这将打开一个浏览器窗口。 在浏览器窗口中登录 ChatGPT,然后停止该程序。

使用 Python 自动进行工作量估算

安装依赖库

pip install typer python-docx

编写脚本 workload-evaluation.py import os import logging import shutil import random import zipfile import openpyxl import typer from copy import copy from openpyxl.utils import rows_from_range # 日志设置 logger = logging.getLogger() logger.setLevel(logging.DEBUG) ## 文件输出 file_handler = logging.FileHandler("log.txt") file_handler.setLevel(logging.DEBUG) ## 控制台输出 stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.DEBUG) formatter = logging.

Python 自动生成周报

安装依赖库

pip install typer python-docx

编写生成个人周报的应用 制作个人周报模版 个人周报-{}-{}.xlsx 编写应用 weekly.py import shutil import openpyxl import typer from datetime import datetime, timedelta def get_weekly_info(): now = datetime.now() # 工作表的标题,格式: yymmdd(周一)-yymmdd(周五) monday = now-timedelta(now.weekday()) friday = monday+timedelta(4) sheet_title = '{}-{}'.format(monday.strftime('%y%m%d'), friday.strftime('%y%m%d')) # 报告日期,格式: yyyy/mm/dd(周四) report_date = now.strftime("%Y/%m/%d") # 计划的开始时间与结束时间 base_date = datetime(1899, 12, 30, 0, 0) work_tasks_begin_time = (monday-base_date).

Python办公自动化套件

操作 Word 文档

安装依赖库 python-docx

pip install python-docx

示例 from docx import Document from docx.shared import Inches document = Document() document.add_heading('Document Title', 0) p = document.add_paragraph('A plain paragraph having some ') p.add_run('bold').bold = True p.add_run(' and some ') p.add_run('italic.').italic = True document.add_heading('Heading, level 1', level=1) document.add_paragraph('Intense quote', style='Intense Quote') document.

远程执行Shell命令

安装 Fabric

pip3 install fabric

远程执行 Shell 命令脚本(remote_execute_shell_command.py) #!/usr/bin/python import argparse from fabric import Connection, Config # 您要远程操作的计算机,username@ip HOSTS = ['root@192.168.0.1', 'root@192.168.0.2'] PASSWORDS = ['admin', 'admin'] if name == 'main': parser = argparse.ArgumentParser() parser.add_argument('-c', '--command', type=str, help='execute shell command.') args = parser.parse_args() if not args.command: args.command = 'uname -a' print('➜ Execute shell command: ', args.

Linux Shell 实践

快捷键

  • Ctrl+r 快速查找历史命令
  • Ctrl+l 清理控制台屏幕

移动光标

  • Ctrl+a 移动光标到行首
  • Ctrl+e 移动光标到行尾
  • Alt+Left Arrow 移动光标到上一个单词
  • Alt+Right Arrow 移动光标到下一个单词

删除字符

  • Ctrl+u 删除光标之前的内容
  • Ctrl+k 删除光标之后的内容
  • Ctrl+w 删除光标前面的一个单词

进程

  • Ctrl+d 退出。等同于exit命令
  • Ctrl+z 当前运行的程序后台运行。如果一步到位,可以在命令后面加 &

重定向

  • 执行时的错误信息输出到文件(2>)
hello 2> log.error
$ cat log.error 
-bash: hello: 未找到命令
  • 执行时的所有信息都输出到文件(&>)
echo hello &> log.info
$ cat log.info 
hello
  • 创建一个文件并写入内容(> filename <<EOF)
cat > hello.sh << EOF
#!/bin/bash
echo hello
EOF

变量

变量赋值

  • 执行结果保存到变量($() ``)
var1=$(pwd)
var2=`pwd`
  • 整数四则运算(let)
let n=10-3+4/2
echo $n
9

变量引用 ${var} 大部分情况可省略为

抽取视频关键帧保存zip文件

抽取视频的关键帧,保存为zip文件。

目录结构

.
├── keyframes
│   ├── race
│   │   ├── race-0001.jpg
│   │   ├── race-0002.jpg
│   │   └── race-0096.jpg
│   └── race.zip
└── videos
    └── race.mp4

自动化脚本 _prompt='██' #find返回的文件列表在macOS系统上不能使用for循环进行迭代。 video_files=$(find videos -type f \ -iname '.mov' -o \ -iname '.mts' -o \ -iname '.mp4' -o \ -iname '.mkv' -o \ -iname '.webm' -o \ -iname '.flv' -o \ -iname '.f4v' -o \ -iname '.vob' -o \ -iname '.ogg' -o \ -iname '.ogv' -o \ -iname '.avi' -o \ -iname '.