首页 > 其他分享 >ditto 添加统计粘贴次数功能

ditto 添加统计粘贴次数功能

时间:2023-04-17 11:13:31浏览次数:30  
标签:INDEX ditto -- CREATE 添加 INTEGER Main 粘贴 DESC

通过观察ditto的表发现, 可以添加触发器进行统计粘贴次数的功能,不需要用源码

Ditto 是一款强大的 Windows 剪贴板增强工具,它支持64位操作系统,而且完全免费,绿色开源,支持中文,而且还有免安装的绿色版本。

开启 Ditto 后,不会有任何程序界面出现,它只是默默地在系统右下角弹出了一个蓝色的托盘图标,这时候你复制任何内容到剪贴板都会被 Ditto 一一记录。如果你什么时候想找到它,就可以按 Ctrl+`,当中的每条内容都可以供你选择性的重新复制。

使用navicat连接数据库

主要使用的表

Types

MainDeletes

Main

Data

CopyBuffers

通过观察Main表发现数据库结构

/*
 Navicat Premium Data Transfer

 Source Server         : ditto
 Source Server Type    : SQLite
 Source Server Version : 3035005 (3.35.5)
 Source Schema         : main

 Target Server Type    : SQLite
 Target Server Version : 3035005 (3.35.5)
 File Encoding         : 65001

 Date: 17/04/2023 10:44:23
*/

PRAGMA foreign_keys = false;

-- ----------------------------
-- Table structure for Main
-- ----------------------------
DROP TABLE IF EXISTS "Main";
CREATE TABLE "Main" (
  "lID" INTEGER PRIMARY KEY AUTOINCREMENT,
  "lDate" INTEGER,
  "mText" TEXT,
  "lShortCut" INTEGER,
  "lDontAutoDelete" INTEGER,
  "CRC" INTEGER,
  "bIsGroup" INTEGER,
  "lParentID" INTEGER,
  "QuickPasteText" TEXT,
  "clipOrder" REAL,
  "clipGroupOrder" REAL,
  "globalShortCut" INTEGER,
  "lastPasteDate" INTEGER,
  "stickyClipOrder" REAL,
  "stickyClipGroupOrder" REAL,
  "MoveToGroupShortCut" INTEGER,
  "GlobalMoveToGroupShortCut" INTEGER
);

-- ----------------------------
-- Auto increment value for Main
-- ----------------------------
UPDATE "sqlite_sequence" SET seq = 50355 WHERE name = 'Main';

-- ----------------------------
-- Indexes structure for table Main
-- ----------------------------
CREATE INDEX "Main_CRC"
ON "Main" (
  "CRC" ASC
);
CREATE INDEX "Main_ClipGroupOrder"
ON "Main" (
  "clipGroupOrder" DESC
);
CREATE INDEX "Main_ClipOrder"
ON "Main" (
  "clipOrder" DESC
);
CREATE UNIQUE INDEX "Main_ID"
ON "Main" (
  "lID" ASC
);
CREATE INDEX "Main_InGroup2"
ON "Main" (
  "lParentId" ASC,
  "stickyClipGroupOrder" DESC,
  "bIsGroup" ASC,
  "clipGroupOrder" DESC
);
CREATE INDEX "Main_IsGroup"
ON "Main" (
  "bIsGroup" DESC
);
CREATE INDEX "Main_MoveToGroup"
ON "Main" (
  "MoveToGroupShortCut" DESC,
  "GlobalMoveToGroupShortCut" DESC
);
CREATE INDEX "Main_ParentId"
ON "Main" (
  "lParentID" DESC
);
CREATE INDEX "Main_ShortCut2"
ON "Main" (
  "lShortCut" DESC,
  "globalShortCut" DESC
);
CREATE INDEX "Main_TopLevel"
ON "Main" (
  "stickyClipOrder" DESC,
  "bIsGroup" ASC,
  "clipOrder" DESC
);
CREATE INDEX "Main_TopLevelParentID"
ON "Main" (
  "lParentId" ASC,
  "stickyClipOrder" DESC,
  "bIsGroup" ASC,
  "clipOrder" DESC
);

-- ----------------------------
-- Triggers structure for table Main
-- ----------------------------
CREATE TRIGGER "delete_data_trigger"
BEFORE DELETE
ON "Main"
FOR EACH ROW
BEGIN
INSERT INTO MainDeletes VALUES(old.lID, datetime('now'));
END;

PRAGMA foreign_keys = true;

通过表结构发现里面是有一个触发器进行记录删除时间的

同理可以增加一个触发器,记录更新时间,就可以记录下粘贴的使用id和时间

添加触发器

-- 添加 ditto 触发器
DROP TRIGGER "main"."update_date_trigger"


CREATE TRIGGER "main"."update_date_trigger"
BEFORE UPDATE
ON "Main"
BEGIN
  -- 这里是因为粘贴一次,会进行两次update, 所以这里删除掉已经记录的时间,避免生成两个一样的记录
  DELETE FROM MainPaste WHERE lastPasteDate=old.lastPasteDate;
	-- 记录一次粘贴记录
  INSERT INTO MainPaste VALUES(old.lID, old.lastPasteDate);
END

COMMIT;

统计粘贴次数

测试结论,通过粘贴四次 “好的”, 可以查询出复制了四次

-- 统计粘贴次数
select t1.*, t2.mText from 
( select clipID, count(clipID) cnt from MainPaste group by clipID order by count(clipID)  desc) t1,
Main t2 
where t1.clipID = t2.lID;

统计的作用

  1. 通过一段时间的使用,可以记录使用次数最高的记录
  2. 使用了如果一年多,则 ditto.db 的文件会特别的大。 则根据使用记录次数, 可以删除一些不常用的数据, 避免空间浪费

标签:INDEX,ditto,--,CREATE,添加,INTEGER,Main,粘贴,DESC
From: https://www.cnblogs.com/qwop/p/17325176.html

相关文章

  • ubuntu 安装docker/添加镜像
    ubantu安装dockersudoaptinstallcurlcurl-fsSLhttps://test.docker.com-otest-docker.shsudoshtest-docker.sh安装完后提示没有权限,是登陆用户没有加入到docker权限组中permissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run......
  • k8s使用kubeadm 添加新的node节点
    1.关闭防火墙$systemctlstopfirewalld备注:必须关闭2.关闭selinux$setenforce03.关闭swap$swapoff-a临时关闭$free可以通过这个命令查看swap是否关闭了$vim/etc/fstab永久关闭#/dev/mapper/centos_k8s--master-swapswapswap......
  • Qt5.9 UI设计(三)——添加UI、类及资源文件
    前言设计一个软件,最简单的方式就是把控件直接往UI上放,然后再把功能实现了。这样可以实现基本的功能,但是界面不能缩放,如果拖动软件改变界面的大小,界面上的控件就会乱成一团,或者是界面的控件压根就不会跟着界面的大小进行改变。要使界面上的所有控件都随着界面的变化而变化,做到自......
  • Java JDBC批处理添加出现问题,求解决方案
    晚辈使用JDBC批处理时出现一个问题,使用addBatch()方法将记录加入批处理中,我想让这五千条记录每达到一千条记录再执行,以此提高效率,可最后执行在数据库查看时仅五条记录,我尝试将 preparedStatement.executeUpdate();提出if语句,虽然是有五千条记录,但效率相当的慢请求前辈们给出解决......
  • FreeSWITCH添加iLBC编码及转码
    操作系统:CentOS7.6_x64FreeSWITCH版本:1.10.9一、安装ilbc库从第三方库里下载指定版本:gitclonehttps://freeswitch.org/stash/scm/sd/libilbc.git如果下载过慢,可从如下途径获取:关注微信公众号(聊聊博文,文末可扫码)后回复20230416获取。编译及安装步骤如下:./boots......
  • 【Linux】添加用户并授权
    1.Centos添加用户并授权<!--添加用户-->useradd-d/home/zhangsan-mzhangsan<!--设置密码-->passwdzhangsan<!--授予sudo权限-->usermod-a-Gadmzhangsanusermod-a-Gsudozhangsan<!--或修改/etc/sudoers文件-->zhangsanALL=(ALL)AL......
  • 为github项目添加优秀的自述文件
    sudoapt-getupdatesudoaptinstallnpmnpxreadme-md-generator参考资料:https://github.com/kefranabg/readme-md-generator......
  • Cadence应用笔记:添加禁止覆铜区
    说明做覆铜时候有些地方是想要添加禁止覆铜怎么做,选择如下设置添加shapekeepout画出一个矩形框后,动态覆铜会自动避让开来......
  • 在页面中添加侧边栏导航及几个颜色搭配的网站
    先调出主题的侧边栏,然后使用小工具在侧边栏里添加导航小工具,选择创建的菜单。颜色搭配网站HappyHues-Curatedcolorsincontext.https://color.adobe.com/zh/create/color-wheelColorSpace-ColorPalettesGeneratorandColorGradientTool(mycolor.space) ......
  • uni-app小程序添加IM聊天以及音视频
    uni-app开发小程序的过程中,需要继承IM的聊天以及音视频功能,因为我是放在分包里的,步骤如下:按照文档要求,然后在相关的界面引用就可以了。音视频引入:这里引入之后还有一个问题是你必须每次在微信开发工具构建npm一下,具体操作如下:在微信开发工具终端依次输入如下指令:npminit......