0%

问题

VSCode使用最新版本Python插件,调试Python2代码无反应

原因

Python插件调试时需要调用 debugpy,debugpy在2022-03-25发布v1.6.0后不再支持调试Python 2

解决

阅读全文 »

插件列表

本文结束。

阅读全文 »

需求

有一台闲置的安卓的平板,想作为PC(Windows、MacOS)的扩展屏幕,有线和无线都能连接,在网上寻找到一些解决方法,使用结论如下:

  • 场景1:使用Windows,推荐spacedesk的有线模式
  • 场景2:使用MacOS,推荐Twomon
阅读全文 »

前言

在不使用官方的Obsidian Sync的情况下,在移动设备如Android、IOS上进行笔记同步是比较麻烦的事情,看过不少文章使用各种方式进行同步,比如以下:

综上,本人使用Nextcloud和Syncthing在PC端和移动设备进行笔记的同步,使用inotifywait监控两边目录改动,运行nextcloudcmd命令进行同步。

准备

  • 自建NextCloud服务端
  • 自建Syncthing服务
  • 安装nextcloudcmd、inotifywait

步骤

运行以下脚本即可,说明:

  • 填入参数即可
  • 启动命令: bash nextcloud-sync.sh start
  • 停止命令: bash nextcloud-sync.sh stop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash  
# author: kkzzhizhou
# desc: nextcloud inotify sync script.
# This script is a wrapper around nextcloudcmd, designed to keep a local directory synchronised with a Nextcloud repository.
#
# Usage: nextcloud-sync.sh configfile
#
# The config file must contain "username", "password", "local" directory and "remote" URL to a Nextcloud service.

PROG=$(basename "$0")
PROGDIR=$(cd "$(dirname "$0")" && pwd)

set -e
set -u
set -o pipefail

USERNAME='xxx'
PASSWORD='xxx'
LOCAL_DIR="xxx" # 本地Syncthing文件夹路径
REMOTE_URI="https://xxx" # 填写Nextcloud服务地址
DAVPATH="Notes"
NEXTCLOUD_DATA_DIR='xxx' # 填写Nextcloud用户数据路径
NEXTCLOUD_DIR="$NEXTCLOUD_DATA_DIR/$USERNAME/files/$DAVPATH"

case $1 in
start)
echo 0 > "$PROGDIR/sync.lock"
echo "start monitoring: ${LOCAL_DIR}"
echo "start monitoring: ${NEXTCLOUD_DIR}"
/usr/bin/inotifywait -mrq --exclude '/\..*' --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w %f %e' -e modify,delete,create "$LOCAL_DIR" -o $PROGDIR/inotify.log -d
/usr/bin/inotifywait -mrq --exclude '/\..*' --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w %f %e' -e modify,delete,create ${NEXTCLOUD_DIR} -o $PROGDIR/inotify.log -d
nohup /usr/bin/inotifywait -mq --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w %f %e' -e modify $PROGDIR/inotify.log | while read file
do
last_sync_timestamp=$(cat $PROGDIR/sync.lock)
current_timestamp=$(date +%s)
timestamp_check=$[$last_sync_timestamp + 10]
if [ $timestamp_check -lt $current_timestamp ];then
echo $current_timestamp > "$PROGDIR/sync.lock"
echo "$current_timestamp: sync was started"
nextcloudcmd -s --non-interactive --user "$USERNAME" --password "$PASSWORD" --path "$DAVPATH" "$LOCAL_DIR" "$REMOTE_URI"
#else
#echo "$current_timestamp: sync ignored"
fi
done > "$PROGDIR/sync.log" & 2>&1
;;
stop)
echo "stop all monitoring"
pkill inotifywait
;;
esac

介绍

最近改造Obsidian附件管理,使用自建的Nextcloud作为附件存储,所以有了一个需求,右键文件上传至Nextcloud并获取内部链接(为什么不使用外部链接呢?因为笔记属于重要资料性质,采用内部链接更能保证附件的保密性),因此自己使用Python开发的Windows下右键菜单上传至NextCloud并获取内部链接复制到剪贴板的工具。代码已经开源在Github上,欢迎大家使用。

链接

安装

1
2
scoop bucket add zapps https://github.com/kkzzhizhou/scoop-zapps
scoop install nextcloud-uploader

配置

修改config.json文件, 放在程序的/data目录下,格式如下:

1
2
3
4
5
6
{
"nextcloud_url": "",
"username": "",
"password": "",
"upload_path": ""
}
阅读全文 »