{"id":24743803,"url":"https://github.com/gdl-blue/theseed-botlib","last_synced_at":"2026-02-05T13:32:23.832Z","repository":{"id":180888957,"uuid":"302004386","full_name":"gdl-blue/theseed-botlib","owner":"gdl-blue","description":"(개발 비활성) - 더시드엔진/나무위키 봇 라이브러리","archived":false,"fork":false,"pushed_at":"2022-04-23T15:49:46.000Z","size":61,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-18T04:30:38.598Z","etag":null,"topics":["bot","namuwiki","the-seed","theseed"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/gdl-blue.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}},"created_at":"2020-10-07T10:41:47.000Z","updated_at":"2022-04-23T15:47:54.000Z","dependencies_parsed_at":"2023-07-13T08:43:17.224Z","dependency_job_id":null,"html_url":"https://github.com/gdl-blue/theseed-botlib","commit_stats":null,"previous_names":["gdl-blue/theseed-botlib"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gdl-blue/theseed-botlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdl-blue%2Ftheseed-botlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdl-blue%2Ftheseed-botlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdl-blue%2Ftheseed-botlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdl-blue%2Ftheseed-botlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdl-blue","download_url":"https://codeload.github.com/gdl-blue/theseed-botlib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdl-blue%2Ftheseed-botlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29122612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T10:47:47.471Z","status":"ssl_error","status_checked_at":"2026-02-05T10:45:08.119Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bot","namuwiki","the-seed","theseed"],"created_at":"2025-01-28T01:48:55.043Z","updated_at":"2026-02-05T13:32:23.812Z","avatar_url":"https://github.com/gdl-blue.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[[옥텟트 스트림은 지원하지 않는다. 공개적인 API가 만들어지기는 하는 것 같으므로 나중에 다시 만들 것이다.]]\n\n# theseed-botlib\n- 기존 레파지토리에서 강한 실수가 있어서 다시 만든다.\n- 4.18.2에 대응하여 2020-11-15 현재 사용 가능한 상태이다.\n- 원래 이름이 theseed.js이었으나 the seed 4.12.0까지 사용된 그 스크립트와 헷갈릴 여지가 있어 변경했다.\n\n```js\nconst Theseed = require('./seed');\n\n// Theseed('위키이름', 'PIN을 입력하세요 문장', '사용자 에이전트') =\u003e 위키 이름만 필수\nconst alpha = Theseed('alphawiki');  // 길다면 2, 'a', 'alpha'로 가능\nconst namu = Theseed('namuwiki');  // 혹은 1, 'n', 'namu'\nconst theseed = Theseed('theseedwiki');  // 혹은 3, 't', 'theseed'\n\n// 준비가 완료(Chika 및 identifier 획득 성공)되었을 때...\nalpha.on('ready', async () =\u003e {\n  //                  ID       비밀번호\n  await alpha.login('...', '...');  // 로그인하지 않으면 IP로 활동하게 됨.\n\n  //                            토론 ID                    댓글 내용\n  alpha.comment('BurlyMakeshiftBelligerentTrade', '댓글 테스트');\n  //             문서 제목         내용    3번째는 수정 코멘트, 4번째 인자로는 section 가능\n  alpha.edit('연습장', 'API 테스트');\n  \n  const html = await alpha.fetchHTML('문서명');  // 두번째 인자: 리비전; fetchRAW도 있음\n  alpha.edit('문서명', html.replace(/됬/g, '됐'), '올바른 맞춤법으로 수정');\n  \n  //              문서 제목       리비전   수정코멘트\n  alpha.revert('연습장', '12', '\u003cAPI\u003e').then(console.log);\n\n  //                제목         작업\n  alpha.getacl('알파위키:사랑방', 'edit').then(console.log);\n  // =\u003e [ { id: 213, condition: 'perm:admin', action: 'allow', expired: 0 } ]\n\n  //                제목          타입      작업        권한       허용/거부 지속시간 이름공간 여부\n  alpha.setacl('알파위키:사랑방', 'insert', 'edit', 'perm:admin', 'allow', 0,     false).catch(console.log);  // ACL 삽입\n  // =\u003e 권한이 없는 경우: { status: 403, data: { status: 'ACL 편집 권한이 부족합니다. .....' } }\n\n  // alpha.setacl('제목', 'insert', 'edit', 'perm:admin', 'allow', 0) =\u003e 편집 ACL에 관리자 허용 ACL 추가\n  // alpha.setacl('제목', 'delete', 'edit', undefined, undefined, 0, false, 1) =\u003e 편집 ACL 1번 삭제\n  // alpha.setacl('제목', 'move', 'edit', undefined, undefined, 0, false, 1, 3) =\u003e 편집 ACL의 1번을 3번으로 옮김\n  \n  alpha.delete('제목', '사유');\n  alpha.move('제목', '새 제목', 사유', true);  // 넷째 인자는 맞바꾸기 여부; 생략 가능\n  \n  //                  그룹명       ip / username 이름    사유        기간\n  alpha.putToGroup('차단된 사용자', 'username', '사용자', '실험용 차단', 0);\n  //                      그룹명         # 번호      사유\n  alpha.deleteFromGroup('차단된 사용자', '123456', '차단해제 실험');\n  \n  alpha.createThread('문서명', '주제', '내용');\n  alpha.hideRes('토론 ID', '123');\n  alpha.showRes('토론 ID', '123');\n  alpha.updateThreadStatus('토론 ID', 'close');\n  alpha.updateThreadDocument('토론 ID', '새 문서명');\n  alpha.updateThreadTopic('토론 ID', '새 주제');\n});\n\n// 문서가 편집될 때... / ready 전까지는 아무 동작 없음.\nalpha.on('change', function(editedDocument) {\n  console.log(editedDocument.document.fulltitle + '이 ' + editedDocument.username + '에 의해 편집됐읍니다.');\n});\n\n// 토론에 댓글이 달릴 때...\nalpha.on('comment', 'BurlyMakeshiftBelligerentTrade', function(comment) {\n  console.log('토론 연습장에 ' + comment.username + '가 댓글을 달았습니다.');\n});\n```\n\n2FA PIN 처리는 직접 입력하는 방식만 가능하다(DTFL 권한이 있으면 해당사항 없음).\n\nNode.js 5.12.0 이상에서 사용 가능하다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdl-blue%2Ftheseed-botlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdl-blue%2Ftheseed-botlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdl-blue%2Ftheseed-botlib/lists"}