이 문서는 분류가 되어 있지 않습니다. 분류:분류에서 적절한 분류를 찾아 문서를 분류해주세요!
이문서엔 더시드엔진과 호환되는 api로 1부터 N까지의 자연수 문서를 만드는 파이썬 스크립트가있다. 허가없이 실행하면 잡혀갈것이다. 권한 있어야해서 사실 괜찮다.
로컬 호스팅한 더트리엔진으로 실행했는데 조나느리다. 각각의 문서는 간섭하지않으므로 병렬처리를해야겟다
import requests
class theseedAPI:
def __init__(self, base_url: str, api_key: str):
self.base_url = base_url
self.header = {'Authorization': 'Bearer ' + api_key}
if self.base_url[-1] != '/':
self.base_url += '/'
def get_wiki_content(self, name: str) -> str:
req1 = requests.get(self.base_url + 'edit/' + name, headers=self.header, verify=False)
return req1.text
def edit_wiki_content(self, name: str, content: str, summary: str, prev_req: dict) -> str:
payload2 = {'log': summary}
payload2['text'] = content
payload2['token'] = prev_req['token']
req2 = requests.post(self.base_url + 'edit/' + name, headers=self.header, json=payload2, verify=False)
return req2.text
if __name__ == '__main__':
import json, sys
if len(sys.argv) != 2:
print('xxx')
exit(1)
FORCE = False
N = int(sys.argv[1])
ls = [True] * (N + 1)
ls[0] = ls[1] = False
for i in range(2, N + 1):
if ls[i]:
for j in range(i * 2, N + 1, i):
ls[j] = False
# dksadljdsjdlkajdieoeqweuiqie
def gen_natural_doc(n: int) -> str:
res = "[[분류:숫자]]\n"
res += "[목차]\n\n"
res += "== [[자연수]] ==\n"
res += "%d보다 크고 %d보다 작은 자연수.\n" % (n - 1, n + 1)
if ls[n]:
res += "소수이다."
elif n == 1:
res += "합성수도, 소수도 아니다."
else:
res += "합성수이다."
res += "\n"
return res
api = theseedAPI('https://theseed.io/api/', 'api_key')
for i in range(1, N + 1):
doc_name = str(i)
lookup = api.get_wiki_content(doc_name)
lookup_json = json.loads(lookup)
# create if not exists.. or overwrite forcibly
if not lookup_json['exists'] or FORCE:
response = api.edit_wiki_content(doc_name, gen_natural_doc(i), f"document {doc_name}", lookup_json)
res_json = json.loads(response)
print(f"Document {i}: {res_json['status']}")로컬 호스팅한 더트리엔진으로 실행했는데 조나느리다. 각각의 문서는 간섭하지않으므로 병렬처리를해야겟다