• 简历信息粘贴板


    简历信息粘贴板

    gitee链接
    😂最近简历投递感觉很麻烦,所以想整个这个,欢迎体验!
    有用可以整个 ⭐️ 随便也水一个文,好久没更了👦

    描述

    厌倦了麻烦的简历填写了吗? 是不是感觉切换查找复制然后切换粘贴很麻烦?
    这里提供了一种简单的方式让你粘贴你的简历信息,只需要设置好快捷键,然后呼出列表单击即可粘贴!!

    这里是一个演示GIF

    演示

    需要安装的程序

    1. 第一个要安装的就是autohotkey, 这是运行脚本的应用程序,其中菜单的显示和快捷键都是其提供的
    2. Python3程序, 这是解析我们的简历json文本,然后输出脚本。

    使用方式

    首先是填写json表格(不会json数据格式的小伙伴可以去搜索学习一下,很简单)

    文件名称:resume.json

    注意: 换行符使用`r`n 不是用\r\n

    其中形式分为两种,比如

    1. 不需要强分类的数据,这种数据就算混在一起,你也知道含义

    个人信息: 张三、24岁、138xxxx9999 那么可以写成列表形式

    {
    	"个人信息":[
    		"张三",
    		"24岁",
    		"133xxxxx8888"
    	]
    }
    
    1. 需要强分类的数据,这种数据需要很好的分类

    项目:
    标签:智能家居
    项目名称:智能家居控制系统
    个人贡献:做出了多大的贡献
    标签:车载雷达
    项目名称:基于毫米波雷达的视觉融合
    个人贡献:达到了融合的效果

    {
    	"项目":{
            "智能家居":{
            "名称":"智能家居控制系统",
            "个人贡献":"做出了多大的贡献"
    		},
            "车载雷达":{
                "名称":"基于毫米波雷达的视觉融合",
                "个人贡献":"达到了融合的效果"
                }
    	}
    }
    
    1. 你可以选择强分类中嵌套弱分类

    实习:
    时间:
    二段: 2022-07,2022-09
    三段: 2022-07-13,2022-09-13
    实习贡献:“搭建LiquidOTN自动化用例以及升级前uUpgrade检查”

    {
        "实习":{
            "时间":{
                "2段":["2022-07","2022-09"],
                "3段":["2022-07-13","2022-09-13"]
            },
            "实习贡献":"搭建LiquidOTN自动化用例以及升级前uUpgrade检查"
        }
    }
    

    然后是生成我们的脚本文件(ahk后缀名)
    在项目文件夹下使用python3 ./analysis.py > auto.ahk

    生成autohotkey

    最后双击auto.ahk程序,使用autohotkey打开,使用CTRL+2即可呼出菜单啦!!

    特殊功能

    新增网页功能,选中文字,呼出菜单选择搜索工具,会搜索对应文字,如果没有选中文字,则直接打开网页

    请添加图片描述

    问题

    第一个问题是这个json格式实在是不好看,后面会将其适配yaml格式,食用效果更佳

    • 如果运行autohotkey报错,那么可能的原因是不支持utf-8的中文,因此需要重新安装autohotkey,勾选Default to UTF-8

    最后

    欢迎大家体验!有什么好的建议和问题可以提issue

    部分代码

    import json
    import re
    import yaml
    
    
    METHOD = 'yaml'
    
    pattern = r'(\w+) (https?://\S+)'
    urls = {}
    
    def Cout(info:str, cnt):
        info = info.replace(',','`,')
        match = re.match(pattern, info)
        if match:
            name = match.group(1)
            url = match.group(2)
            # print(f'Name: {name}')
            # print(f'RUL: {url}')
            print("Menu, "+ str(cnt) +  ", Add, " + name  + ", MenuHandler")
            urls[name] = url
        else:
            # print('No match')
            print("Menu, "+ str(cnt) +  ", Add, " + info  + ", MenuHandler")
    
    def SubCout(info, parent, cnt):
        info = info.replace(',','`,')
        print("Menu, "+ parent +  ", Add, " + info  + ", :" + str(cnt))
    
    cnt = 0
    add = 0
    
    def dfs(myData, parent):
        global cnt, add
        if(not isinstance(myData, dict)):
            if(isinstance(myData, str)):
                Cout(myData, cnt)
                add = 1
            else:
                for item in myData:
                    Cout(item, cnt)
                    add = 1
            return cnt
        for tmpData in myData:
            SubCout(tmpData, parent, dfs(myData[tmpData], tmpData))
            if(add):
                add = 0
                cnt += 1
        return parent
    
    def Url_add():
        for name in urls:
            # print(urls)
            print("Case \"", name, "\":\n", sep="")        
            print("run ", urls[name], sep="")
    
            
    end1 = '''
    return  ; End of script's auto-execute section.
    
    GetClipboard(URL)
    {
        clipSaved := clipboardAll
        clipboard := ;clear clipboard
        Send ^c
        sleep,100
        Transform, URL, Deref, %URL% ;为了展开字符串里面的变量
        run %URL%
        ;如果没有选中文件,将粘贴板恢复
        if(clipboard != "")
        {
            clipboard := clipSaved
        }
        clipSaved = ; free
    }
    
    MenuHandler:
    Switch A_ThisMenuItem
    {
    Case "百度": 
        GetClipboard("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=92765401_hao_pg&wd=%clipboard%")
    Case "谷歌":
        GetClipboard("https://www.google.com/search?q=%clipboard%")
    Case "博客":
        run https://mp.csdn.net/mp_blog/manage/article?
    '''
    
    end2 = '''
    Default: 
        clipboard :=  A_ThisMenuItem
        Send ^v
    }
    return
    ^2::
    Menu, MyMenu, Show ; 这里设置你需要定义的快捷键,这里设置的是ctrl+2
    '''
    if METHOD == 'yaml':
        with open("./resume.yaml", 'r', encoding='utf-8') as file:
            result = yaml.safe_load(file)
            dfs(result, "MyMenu")
            print(end1)
            Url_add()
            print(end2)
    
    else:
        with open("./resume.json", encoding='utf-8') as f:
            result = json.load(f)
            dfs(result, "MyMenu")
            print(end1)
            Url_add()
            print(end2)
    
    
    
    
    网页:
    - 百度
    - 谷歌
    - 博客
    智能家居:
    - "HomeAssistant http://192.168.1.16:8123"
    - "PVE https://192.168.1.222:8006"
    - "WP_Home http://192.168.1.18"
    # 项目:
    #   智能家居:
    #     名称: 智能家居控制系统
    #     个人贡献: 做出了多大的贡献
    #   车载雷达:
    #     名称: 基于毫米波雷达的视觉融合
    #     个人贡献: 达到了融合的效果
    # 实习:
    #   时间:
    #     2段:
    #     - '2022-07'
    #     - '2022-09'
    #     3段:
    #     - '2022-07-13'
    #     - '2022-09-13'
    #   实习贡献: 搭建LiquidOTN自动化用例以及升级前uUpgrade检查
    # 虚拟机:
    #   郑元杰:
    #     虚拟机1:
    #       - "Google https://www.google.com"
    #       - "192.168.1.111"
    #   郑元杰1:
    #   - "192.168.1.16"
    #   - "192.168.1.111"
    
  • 相关阅读:
    TensorRT 模型加密杂谈
    cs231n_2022的assignment-1实现(KNN部分)
    expect自动化交互应用程序工具
    C++类对象所占内存空间大小分析
    C# 泛型
    JetBrains Fleet初体验,如何运行一个java项目
    火爆全网,22个web自动化测试疑难解答总结,一路狂飙...
    Leetcode | 560. 和为 K 的子数组
    【精讲】vue中的添加数据、监测数据(data)原理及拓展、监测数组及(对象,数组)监测概括
    CV攻城狮入门VIT(vision transformer)之旅——VIT代码实战篇
  • 原文地址:https://blog.csdn.net/qq_37429313/article/details/126964483