Skip to content

CCF Badge

在dblp搜索结果中高亮显示安全顶会和CCF分类+方向

安装 Chrome插件Tampermonkey 后点击安装: https://blog.chenyuan.me/code/ccfbadge.user.js

效果:

https://dblp.org/search?q=use-after-free

数据处理过程

import xlrd, json
from pprint import pprint
wb=xlrd.open_workbook("中国计算机学会推荐国际学术会议和期刊目录-2019-converted.xlsx")
type = ""
allccf = {}
for sid in range(wb.nsheets):
    s = wb.sheet_by_index(sid)
    data = [tuple([s.cell_value(i,j) for j in range(s.ncols)]) for i in range(s.nrows)]
    for i,line in enumerate(data):
        if line[0]=="序号":
            abc = data[i-1][0].split("、")[1].replace("类", "").strip()
            if i-2>=0:
                type = data[i-2][0].split("\n")[-1].strip().strip("(())").replace("/","/").split("/")[0].replace("计算机","")
            table = data[i+1:]
    newtable = []
    for i in table:
        if not any([str(j).strip() for j in i]):
            continue
        id, simple, full, publisher, url = [str(j).replace("\n"," ").replace("  "," ") for j in i[:-1]] # remove last empty column
        #print(i)
        url = {
            "Performance Evaluation: An International Journal":"https://dblp.uni-trier.de/db/journals/pe",
            'Journal of Electronic Testing-Theory and Applications': "https://dblp.uni-trier.de/db/journals/et",
            "Hot Chips: A Symposium on High Performance Chips": "https://dblp.uni-trier.de/db/conf/hotchips/index.html",
            "ACM Transactions on Privacy and Security":"https://dblp.org/db/journals/tissec/",
            "Computer Law and Security Review":"https://dblp.org/db/journals/clsr/",
            "IFIP WG 11.9 International Conference on Digital Forensics":"https://dblp.org/db/conf/ifip11-9/",
            "Computer Animation and Virtual Worlds":"https://dblp.org/db/journals/jvca/index.html",
            "IET Computer Vision":"https://dblp.org/db/journals/iet-cvi/index.html",
            "IET Signal Processing":"https://dblp.org/db/journals/iet-spr/index.html",
            "International Conference on Collaborative Computing: Networking, Applications and Worksharing":"https://dblp.org/db/conf/colcom/index.html",
            "Asia Conference on Computer and Communications Security": "https://dblp.org/db/conf/asiaccs/index.html",
        }.get(full, url)
        if "dblp" not in url:
            #print([id, simple, full, publisher, url])
            pass
        else:
            url = "/".join(url.split("/")[4:6])
            #print(url)
        newtable.append([id, simple, full, publisher, url])
        if url in allccf:
            #print(i, allccf[url]) # we find that aisaccs link is wrong
            assert allccf[url][1] == abc # same item in different categories, should be same in ABC
            allccf[url] = (allccf[url][0]+"/"+type, abc)
        else:
            allccf[url] = (type, abc)
    #print(type, abc, [i[4] for i in newtable])
open("ccf.json","w").write(json.dumps(allccf))