Git Product home page Git Product logo

gsil_pro's Introduction

关于GSIL-PRO

该项目修改自开源项目GSIL,初衷是为了方便自己的使用,并做了一些测试

关于开源项目GSIL

原作者是个大神,GSIL是个神器。 大神是这样想的:我用哈希校验和定时任务去搜索,然后发邮件,保证在第一次过后的搜索中,每次搜索该关键字只会向我发送我没看过的符合要求的新项目,达到定时监控的目的,部署在服务器上,只需要盯着邮箱就好了。 我等菜鸟是这样想的:信息搜集一遍过,能快速获取信息,不用一页一页慢慢的翻便是极好的,邮箱发送过于繁琐,且当天查询量大的话,自己的pop3服务会被限制和警告发送垃圾邮件,给自己发也不行。

经过测试,使用临时邮箱申请小号的方式不可取,github查的很严,必须要是拥有真实仓库,经常登录的正常账号才有5000/h的查询API,小号一律按照未验证的60/h处理。 因为代码中写了多线程,即针对每一条用户定义的规则启用一个线程去执行,但是API的请求速率限制为30/min,所以个人建议一条规则一条规则的跑,当然,如果你有很多大号、或是有很多朋友愿意借你tocken就另说了。 顺便提一下,即便是最小权限的tocken,也可以访问该账户的公共存储库,一旦泄露,别人就可以删掉你所有的公共仓库,若配置不当,还能访问和删除私有仓库。试问,怕不怕?

修改内容

经过本次修改后,去除发邮件方式,去除搜索哈希值校验,将结果保存在本地 /root目录下。另加入rule.txt精选规则集,单一tocken的话只能一条一条跑,否则会触发API请求限制。另engine.py文件中可以修改搜索的页数。

使用方式

将自己的tocken放进config.gsil配置文件中,多个tocken使用逗号隔开,邮箱无需配置。

从rule.txt中找到自己需要的规则,并拼接成关键字放到rules.gsil配置文件中。

使用pip3安装依赖

pip3 install -r requirements.txt

开始搜索

python3 gsil.py test

原项目GSIL代码分析,方便快速定位功能点

用户也可以根据需求自己更改

参数配置: 1、邮箱pop3秘钥,邮箱等 2、github的tockens

限制 每tocken每小时最大5000次请求,一条内容算一次请求 对于未经身份验证的请求,速率限制允许每小时最多60个请求 Search API具有自定义速率限制。对于使用基本身份验证,OAuth或客户端ID和密码的请求, 您每分钟最多可以进行30个请求。对于未经身份验证的请求,速率限制使您每分钟最多可以进 行10个请求。

关于源码,有兴趣的可以改成自己想要的样子

gsil.py 主函数执行gsil包中的主函数,如果参数异常等,调用notification模块

GSIL包

init.py 主函数执行gsil gsil函数: 如果参数一为“--report”,发送运行数据报告 如果参数一为“--verify-tokens”,循环校验tocken(使用engine的verify函数) 否则开始搜索,并生成报告 generate_report函数: 生成报告,HTML格式 start函数:(传入规则组---test) 获取规则组中所有规则 创建线程池pool 为每一个规则对象创建线程(执行search函数) search函数: 为每一个搜索随机选择一个tocken 调用engine的搜索函数

engine.py 定义每页报告的最大数量 定义默认的扫描页数,原为4,现修改为100,即搜索前5000条,即限制数 修改完后,最好一条规则一条规则的测,可以多准备几个tocken Engine类: __init__函数:变量赋值 process_pages函数: 处理每一页抓取的数据 verify函数: 验证githubtocken search函数: 利用API通过规则获取内容,处理并发送 codes函数: 去除代码中图片显示,提取关键词上下几行

config.py 关于配置文件 分割tockens,添加项目类型、邮箱类型、代码规则等 get_rules函数: 读取规则与匹配模式

notification.py notification函数: 原本是连接pop3服务器,随机选择指定邮箱发送报告 现改为将报告保存在本地 /root目录下

process.py clone函数: 下载仓库 send_running_data_report函数: 发送运行数据报告

gsil_pro's People

Contributors

starlord777 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.