{"id":15348795,"url":"https://github.com/zuston/lazybones","last_synced_at":"2025-08-24T04:14:36.971Z","repository":{"id":93116919,"uuid":"70297382","full_name":"zuston/lazybones","owner":"zuston","description":"slack控制的自动化服务，为我服务","archived":false,"fork":false,"pushed_at":"2016-11-02T09:54:40.000Z","size":4423,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-04-03T23:12:56.203Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zuston.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-08T02:26:05.000Z","updated_at":"2016-10-26T05:03:31.000Z","dependencies_parsed_at":"2023-06-04T23:45:38.385Z","dependency_job_id":null,"html_url":"https://github.com/zuston/lazybones","commit_stats":{"total_commits":23,"total_committers":1,"mean_commits":23.0,"dds":0.0,"last_synced_commit":"2ded193955f1d6da9b7310993d0f50d821d46b90"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zuston/lazybones","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuston%2Flazybones","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuston%2Flazybones/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuston%2Flazybones/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuston%2Flazybones/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zuston","download_url":"https://codeload.github.com/zuston/lazybones/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuston%2Flazybones/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271790030,"owners_count":24821491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T11:52:17.374Z","updated_at":"2025-08-24T04:14:36.888Z","avatar_url":"https://github.com/zuston.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lazybones\n## 原理概述\n用了一下 slack 的[ incoming ](https://api.slack.com/incoming-webhooks)和[ outgoing ](https://api.slack.com/outgoing-webhooks)的    api.\u003cbr\u003e\n具体流程是服务器起一个进程监听发送过来的请求，从而响应接收 request ，我是将请求放入 redis 中，然后另外一个进程监听 redis 中的数据是否存在，有的话就根据其内容来执行任务，也就是我所谓的服务 \u003cbr\u003e\n至于这里用 falsk 是因为后期开发可以进行web端的配置\n## 开发服务插件\n举个🌰 . 在 slack 端发送特定信息 robot:oj send love,you,zhu  \u003cbr\u003e\n解析的时候是刨除 robot: 这个 trigger 的文本，那实际上是 oj send love,you,zhu 这些来解析的。\n这里我定义 oj 则对应 service 文件夹下的 ojService.py 的 ojService 这个类， send 则是类下的 sendAction 这个方法，最后则是参数.这里采用的反射的机制来实现。\u003cbr\u003e\n但是由于动态语言的关系，参数的预先判断无法实现。所以代码写的不优雅。\n\u003cbr\u003e开发一个服务的话，其实只要在 service 下面新建一个 nameService 然后创建同名的类，然后就创建以 Action 为后缀的方法就行了。后期这里可以用命令行来实现服务的基本文本创建。\n##部署\n记得修改 component.tools 里面的 slackMsg.py 里面的配置\u003cbr\u003e\n记得安装 redis,ubuntu(sudo apt-get install redis)  mac(brew install redis)\u003cbr\u003e\ngit clone git@github.com:zuston/lazybones.git\u003cbr\u003e\ncd lazybones\u003cbr\u003e\n./lazybones install\u003cbr\u003e\n./lazybones start\u003cbr\u003e\n\n##TODO\n\n- [ ] shell命令实现service的文本创建\n- [x] 实现php语言开发的服务的无缝连接\n- [ ] slack配置抽离出来\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzuston%2Flazybones","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzuston%2Flazybones","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzuston%2Flazybones/lists"}