最近因为工作开始使用mac,但mac上没有windows上的剪切板历史功能,虽然mac有其他软件才能实现但是使用非常不习惯,本篇文章主要用python实现读取剪切板并上传到腾讯云的TDSQL-C MySQL存储起来方便日后使用DMC翻阅历史剪切板,而且特别适合多台电脑的情景方便在不同电脑上回顾其他电脑的剪切板。现在正赶上学生优惠可以超低价购入TDSQL-C MySQL,1c1g的一年仅需26元,并可以以此价格续费3次,也就是说104元可以4年,其10g的存储完全够用剪切板历史,还可以存储其他东西!!点我前往
如果您是学生可以通过点我前往以1年26元购买(25岁以下免认证哦),如果不是学生可以通过免费试用入口体验15天,轻量数据库和云数据库MySQL也是一样的,都可以试用!
选择离您近的地域购买即可
购买完成后可以直接通过此链接点我前往进入数据库的管理界面。
注意选择相应的地域哦
我这边以上海为例,可以看到数据库的相关信息如下:
注意哈,这里有数据库的连接信息我们需要记住其主机和端口,后续要用到!
如下图进入账号管理,可以修改root的密码,也可以增加用户管理不同的数据库。
修改权限可以修改用户对不同对象的权限
来到如图页面创建数据库
配置可以跟图所示一样
确定完成数据库的创建
我们可以通过DMC来查看数据库,点我前往
填入相应的信息登陆后可以按图选到刚刚创建的tdsqlnb的对象,再点击加号创建表
先填上表名
再切换到列信息,按图设置即可
通过pip install安装
可以在这个网站生成密钥对哦:点我前往
用于解密的dec.py
import base64
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
# 您准备的RSA私钥
private_key = '-----BEGIN RSA PRIVATE KEY-----\nMII******t5tg==\n-----END RSA PRIVATE KEY-----'
def decrypt(text_encrypted_base64):
text_encrypted_base64 = text_encrypted_base64.encode('utf-8')
text_encrypted = base64.b64decode(text_encrypted_base64)
cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key.encode('utf-8')))
return cipher_private.decrypt(text_encrypted, b'0').decode()
用于加密的enc.py
import base64
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
# 您准备的RSA公钥
public_key = '-----BEGIN PUBLIC KEY-----\nMII****QAB\n-----END PUBLIC KEY-----'
def encrypt(text):
cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))
text_encrypted = cipher_public.encrypt(text.encode('utf-8')) # 加密(bytes)
return base64.b64encode(text_encrypted).decode()
监听模块main.py
import pyperclip
import time
import upload_msg
import uuid
import enc
clipboard_content = ""
clipboard_list = []
while True:
temp_clipboard = pyperclip.paste() # 获取剪切板内容
if temp_clipboard != clipboard_content: # 如果剪切板内容没有变化直接跳过
clipboard_content = temp_clipboard
clipboard_list.append(clipboard_content)
print(clipboard_content, upload_msg.commit_msg(enc.encrypt(clipboard_content), 'doone', uuid.uuid4()))
time.sleep(0.5) # 设置每次读取间隔
upload_msg.py
import pymysql as MySQLdb
import uuid
sql_url = '**.sql.tencentcdb.com' # 这里填入之前的主机
port = 2** # 这里填入之前的端口
user = 'root' # 这里以root用户为例
passwd = 'root的密码' # 这里填入您设置的root密码
def commit_msg(content, ip, uuid):
db = MySQLdb.connect(host=sql_url, user=user, passwd=passwd, charset='utf8', port=port)
cursor = db.cursor()
db.select_db('tdqslnb')
try:
cursor.execute(
"""INSERT INTO `pasteboard` (`uuid`, `content`, `ip`) VALUES ('{0}', '{1}', '{2}');""".format(uuid, content,
ip))
db.commit()
db.close()
return True
except Exception as e:
print(e)
db.close()
return False
当复制内容后,终端输出
前面显示的是复制的内容后面是提交数据库的状态
这时候我们就能在DMC里面看到我们之前提交的复制的内容了
将content的内容复制,并用dec.py的函数解密可以得到:
后续的数据库读取操作各位大佬可以随意开发了,本文仅提供剪切板数据库存储思路。
非常感谢大家能够看到这里!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。